Skip to content

oxabl_semantic: 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.

Features

  • ast: full-fidelity spans on AST wrapper nodes (#91) (2e774b1)
  • 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)
  • lint: add block-var-used-outside advisory (LINT0005) (#123) (e870d5b)
  • lint: credit table parameters, split dead stores into LINT0006 (#129) (d539c31)
  • lsp: ship oxabl lsp diagnostics-to-editor skeleton (#90) (d025e3d)
  • oxabl_lint: add lint crate with 4 v1 rules (Phase 5) (ed159e6)
  • oxabl_semantic: add crate skeleton and declare pass (Phase 3) (c3db693)
  • oxabl_semantic: add per-pass semantic benches + release config (Phase 8) (56cc85b)
  • oxabl_semantic: add type-check pass (Phase 4b) (79435cd)
  • oxabl_semantic: crate skeleton and declare pass (Phase 3) (f155645)
  • pipeline: wire cross-file resolution into every client, and prove they agree (#148) (967331b)
  • resolve abbreviated built-in function calls in undefined-symbol lint (3f45edd)
  • schema-backed symbol resolution for single-file field validation (91d6097)
  • seed full ABL system-handle set for LINT0001 (b461dd7)
  • semantic: resolve cross-file names, with the rules still held still (#147) (8873de9)
  • semantic: the cross-file resolution seam, with the rules held still (#146) (3cee2c0)

Bug Fixes

  • complete shared-flag fields on schema-PR test fixtures after #63 merge (d78cd4c)
  • credit table reads in buffer, empty-table, and query forms (#130) (#138) (6e39138)
  • lint: count OUTPUT-argument passing as a use in unused-variable (LINT0002) (#127) (a6eabb7)
  • reconcile FUNCTION FORWARD/IN SUPER prototype + definition (#69) (#73) (beda23c)
  • resolve built-in ABL functions in undefined-symbol lint (c47b55a), closes #58
  • semantic: accumulate read/write counts on schema field symbols (#60) (#112) (c70c768)
  • semantic: resolve unambiguous abbreviated field references (#82) (#84) (f3a340c)
  • semantic: resolve unqualified FIRST-OF/LAST-OF field against block buffers (#111) (6dcf5db), closes #107
  • semantic: scope DEFINE VARIABLE to the routine, not the block (#122) (edc98f8)
  • semantic: scope temp-table fields to their temp-table, not program scope (#110) (3d19165), closes #106
  • semantic: treat DO loop counter as a use of an existing variable (#83) (#85) (9d77fcf)
  • 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)

Performance Improvements

  • seed ABL system handles once via LazyLock (#72) (5fabd77)

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
      • oxabl_schema bumped from 0.1.0 to 0.2.0
    • dev-dependencies
      • oxabl_lexer bumped from 0.4.1 to 1.0.0
      • oxabl_parser bumped from 0.6.0 to 1.0.0
      • oxabl_schema bumped from 0.1.0 to 0.2.0