Skip to content

oxabl_flow: v0.3.0

Choose a tag to compare

@evanbrobertson evanbrobertson released this 16 Oct 12:50
ca5da31

0.3.0 (2026-10-16)

� BREAKING CHANGES

  • parser: StatementKind::Message gains a fields field.
  • parser: StatementKind has a new WaitFor variant; WAIT-FOR no longer parses to Skipped.
  • parser: StatementKind has a new Apply variant; APPLY no longer parses to Skipped.
  • parser: StatementKind has new Enable, Disable, Hide and View variants; those statements no longer parse to Skipped.
  • parser: StatementKind has new Update and Set variants; UPDATE and SET no longer parse to Skipped.
  • parser: StatementKind has new Form and DefineWidget variants and SymbolKind has a new Widget variant; FORM and static widget definitions no longer parse to Skipped.
  • parser: StatementKind has new Pause, Down and Up variants; PAUSE, DOWN and UP no longer parse to Skipped.
  • parser: StatementKind has new Export and Import variants; EXPORT and IMPORT no longer parse to Skipped.
  • parser: StatementKind has a new Put variant; PUT no longer parses to Skipped.
  • parser: new StatementKind::ReleaseObject and
  • parser: StatementKind::Do, Repeat and ForEach have a new
  • parser: StatementKind has a new VariableDeclarationList variant, so exhaustive matches on StatementKind must handle it.
  • lint: StatementKind::Procedure gains an is_prototype field.

Features

  • nulls: strict ABL M5: oxabl_nulls, NL001, NL002 and NL003 (906d636)
  • parser: accept USING-imported keyword class names and OE12 VAR lists (498faa2)
  • parser: declare the AS/LIKE field of a MESSAGE SET/UPDATE phrase (72b77a3)
  • parser: head-parse APPLY (ef487a1), closes #136
  • parser: head-parse ENABLE, DISABLE, HIDE and VIEW (d983d80), closes #136
  • parser: head-parse EXPORT and IMPORT (59f6c2c), closes #136
  • parser: head-parse FORM and declare static widgets (27d2c24), closes #136
  • parser: head-parse PAUSE, DOWN and UP (b16c0eb), closes #136
  • parser: head-parse PUT and trim the harvest of OS-* file statements (ba9faee), closes #136
  • parser: head-parse UPDATE and SET (c2882f4), closes #136
  • parser: head-parse WAIT-FOR (7179cea), closes #136
  • parser: model the handle-lifetime statements (86c7938)
  • scope: strict-analysis M3: oxabl_scope, the LISTING harness, LK001-LK003 and TX001-TX005 (d4779c9)

Bug Fixes

  • flow: end the dataflow solve at loop heads and bound its work (cecbfb1)
  • issue sweep 2 (downstream edges, parser members) (430fc3b)
  • lint: skip CATCH variables and EXTERNAL/IN procedure parameters in unused-variable (0ac00a2), closes #195 #196
  • parser: keep the expression of a block header ON phrase action (c930ea0), closes #226
  • parser: unquoted stream file names and MESSAGE UPDATE fields (06c823c)
  • sweep of 25 open parser, semantic, lint and schema issues (f01fcce)

Performance Improvements

  • flow: charge dataflow visits by the work of their fact (65fdbe4)
  • flow: read block headers from the parser's tokens (a1a0f78)
  • nulls: bound the work of the null analyses (edbd5cb)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • oxabl_ast bumped from 2.0.0 to 3.0.0
      • oxabl_lexer bumped from 1.0.2 to 2.0.0
    • dev-dependencies
      • oxabl_parser bumped from 2.0.0 to 3.0.0