Repository navigation
v1.4.2
·
1419 commits
to master
since this release
What's Changed
- test(regression): #812 pin suite TMPDIR under a space-free scratch anchor by @caomengxuan666 in #864
- docs(hygiene): #849 注释/坐标漂移清扫 + #768 README byte-identical 措辞(closes #849 #716 #768 #767) by @caomengxuan666 in #865
- fix(builtins,executor): #704 printf numeric validation (R6.1), command -v no-operand + substitution status (R6.2 residue) by @caomengxuan666 in #869
- fix(executor,builtins): #773 fd table capped at 1014 with a bogus EINVAL — capacity now follows ulimit -n soft, exhaustion reports EMFILE by @caomengxuan666 in #870
- fix(executor): mark_quoted_ifs_from_raw recognizes markers.rs carrier bytes (#868) by @caomengxuan666 in #874
- fix(executor): clamp the $() and backtick raw-skip copy loops to the buffer (#875) by @caomengxuan666 in #877
- fix(executor): mark_quoted_ifs_from_raw applies quoted-IFS marks on the recorded byte-offset basis (#876) by @caomengxuan666 in #882
- fix(assoc): #860 unset empty-span/mask pseudo-diagnostic + #861 kvlist self-read miss by @caomengxuan666 in #883
- docs: #716 repoint dangling TASKBOARD references to git history by @a-rookie-of-C-language in #886
- fix(builtins,executor): #866/#867 — unforgeable background-wrapper handshake + expected-parent PDEATHSIG race check by @caomengxuan666 in #873
- fix(executor,builtins): #872 fd-table nits — move_to_high_fd comment + single-source fd defaults + drop dead field by @a-rookie-of-C-language in #885
- fix(builtins): #859 — pushd -n with no operand is a silent no-op (rc 0), not the swap arm by @a-rookie-of-C-language in #889
- test(audit): #713 probe stdin EOF + refresh last-run line by @a-rookie-of-C-language in #904
- fix(executor): #846 - ! no longer flips a compound's own redirect failure by @a-rookie-of-C-language in #902
- fix(printf): #871 recognize glibc strtod inf/nan word prefixes in %f/%e/%g by @a-rookie-of-C-language in #899
- fix(executor): #858 — \ must restore the word-internal comsub \True overlay by @a-rookie-of-C-language in #891
- fix(executor): #850 — fold /cygdrive//... to the drive letter for in-shell faces by @a-rookie-of-C-language in #893
- fix(executor,builtins): #873 wrapper respawn carries the handshake argv flag only when the host CLI consumes it by @caomengxuan666 in #906
- fix #896: pushd dash family follows GNU option walk by @a-rookie-of-C-language in #901
- fix(console): no visible console window for console-less runs (niubash#451) by @caomengxuan666 in #909
- fix(expand): unset scalar base has no element 0 for operators by @caomengxuan666 in #910
- fix(login): report login_shell shopt as on for login shells by @caomengxuan666 in #911
- perf(expand): byte-wise case transform for ASCII pattern-less ops by @caomengxuan666 in #912
- test(regression): arm the #761 guards and promote lim-f5-fd-cap (#761, #773) by @caomengxuan666 in #908
- chore: #905 pin *.py eol=lf + renormalize CRLF-committed probe script by @a-rookie-of-C-language in #907
- docs: #892 contributor conventions written down (oracle, probes, env, full suite, GPL, process) by @a-rookie-of-C-language in #903
- fix(console): adopt single hidden console per detached session (niubash#462, niubash#451) by @caomengxuan666 in #913
- perf(shopt): don't materialize default-equal state, keep fast lookup path by @caomengxuan666 in #915
- fix(executor): inline tput arm — Windows-only whitelist answers byte-equal to GNU ncurses (#800 face A) by @caomengxuan666 in #884
- perf(env): gate the process-env mirror on special names (#916) by @caomengxuan666 in #917
- perf(env): write-behind marker strings, read from structured flags by @caomengxuan666 in #918
- perf(array): typed-cell reads with dirty-flag invalidation (#914) by @caomengxuan666 in #919
- perf(export/unset): single-probe mirror, gated env fallback, bulk unmark (#916) by @caomengxuan666 in #920
- perf(dispatch): hoist case word, merge test Vecs, memoize at-join by @caomengxuan666 in #921
- perf(arith): single-static parse cache for CmpLT + PostInc by @caomengxuan666 in #922
- perf(array): drop redundant mirror clone on element read path by @caomengxuan666 in #923
- perf(array): hoist typed-cell read before mirror clone on element path by @caomengxuan666 in #924
- perf(for-arith): counter fast driver for canonical counting loops by @caomengxuan666 in #925
- test(cli): interleave typed-cell matrix across builtin writes by @caomengxuan666 in #926
- test: land semantic-edge regression suites (test/shift/arith) by @caomengxuan666 in #927
- test: vendor oils spec cases for arith/bracket/array/assoc by @caomengxuan666 in #928
- test: dirty-flag unit + integration semantics by @caomengxuan666 in #929
- perf(test): whitelist fast path for pure-decimal comparisons by @caomengxuan666 in #930
- perf(arith): AddAssign cache slot for x+=i / x+=1 by @caomengxuan666 in #931
- perf(assoc): typed-cell read for single-element assoc lookups by @caomengxuan666 in #937
- docs(readme): #768 — split byte-identical into raw + env-classified + clean (zh-CN synced) by @caomengxuan666 in #932
- docs: #878 CR nits rework — correct command.def/printf.def coordinates (#888 review) by @caomengxuan666 in #933
- fix(printf): #879 PR #900 review rework — hex window pexp, denormal guard, decimal window, '0' on inf/nan by @caomengxuan666 in #935
- fix(executor,lexer): #880 rework -- close the two PR#898 review blockers by @caomengxuan666 in #936
- audit(713): third nested-context pass — 56 probes, #934 faces pinned, $0-spelling normalized by @caomengxuan666 in #941
- build(provenance): stamp -dirty- of the worktree diff into the version banner (rubash#827) by @caomengxuan666 in #939
- fix(script-entry): escape literal marker-zone chars in script text — isolated U+E000 passthrough (#856) by @caomengxuan666 in #946
- fix(executor): E400-aware sentinel decode family for marker output boundary by @caomengxuan666 in #947
- test(regression): #746 catalogue second batch + manifest exhaustiveness gate by @caomengxuan666 in #944
- test(regression): flip issue-879 catalogue row to must-match (rubash#949) by @caomengxuan666 in #950
- perf(array): negative-literal subscript fast lane via typed cell by @caomengxuan666 in #942
- perf(shift): offset-window positional params, drop per-shift clone+drain by @caomengxuan666 in #954
- perf(expand): literal-word fast path in expand_word_mut + command words by @caomengxuan666 in #956
- fix(reader): end grouped gather at a stray close inside an open group (niubash#482) by @caomengxuan666 in #955
- chore(vendor): bump third_party/bash to Bash-5.3 patch 20 (9c465866) (#895) by @caomengxuan666 in #957
- fix(executor,cd): bare drive designator D:/cd D: converge on the engine dispatch by @caomengxuan666 in #953
- fix(main): -c operand marker-zone entry escaping — respawn exclusion is double-escape only (rubash#948) by @caomengxuan666 in #952
- perf(case): render head-only for $BASH_COMMAND, lazy word_chars, gated debug-trap head by @caomengxuan666 in #958
- perf(array): decimal-subscript write fast lane, alloc-free mirror append by @caomengxuan666 in #959
- perf(assoc): trim per-op fixed costs on the write fast lane (#618) by @caomengxuan666 in #960
- fix(executor): sync typed assoc cell on nameref element assignment (#961) by @caomengxuan666 in #962
- perf(assoc): skip discarded whole-word pass on side-effect-free element writes by @caomengxuan666 in #963
- fix(executor): sync typed cells on parameter default-assign + compound-append; add coherence verifier by @caomengxuan666 in #964
- perf(expand): inert-prefix brace-close fast path + ${name} whole-word lane by @caomengxuan666 in #965
- perf(cond): direct numeric leaf + extglob-skip + decimal fast path by @caomengxuan666 in #966
- perf(expand): multi-word literal command fast path by @caomengxuan666 in #967
- fix(env): unbind drops inherited process-env copies (#917 rework) by @caomengxuan666 in #943
- release: 1.4.2 prep — version bump 1.4.1 → 1.4.2 (engine minor, lock self-entry in lockstep) by @caomengxuan666 in #969
- chore(vartable): P1a dirty choke-point + per-name freshness protocol by @caomengxuan666 in #972
- perf(expand): walker entry-chain trim (pending-diag borrow, body buffer reuse, scalar memo skip) by @caomengxuan666 in #973
- perf(expand): whitelist-skip preserves_word_metadata procsub scan on literal words by @caomengxuan666 in #974
- docs: link unixwin.dev portal in README headers and CHANGELOG links by @caomengxuan666 in #968
- fix(read): serve fd-0 self-dups through the ordinary fd-0 transports by @caomengxuan666 in #975
- ci(windows): run cargo test --lib on the windows lane by @caomengxuan666 in #951
- chore(compat): advertise GNU bash 5.3.20 (vendored PATCHLEVEL 20) by @caomengxuan666 in #978
- fix(executor): ${...} IFS-mark copy arm uses the cook's own dolbrace span (#977) by @caomengxuan666 in #979
Full Changelog: v1.4.1...v1.4.2