Skip to content

oxabl_parser: v1.0.0

Choose a tag to compare

@evanbrobertson evanbrobertson released this 10 Aug 17:51
a13d729

1.0.0 (2026-08-04)

⚠ BREAKING CHANGES

  • SymbolTable::inherited_member_type and record_inherited_member_type are removed; read Symbol::data_type.
  • semantic: UnresolvedReason gains NotFoundInWorkspace and Unknowable. An exhaustive match on it will no longer compile. Both are skip-listed by every lint rule, so no diagnostic changes.
  • api: oxabl::parse, oxabl::analyze, oxabl::analyze_with_fs, and oxabl_formatter::format_source are deprecated in favor of their try_* siblings. They still compile and behave identically; callers denying deprecation warnings will need to migrate or allow them.
  • api: the oxabl umbrella no longer glob-re-exports its sub-crates at the crate root; consumers use the named modules (e.g. oxabl::ast::Statement). oxabl_parser no longer exposes its skip_to_* recovery helpers or its expressions/statements modules.

Features

  • api: curated public facade + parse() convenience (#55) (#113) (dd496e0)
  • api: diagnostic renderer, Display, and serde on the diagnostic family (#55) (#114) (0681257)
  • api: panic-safe parse, analyze, and format entry points, and browser crash recovery (#135) (2e87258)
  • ast: add NodeId to Expression via wrapper struct (phase 1b) (be6abe4)
  • ast: add NodeId to Statement via wrapper struct (Phase 1a) (ad6ac60)
  • ast: comment side-table on Program + blank-line detection (#92) (2d6b92e)
  • ast: full-fidelity spans on AST wrapper nodes (#91) (2e774b1)
  • bench: add preprocessor benchmark suite (1e14fa7)
  • capture SHARED/NEW SHARED flags on variable, temp-table, and buffer defines (04abd6c)
  • capture SHARED/NEW SHARED flags on variable, temp-table, and buffer defines (2be6087)
  • close residual LINT0001 language-coverage gaps (#58) (b3124fd)
  • judge the cross-file population, and drain the top of the unmodelled-statement suppression (#153) (a1e03e6)
  • seed full ABL system-handle set for LINT0001 (b461dd7)
  • semantic: the cross-file resolution seam, with the rules held still (#146) (3cee2c0)

Bug Fixes

  • ADM2 mid-line &IF (#65) and xp-property BUFFER-FIELD path (#66) (#67) (872c741)
  • bind FUNCTION signature params into function scope (#68) (#70) (8699d86)
  • credit table reads in buffer, empty-table, and query forms (#130) (#138) (6e39138)
  • eliminate unused-variable false positives from block-body parse errors (#79) (#80) (e653c36)
  • expand undefined {¯o} references to empty string (3397101)
  • parser: stamp full-extent spans on IF/ELSE block branches (#97) (6ed9268)
  • silence LINT0001 for MAX/MIN/ABS/VALUE, NO-APPLY, lock method args (1e997d2)
  • stop three lint rules reporting variables that unmodelled statements touch (#137) (28c0a1e)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • oxabl_ast bumped from 0.5.0 to 1.0.0
      • oxabl_common bumped from 0.5.0 to 1.0.0
      • oxabl_lexer bumped from 0.4.1 to 1.0.0
    • dev-dependencies
      • oxabl_preprocessor bumped from 0.3.1 to 0.4.0
      • oxabl_workspace bumped from 0.4.0 to 1.0.0