chore: drop the BEAM workarounds for upstream Fable bugs#38
Draft
dbrattli wants to merge 1 commit into
Draft
Conversation
dbrattli
force-pushed
the
chore/drop-beam-fable-workarounds
branch
from
July 18, 2026 16:24
684d13c to
48d03e4
Compare
BLOCKED: do not merge until a Fable release contains #4817 and #4819.
Against released Fable 5.11.0 this makes `just test-beam` fail.
Removes the two workarounds introduced alongside the Scriptorium migration,
both of which exist only to paper over Fable bugs that are now fixed on
Fable's main:
* The `test-beam` flatten step, which copied package modules out of
fable_modules/<pkg>/<subdir>/src/ into the package's own src/ so rebar3
would compile them. Fixed upstream by #4817 — Fable now writes them to
<pkg>/src/ directly.
* The `#if FABLE_COMPILER_BEAM` fork in test/shared/Helpers.fs, whose
[<Emit("$0")>] identity stood in for the missing Async.AwaitTask. Fixed
upstream by #4819, which added `await_task(Task) -> Task.` — the same
identity. Helpers.fs now has no target fork at all.
Verified against a local Fable checkout carrying both fixes:
just dev=true test
Python 50 passed | JavaScript 43 passed, 2 skipped | BEAM 37 passed, 8 skipped
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
dbrattli
force-pushed
the
chore/drop-beam-fable-workarounds
branch
from
July 18, 2026 16:42
48d03e4 to
84b2c5c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft — blocked on an upstream Fable release. Do not merge yet.
Stacked on #37, which is where both workarounds are introduced. Base will retarget to
mainautomatically once #37 merges.Removes the two BEAM workarounds that exist only to paper over Fable bugs. Both are now fixed on Fable's
main, but neither is in a release yet — and CI runsdotnet fable(currently 5.11.0), so merging this today turns CI red.What this removes
test-beamflatten step in theJustfilefable_modules/<pkg>/<subdir>/src/, which rebar3'sproject_app_dirsnever scans — they compiled but wereundefat runtime<pkg>/src/#if FABLE_COMPILER_BEAMintest/shared/Helpers.fsAsync.AwaitTaskcompiled tofable_async:await_task, which did not exist; the[<Emit("$0")>]identity stood in for itawait_task(Task) -> Task., the same identityNet effect:
Helpers.fshas no target fork at all, andtest-beamis back to compile → rebar3 → run.Verification
Green against a local Fable checkout carrying both fixes:
Red against released Fable 5.11.0, exactly as expected — Python and JS pass, BEAM dies on the missing Parchment sink:
(The
undefsurfacing asfable_async:run_synchronouslyrather than the real call site is itself an upstream artefact, fixed by #4818 — the async re-raise used to discard the original stacktrace.)Merge checklist
Justfile/ CI bumped to that releasejust testgreen on the released compiler🤖 Generated with Claude Code