chore: upgrade to Fable 5.11#34
Merged
Merged
Conversation
Bumps the local Fable tool from 5.2.0 to 5.11.0. Two breaking changes in the toolchain needed fixing: BEAM module naming is now prefixed by source path (program -> test_program, timeflies -> timeflies_src_timeflies), and Fable emits a main.erl entry-point shim. The test runner now invokes main:main([]), and the hand-written WebSocket handler in the timeflies example was repointed at timeflies_src_timeflies. That handler's stale reference was masked by a leftover timeflies.erl from the 5.2.0 build — Erlang resolves remote calls at runtime, so it compiled clean and would only have crashed on the first WebSocket connect. `just clean` now clears the examples' build output so stale modules can't hide this again. The Python backend emits fable_library.union.narrow, which requires fable-library >= 5.11.0 in both pyproject.toml files (the timeflies example was pinned at 5.0.0rc2). Verified: 28/28 tests pass on .NET, Python and BEAM; the timeflies BEAM server serves HTTP 200 and a real WebSocket connection drives the actor fan-out pipeline end-to-end; the JS example builds. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Bumps the local Fable tool from 5.2.0 → 5.11.0.
Breaking changes handled
1. BEAM module naming is now prefixed by source path.
program→test_program,timeflies→timeflies_src_timeflies, and Fable emits amain.erlentry-point shim.justfile: test runner callsmain:main([])instead ofprogram:main([]).examples/timeflies-beam/src/erl/fable_actor_timeflies_ws.erl: repointed attimeflies_src_timeflies:setup_pipeline/1.The WebSocket handler's stale reference was masked by a leftover
timeflies.erlfrom the 5.2.0 build. Erlang resolves remote calls at runtime, so it compiled clean and would only have crashed on the first WebSocket connect.just cleannow also clears the examples' build output so stale modules can't hide this again.2. Python backend emits
fable_library.union.narrow, which needs a newer runtime. Bumpedfable-libraryto>=5.11.0in bothpyproject.tomlfiles — the timeflies example was still pinned at==5.0.0rc2.Verification
GET /returns 200, and a real WebSocket connection drives the actor pipeline end-to-end — sending{"x":100,"y":200}returns{"index":0,"char":"T","x":115,"y":200}.no display name and no $DISPLAY), unrelated to the upgrade.Not changed
Fable.Corestays at5.0.0(5.2.0 is available) andFable.Beamat5.0.0-rc.*(rc.32 available) — everything compiles as-is.examples/timeflies-beam/src/Timeflies.fsprojpinsFable.Beamat5.0.0-rc.30explicitly, which drifts from the library's floatingrc.*.🤖 Generated with Claude Code