IBEX DOCUMENTATION

Racc migration evidence

Ibex documentation for Racc migration evidence.

Racc migration evidence

This page is the H002 evidence index for the compatibility claims in racc-migration.md. It records observable behavior only; it does not claim that a third party has adopted Ibex, and it is not a performance result.

Evidence boundary

The three public migration suites are pinned in release-readiness.md: Namae, BCDice, and Nokogiri. Their revisions, adapters, and observed test counts are release evidence. The rows below are repository-owned black-box probes that target compatibility risks which are easy to miss in a single arithmetic grammar. They run against the installed racc executable when it is available and skip otherwise; a skip is not reported as a pass.

RiskProbe and observable contractReproduction
precedence and conflict accountingarithmetic results match; resolved conflicts remain visible in Automaton IR but do not inflate the CLI conflict count or expectbundle exec ruby -Itest test/compat/black_box_test.rb
empty productions and string tokensempty reductions and literal-token paths produce the same public result valuesbundle exec ruby -Itest test/compat/black_box_test.rb
convert and no_result_vartoken conversion and result-variable suppression preserve the generated parser's public action behaviorbundle exec ruby -Itest test/compat/black_box_test.rb
inline actionsaction placement and returned semantic values are equivalent at the public parser boundarybundle exec ruby -Itest test/compat/black_box_test.rb
expect and dangling-else behaviorthe expected conflict count and parse result remain stable for the ambiguous grammarbundle exec ruby -Itest test/compat/black_box_test.rb
error recovery and on_errorcallback arguments and recovered result values are compared; the documented undeclared-token difference remains explicitbundle exec ruby -Itest test/compat/black_box_test.rb
source locations and line conversionsemantic action line mapping follows the documented default and --line-convert-all modesbundle exec ruby -Itest test/racc_migration_test.rb
runtime initialization and value-stack readsan initializer that omits super retains application state while historical value-stack reads remain compatiblebundle exec ruby -Itest test/racc_migration_test.rb
unqualified ParseErrorparser methods and actions can retain the explicit rejection path through Runtime::Parser lookupbundle exec ruby -Itest test/racc_migration_test.rb
large grammar constructiona 500-production grammar completes with the recorded production/state bound and no conflictsbundle exec ruby -Itest test/compat/black_box_test.rb
push-parser runtime contractpush-session lifecycle, token feeding, acceptance, and cleanup remain stable within Ibex's public runtime APIbundle exec ruby -Itest test/runtime/push_parser_test.rb

The compatibility test files are the executable source of truth. The commands above were last run at the evidence refresh and produced zero failures and zero errors (black-box: 6 runs/33 assertions; migration: 5 runs/20 assertions; push-parser: 46 runs/183 assertions). The black-box suite reported no skip in that environment.

Interpretation

These probes establish coverage of distinct compatibility risks, not a claim that every racc grammar is interchangeable. Generated source layout, internal table arrays, require "racc/parser" replacement, and previously generated racc table loading remain explicitly out of scope. Formal cross-project performance comparison is tracked separately in the release-readiness report and remains incomplete until a clean, exact-revision artifact is published.