Commits Between Branches origin/release/0.20.0 and release/0.21.0

2a6aa5bd7 2024-02-04 Andy C [release] Fix link to doc/ref
b55b9cb53 2024-02-04 Aidan [ysh/builtins] Initial implemention of ctx builtin, e.g. for flag specs (#1819)
a6d182b10 2024-02-05 Andy Chu [j8] First pass of NIL8 parser
22a58dc8b 2024-02-05 Andy Chu [j8] Support comments in JSON8
fba8579fb 2024-02-05 Andy Chu [j8] Figure out lexical syntax for NIL8 Symbol
5b638645a 2024-02-05 Andy Chu [j8 refactor] Move unit tests
4d3c119da 2024-02-05 Andy Chu [j8] Start parsing NIL8 records
50f439242 2024-02-05 Andy Chu [j8] Fix bug where we accepted messages with trailing data
f058d8fb3 2024-02-05 Andy Chu [spec/ysh-json] Adjust allowed failures after fix
1d71f6bbf 2024-02-06 Andy Chu [yaks] Setting up program skeleton
e81ab33b4 2024-02-06 Andy Chu [yaks] Got hello.yaks parsing
b0c21a66e 2024-02-06 Andy Chu [yaks] Translate yaks_main.py with Nil8Parser to C++
fa99788a0 2024-02-09 Andy C [nil8] Parses to nvalue_t from nil8.asdl
b9cecf888 2024-02-09 Andy C [nil8] Add infix parsing rule
b38ff2034 2024-02-09 Andy C [yaks] Enable metrics, linting, type checking in CI, etc.
b6a39ea69 2024-02-10 Andy C [yaks] Fix build deps by using different preamble.h
45914ca42 2024-02-10 Andy C [yaks] Build with yaks.asdl, and update README
4fd920404 2024-02-10 Andy C [yaks] Hook up transform.py
7b2b5036d 2024-02-10 andychu [doc/ysh-faq] Elaborate on new idioms for echo -e -n (#1827)
ac5806b60 2024-02-10 Andy C [github-actions] Add explicit dependencies on cpp-tarball task
8ca4c45f1 2024-02-10 Andy C [yaks] Transforming hello.yaks into typed structure
057f1ff60 2024-02-11 Andy C [yaks] Fix lint error
43d8d216d 2024-02-11 Andy C [yaks] Transforming more of hello.yaks
e25522b2f 2024-02-12 Aidan [stdlib] Use the new ctx builtin in parseArgs() (#1832)
3b11b3cb0 2024-02-11 Andy C [yaks] Translate the main() signature
2a617d281 2024-02-12 Andy C [mycpp refactor] Make method names clearer
3f1115668 2024-02-12 Andy C [mycpp refactor] Simplify API, add self.decl_write()
d69d67c39 2024-02-12 Andy C [yaks] Printing C++ that compiles, but doesn't link
bf14f2f29 2024-02-12 Andy C [metrics] Fix yaks binary location
a07234600 2024-02-12 Andy C [yaks] Compile the output of the translator
4f293c3b2 2024-02-12 Andy C [rename] Oil -> Oils, OSH, or YSH
b75b84ed6 2024-02-13 Andy C [spec/ysh-stdlib-args] Polish / rename test cases
dde2e52ed 2024-02-14 Andy C [translation fix] Auto-translate more of frontend/flag_spec.py
6e371c472 2024-02-15 Andy C [translation] Fix design bug with file I/O types
0c8a980f6 2024-02-15 Andy C [translation] Translate --debug-file message
f854d52d6 2024-02-15 Andy C [test/spec] Re-organize code in spec/testdata
f1b61dfb3 2024-02-15 Andy C [spec/ysh-builtins] Move test cases that use read --line
57995d11c 2024-02-15 Andy C [builtin/read] read --line is buffered, in both Python and C++
09b97b54c 2024-02-15 Andy C [mycpp/runtime] DCHECK -> CHECK
f33dedf87 2024-02-15 Andy C [spec/arith] Test cases for OSH division/modulus
3f94e7c58 2024-02-15 Andy C [ASDL] Start omitting dupes in C++ pretty printing
9664b2d1b 2024-02-15 Andy C [ASDL] Omit dupe objects in C++ pretty printing
ab227d4f5 2024-02-15 Andy C [core] Extract function in num.py
d4ecb520e 2024-02-16 Andy C [osh] $(( x / y )) rounds toward zero, not negative infinity
a014578c8 2024-02-16 Andy C [osh] $(( x % y )) uses remainder operation, like C
611c95007 2024-02-16 Andy C [ysh] // and % operators don't depend on host language
ac140f6ae 2024-02-16 Andy C [translation fix] Rewrite cast() pattern to avoid mycpp bug
b9598f608 2024-02-16 Andy C [cleanup] Auto-format the whole osh/ directory
2d82158f4 2024-02-17 Andy C [doc] Unicode planning
239d4c0dd 2024-02-17 Andy C [cpp] Unicode demo, e.g. with libc
980f18217 2024-02-17 Andy C [data_lang/json-survey] Test int/float overflow cases
ac6675964 2024-02-19 Andy C [spec/ysh-builtins] Failing test case for read --line
31b1f6063 2024-02-22 Andy C [doc] Remove read --line
2d80b6391 2024-02-22 Andy C [builtin/read] Remove read --line
9887c0683 2024-02-22 Andy C [benchmarks] Show that unbuffered read -r is very slow
9f9867764 2024-02-23 Andy C [mycpp] Able to translate Union[IOError, OSError]
091969983 2024-02-23 Andy C [spec/testdata] Correct test case to use _reply, not _line
630b49474 2024-02-23 Andy C [core] Fix unit test
5bea516ba 2024-02-23 Andy C [core refactor] Pass err_out through redirec codet
4d21ac7f7 2024-02-23 Andy C [core refactor] Write _Execute() with less nesting
bab243241 2024-02-23 Andy C [core refactor] Reduce _Execute() nesting more
12a5e3441 2024-02-23 Andy C [core refactor] Even less nesting in _Execute()
d60e5cf2c 2024-02-23 Andy C [translation fix] Signal redir errors with out params, not exceptions
833cee94e 2024-02-23 Andy C [spec/ysh-json] Failing test for big integer, with oils-cpp
163a03992 2024-02-23 Andy C [mycpp] Working on BigInt as int64_t
1449bb08d 2024-02-23 Andy C [mycpp] 64-bit integers work
b386774d2 2024-02-23 Andy C [mycpp cleanup] Get rid of mylib.pyi
751bb73ae 2024-02-23 Andy C [mycpp/mylib] Fix type annotations for open()
7d012882b 2024-02-23 Andy C [soil] Try apt-get update
c55f9ec74 2024-02-23 Andy C [spec/arith] Require 64-bit integers
264a7cfec 2024-02-23 Andy C [spec/ysh-expr-arith] Add similar test case for 64-bit integers
5aad8bd90 2024-02-23 Andy C [mycpp] BigInt <-> int conversion
f77e76ec2 2024-02-23 Andy C [mycpp/runtime] Implement ToBigInt(s: str, base: int)
b26082cc0 2024-02-23 Andy C [mycpp/runtime] Separate StringToInt64() vs StringToInt()
1e8d05db7 2024-02-23 Andy C [mycpp/runtime] StringToInt() checks that it fits in int, too
d581e025a 2024-02-24 Andy C [spec/exit-status] Change spec to respect 32-bit overflow
3c09211ac 2024-02-24 Andy C [ASDL] Add BigInt as a primitive type
fbba31f1d 2024-02-24 Andy C [mycpp/runtime] Factor out mops (math ops) module
6b2b99e7e 2024-02-24 Andy C [ASDL] Rename to mops::BigInt
2ba0cb7de 2024-02-24 Andy C [build] Exclude mops.py from type checking
6c8b1e6cb 2024-02-24 Andy C [mycpp/mops] Rename and plan more operations
5de752611 2024-02-24 Andy C [mycpp/mops] Restore type checking
8798c0eb9 2024-02-24 Andy C [osh] Start using mops library for shell arithmetic
9ab3524f5 2024-02-24 Andy C [demo] Survey of pretty printing
ee727d9e1 2024-02-24 Andy C [osh] Use BigInt for [ and [[ integer comparisons
074078034 2024-02-24 Andy C [osh] More migration to BigInt
edd8be525 2024-02-24 Andy C [osh/sh_expr_eval] More migration to BigInt
8efed091d 2024-02-24 Andy C [core] Migrate num.py to BigInt
cbb56cfc2 2024-02-24 Andy C [core refactor] value.Int is a BigInt, not machine integer
8c974762b 2024-02-24 Andy C [osh] Big integers work!
fcf94b510 2024-02-24 Andy C [mycpp/mops rename] ToBigInt() -> FromStr()
24746d4de 2024-02-24 Andy C [mycpp/mops refactor] Improve type safety
6f735611d 2024-02-24 Andy C [mops] Make sure we use mops.Equal(), not ==
ff6f62ad3 2024-02-24 Andy C [mycpp/mops] Fix type annotations
3310f13dd 2024-02-24 Andy C [ysh] Start migrating to BigInt
c9a3f756a 2024-02-24 Andy C [spec/ysh-expr-arith] Add failing test for ValueError bug
65792fb1a 2024-02-24 Andy C [demo] Survey what interpreters do with big numbers
d1afa104d 2024-02-25 Andy C [ysh] Migrate expression evaluator to BigInt
a48517d2e 2024-02-25 Andy C [frontend refactor] Add value_t field to expr.Const
e66cda896 2024-02-25 Andy C [build] Fix deps
78ea13fe4 2024-02-25 Andy C [ysh] Evaluate constants are parse time
4390ced72 2024-02-25 Andy C [ysh] Handle overflow of big integer constants
321cc6033 2024-02-25 Andy C [translation] Add mylib.PYTHON overflow check
bcd006684 2024-02-25 Andy C [demo] Improve survey of big integers
273f89423 2024-02-25 Andy C [demo] Improve surveys
cb9bbf2a5 2024-02-25 Andy C [deps] Weird fix for installing R packages
bda4c06aa 2024-02-25 Andy C [mycpp] Start str_switch implementation
27690f279 2024-02-25 Andy C [doc] Pretty printing doc
1f85b38ce 2024-02-26 Andy C [spec/ysh-scope] Remove obsolete test case
7cd9edb32 2024-02-26 Andy C [spec/ysh-scope] Add failing test for setglobal bug #1841
b34c74eff 2024-02-26 Andy C [test] Failing test cases for a couple bugs
67586b441 2024-02-26 Andy C [ysh parser] Fix crash with b'\x'
675106568 2024-02-26 Andy C [ysh] Within $'', single \ at end of line is consistently illegal
86d9d1ffe 2024-02-26 Andy C [doc/README] Add note about 24 hour response time
60e2bc1ae 2024-02-27 Adam Bannister [ysh] const variable with nothing on RHS shouldn't be allowed to be redeclared (#1823)
a672aa058 2024-02-27 Andy C [osh] Disallow func and proc keywords
58a3b2427 2024-02-27 Andy C [builtin/try] try { p } is the only form
d933a8814 2024-02-27 Andy C [test] Fix tests for try { p } and proc/func
84cfcc9a0 2024-02-27 Andy C [tests] Fix append builtin tests
323b41615 2024-02-27 Andy C [doc/ref] Remove 'try grep' shortcut
6ff1c5421 2024-02-27 Andy C [ysh/builtin] Rename toJ8() fromJ8() -> toJson8() fromJson8()
5450f8042 2024-02-27 Andy C [spec/ysh-json] Fix tests after renaming
45f37f8c4 2024-02-27 Andy C [errors] Add error catalog, with hints on the first error!
36fcf3dfb 2024-02-27 Andy C [doc/error-catalog] Add 3 hints related to \ escaping
1acd09fe8 2024-02-27 Andy C [doc] Link help topics from the error catalog
fd91d30b3 2024-02-27 Andy C [soil] Add test/ysh-runtime-errors.sh soil-run-cpp
098a3446c 2024-02-27 Andy C [soil] Enable JSON tests in C++
d4bb2da21 2024-02-27 Andy C [Soil] Add test/runtime-error.sh soil-run-cpp
d94ca9279 2024-02-27 Andy C [test/errors refactor] Consolidate assertions in common file
75a2cb142 2024-02-27 Andy C [test/parse-errors refactor] Use test-* naming convention for functions
bd27ad6ff 2024-02-27 Andy C [test/parse-errors] Can run all cases with bash and dash
5c5d5b0cd 2024-02-27 Andy C [test/errors] Fix sh-assert function, so we can turn on errexit
fe4b4134a 2024-02-27 Andy C [test/errors] Turn on errexit, migrate to quoted style
12541300e 2024-02-27 Andy C [test/runtime-errors] Migrate some functions to quoted style
dc64ebd05 2024-02-27 Andy C [test/errors] More cleanup
567fe7b0b 2024-02-27 Andy C [test/runtime-errors] Better test harness
7fe0256bd 2024-02-27 Andy C [test/errors] Move YSH cases to ysh-parse-errors
a31c0aa5a 2024-02-28 Andy C [doc] Pretty printing draft
1d79e020a 2024-02-28 Andy C [tools] Minor renaming and formatting
0bba5367b 2024-02-28 Andy C [test/lossless] Renamed from test/arena
d2bd4a716 2024-02-28 Andy C [test/lossless] Disable here doc test
77af91f98 2024-02-28 Andy C [osh] Fix lossless invariant when stripping tabs in here docs!
5691a22c3 2024-02-28 Andy C [osh optimize] Avoid Id.Ignored_HereTabs in the real shell
7957ae86e 2024-02-28 Andy C [osh optimize] Omit Token.tval for Id.Ignored_HereTabs
f152f6203 2024-02-28 Andy C [doc] Document lossless invariant
4f7dc8a4e 2024-02-28 Andy C [j8 refactor] Extract methods
ee51aa6cd 2024-02-28 Andy C [j8 refactor] Remove silly spaces "cache"
eff7d1036 2024-02-28 Andy C [j8 refactor] Remove j8.Printer class
21faf6164 2024-02-28 Andy C [frontend] Optimize so we don't emit empty Id.Ignored_HereTabs
45f32c47b 2024-02-28 Andy C [data_lang] Stub of pretty printer
153d40ffb 2024-02-28 Andy C [data_lang] Fix stub
466fba31e 2024-02-28 Andy C [frontend refactor] SimpleVarSub -> NameTok
c3276eec3 2024-02-28 Andy C [frontend refactor] Remove some Token.tval
0a29677be 2024-02-28 Andy C [frontend refactor] Remove more Token.tval
96d889e3e 2024-02-28 Andy C [frontend refactor] Remove more Token.tval
1f59bce8c 2024-02-28 Andy C [test/unit] Fix build
7a5a57bec 2024-02-28 Aidan [ysh] Implement Str => trim, trimLeft, trimRight (#1836)
93f01b819 2024-02-29 Andy C [test/lossless] Test YSH multi-line strings.
3d89988d3 2024-02-29 Andy C [frontend refactor] Remove more Token.tval
f22bcc825 2024-02-29 Andy C [test/unit] Add FakeToken(), so we don't need Token.tval
ff3193597 2024-02-29 Andy C [test/unit refactor] Remove use of Token.tval in tests
aa55fa7f5 2024-02-29 Andy C [frontend/consts] Generate int2str functions
be634122f 2024-02-29 Andy C [test/lint] Fix build
1d07844f3 2024-02-29 Andy C [doc] Pretty printing images
d6f3c7cdb 2024-02-29 Andy C [doc] Good draft of Pretty printing doc
eb9b36bbe 2024-03-01 Andy C [ysh cleanup] Remove unused tea_keywords flag
429812445 2024-03-01 Andy C [tools] Add stub for --tool fmt
dd54861e8 2024-03-01 Andy C [spec/brace-expansion] Change spec regarding tilde interaction
51f8c9838 2024-03-02 Andy C [test/lossless] Add sh-features test file
761a4d3bd 2024-03-02 Andy C [mycpp/examples] Test startswith/endswith methods
d3477ac0e 2024-03-02 Andy C [format] All of mycpp/examples/*.py
d20bc918e 2024-03-02 Andy C [benchmarks] Count tokens
2f16ae945 2024-03-04 Andy C [test/unit] Add tests for tilde detection.
f59ac79d7 2024-03-04 Andy C [frontend/refactor] Remove Id.Lit_TildeLike
7438c3a6a 2024-03-04 Andy C [osh] Do tilde detection after brace expansion too
0d7b9e8e2 2024-03-04 Andy C [translation] Fix build
2b5f98cf3 2024-03-04 Andy C [spec/toysh] Update test to reflect new semantics
8b432223d 2024-03-04 Andy C [cpp] Fix getpgid() to raise exception on error
e3cade8e7 2024-03-05 Aidan Add OILS-ERR-200 - External command and unexpected typed args (#1855)
af550c673 2024-03-05 Andy C [test] Try to repro ESRCH bug
015034d42 2024-03-05 Andy C [format] All of spec/*/*.py
82f15ff75 2024-03-06 Andy C [data_lang] Add pretty printing benchmark
80a105dd7 2024-03-06 Andy C [doc] Update pretty printing
470b47983 2024-03-06 Andy C [test/wild] Fix PYTHONPATH
11c494687 2024-03-07 Andy C [spec/builtin-trap-bash] Add another pipeline test case
b1dbb5001 2024-03-08 Andy C [demo] Repro for bug, like starship bug
c1a1077b6 2024-03-08 Andy C [osh/cmd_eval refactor] Move debug traps to _Dispatch
7cd2f9edb 2024-03-08 Andy C [osh/cmd_eval] Run DEBUG trap on control flow nodes too.
153f02d43 2024-03-08 Andy C [spec/builtin-trap-bash] Make note of pipeline inconsistency
568bff228 2024-03-08 Andy C [core/process] Remove getpgid() calls, in favor of self.pgid
8c86c878d 2024-03-08 Andy C [core] Add Job::ProcessGroupId() API and unit test it
310608827 2024-03-08 Andy C [osh] Disable DEBUG trap in last part of pipeline in job control shells
425435ad7 2024-03-08 Andy C [core] Print setpgid() files to the tracer, no stderr
64172e07c 2024-03-08 Andy C [test/unit] Fix build
010700566 2024-03-08 Andy C [doc/ref] Document shopt _no_debug_trap
a57f6388d 2024-03-08 passionsocks [ysh] Improve Str methods: trim{,Start,End}, startsWith, endsWith (#1858)
d369a433d 2024-03-09 Aidan [stdlib] Improve and rename args.ysh (#1856)
46f144b08 2024-03-11 Andy C [mycpp refactor] Preparing for str_switch
6efd0dba7 2024-03-11 Andy C [mycpp] Implement with str_switch(s) pattern
e56b698ed 2024-03-11 Andy C [mycpp] Fix check for missing default block
1a2934d5c 2024-03-11 Andy C [core] Use str_switch optimization in state::GetValue()
b2424c8e1 2024-03-11 Andy C [rename] Remove "oil" in a few places
acb9724cc 2024-03-11 Andy C [mycpp] Remove obsolete casting hack, with type names *_t
091cdf91d 2024-03-11 Andy C [mycpp/examples] Test typical UP_val casting pattern
122588173 2024-03-11 Andy C [osh refactor] Remove temp var, use casting
bde2d3f4b 2024-03-11 Andy C [mycpp] Don't create new vars in case blocks, unless var is UP_*
3fafc450e 2024-03-12 Andy C [benchmarks/perf] Function to profile CPython configure
460c6273d 2024-03-12 Andy C [benchmarks] Direct measure of Python configure mem overhead, syscalls
65b048df1 2024-03-12 Andy C [benchmarks] valgrind automation
34696f212 2024-03-12 Andy C [release] Bump to version 0.21.0
40c1b7204 2024-03-12 Andy C [mycpp] Prototype of byte operations
0b97555cf 2024-03-12 Andy C [translation] Optimize LooksLikeGlob() with byte ops
833e74daa 2024-03-12 Andy C [translation] Optimize GlobUnescape() with byte ops
9f76eacef 2024-03-12 Andy C [mycpp/runtime fix] Fix JoinBytes()
21bae7b3b 2024-03-12 Andy C [test/lint] Add import
b740f7de2 2024-03-12 Andy C [translation] Optimize IFS splitter with byte ops
38c327942 2024-03-12 Andy C [benchmarks] Re-run perf and callgrind after optimization
da32fc20e 2024-03-12 Andy C [benchmarks] dbg binary with callgrind gives better traces
9066df0de 2024-03-13 Andy C [benchmarks/perf] Add parse_help workload
afea52514 2024-03-13 Andy C [release] Update README-native.txt
b49b94c75 2024-03-13 Andy C [release] Update automation for build oils-for-unix first
dc3fc1ace 2024-03-13 Andy C [translation] Initialize vars to avoid C++ warnings
c265df53e 2024-03-13 Andy C [translation] Initialize more vars
cc2f68315 2024-03-13 Andy C [metrics] Fix line count metric