Skip to content

Releases: mpecan/rable

rable: v0.1.9

07 Apr 07:32
b56f9de

Choose a tag to compare

0.1.9 (2026-04-07)

Features

  • decompose parameter expansions into Word.parts (b0ad648)
  • decompose parameter expansions into Word.parts (#17) (ded6897)

Bug Fixes

  • resolve clippy errors in tree-sitter comparison test (789da4d)
  • resolve clippy errors in tree-sitter comparison test (#15) (26570f9)

rable: v0.1.10

07 Apr 16:45
95cb3ca

Choose a tag to compare

0.1.10 (2026-04-07)

Features

  • recognize brace expansion patterns in Word.parts (fef69dc)
  • recognize brace expansion patterns in Word.parts (#18) (c9fd580)

rable: v0.1.8

25 Mar 15:41
364253b

Choose a tag to compare

0.1.8 (2026-03-25)

Features

  • enrich AST with structured word spans and assignment detection (9163d24)
  • enrich AST with structured word spans and assignment detection (#11) (3b58c38)

Bug Fixes

  • CTLESC byte doubling for bash-oracle compatibility (179/181) (72bc381)
  • heredoc trailing newline at EOF with backslash (180/181) (4af8d91)
  • resolve 11 oracle test failures (180/181) (#13) (69d6bc8)
  • resolve 3 more oracle failures (177/181) (8aca953)
  • resolve 6 oracle test failures (0496222)
  • resolve 6 oracle test failures (175/181) (1708884)

Documentation

  • comprehensive documentation update (#14) (6abfb20)
  • comprehensive documentation update for better DX (61114b0)

Code Refactoring

  • remove sexp re-parsing by threading spans through all nodes (54db8c7)
  • simplify span collection, move to owned tokens, remove dead code (cec7e8e)

rable: v0.1.7

25 Mar 07:53
579a7a4

Choose a tag to compare

0.1.7 (2026-03-25)

Features

  • populate source spans on all AST nodes (0e32c37)
  • populate source spans on all AST nodes (#8) (a8c92e8)
  • populate source spans on all AST nodes (#9) (b8be160)

rable: v0.1.6

25 Mar 06:57
e760bbe

Choose a tag to compare

0.1.6 (2026-03-25)

Features

  • enrich AST with spans, structured lists, and pipe separators (#7) (53269b7)
  • enrich AST with spans, structured lists, pipe separators, and assignments (7eec43e)
  • improve Rust developer experience (2ac7654)

Bug Fixes

  • trailing list operators in format and assert on Parable compat failures (3a98be1)

rable: v0.1.5

24 Mar 17:35
d885208

Choose a tag to compare

0.1.5 (2026-03-24)

Features

  • add differential fuzzer for bash-oracle and Parable comparison (4d18eff)
  • bracket subscript tracking in lexer (112/181 oracle) (35016dc)
  • generate 186 oracle-derived tests from bash-oracle fuzzing (e7940ce)
  • process sub word continuation + continue_word helper (124/181) (2caaf53)

Bug Fixes

  • &> and &>> redirects never accept fd number prefix (72/181) (e93a6d4)
  • >&- and <&- close-fd as complete lexer operators (136/181) (e5f4f0e)
  • $" inside double quotes is bare dollar, not locale string (165/181) (a80b648)
  • broaden reformatter gate + trim trailing spaces (94/181) (06d2d93)
  • cmdsub in redirect targets + close-fd formatting (131/181) (2d5b8a8)
  • escape backslashes in arithmetic S-expression output (64/181) (3e1d41e)
  • fd numbers only recognized adjacent to redirect operators (78/181) (f5962e4)
  • high-byte ANSI-C replacement chars + locale double-quote gating (83/181) (118cb81)
  • improve ANSI-C processing and bash-oracle compat (60/181) (dd28ade)
  • improve bash-oracle compatibility (37/181 oracle tests passing) (d1c07fb)
  • improve bash-oracle compatibility (48/181 oracle tests passing) (2ee0ea1)
  • pipeline time demoting, move-fd quoting, reserved words (144/181) (27a9c94)
  • procsub word continuation + double-quote context gating (127/181) (da0eba1)
  • single-quoted regions opaque to word segment parser (160/181) (a9ca786)
  • time after | in pipelines treated as regular word (139/181) (7e6b592)
  • update fuzzer to use --dump-ast flag for bash-oracle (b335332)
  • varfd adjacency + digit-only varfd rejection (141/181) (2ba8788)

Code Refactoring

  • centralize quote skipping and balanced delimiter reading (dc312ca)
  • eliminate code duplication from cargo-dupes audit (974a894)
  • extract shared CaseTracker and is_backslash_escaped (3d774e1)
  • Token::adjacent_to + depth guard increase to 2 (1b1824d)
  • unify process_word_value with parse_word_segments (149/181) (816161b)
  • unify redirect word processing, eliminate feature envy (154/181) (b520411)

rable: v0.1.4

24 Mar 13:28
6d48d3b

Choose a tag to compare

0.1.4 (2026-03-24)

Bug Fixes

  • include README.md as PyPI package description (5c8cdc2)

rable: v0.1.3

24 Mar 13:26
5e53198

Choose a tag to compare

0.1.3 (2026-03-24)

Bug Fixes

  • sync pyproject.toml version to 0.1.1 and fix release-please config (5efe677)

rable: v0.1.2

24 Mar 13:15
0efa092

Choose a tag to compare

0.1.2 (2026-03-24)

Bug Fixes

  • ci: pin Python 3.13 for wheel builds (f1f4609)

rable: v0.1.1

24 Mar 13:10
85443ba

Choose a tag to compare

0.1.1 (2026-03-24)

Features

  • achieve 100% Parable compatibility (1604/1604) (4d8b379)
  • implement PyO3 Python bindings (Phase 9) (b22a53e)
  • implement WordSegment state machine for word value processing (05b308c)
  • initial Rable implementation — Rust bash parser at 93.6% Parable compatibility (b52e0bc)
  • line continuation support, heredoc improvements (35479a9)
  • push Parable compatibility from 97.3% to 99.6% (1597/1604) (ffd0415)

Bug Fixes

  • & precedence, heredoc double-backslash, coproc redirects (1951a2f)
  • ANSI-C quoting escapes, control chars, redirect processing (544447b)
  • ci: create venv for maturin develop in Python and Benchmark jobs (1b7be5e)
  • comment handling in matched parens, escaped $ protection (1fbc396)
  • comment handling, line continuation in parens (c74fd2b)
  • conditional expressions, cstyle-for defaults, precedence (9f1ff9c)
  • conditional formatting in cmdsub, locale/ANSI-C in redirects (b2dc5a1)
  • coproc redirects, locale in redirects, arith spacing (574d21f)
  • line continuation in matched parens, ANSI-C control chars (0cbb912)
  • negation/time nesting, arithmetic $(()), brace/select edge cases (35d52bf)
  • revert top-level unwrap (caused 26 regressions), cleanup (df57600)

Documentation

  • add README, LICENSE, CONTRIBUTING, justfile, and benchmark (a4fab19)

Code Refactoring

  • move lexer, parser, sexp, format into module directories (8608bff)
  • replace ParserStateFlags with encapsulated lexer state API (7d7242d)
  • split lexer and parser tests into sub-modules (3296f1e)
  • split parser into 5 sub-modules (cb5a853)