Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 1.86 KB

development.md

File metadata and controls

59 lines (45 loc) · 1.86 KB

Development

Work from the repository root with .NET SDK 10+, just, Node.js and uv. BEAM commands use mise to select the OTP and Rebar versions in mise.toml.

Set up and build

dotnet tool restore
uv sync
mise trust
mise install
just check       # Type-check library and tests
just build       # Generate Erlang and compile the BEAM library
just format      # Format F# source
just format-check # Verify formatting, the same check CI runs

Test

The same behavioral suite is compiled to all targets. Tests use Scriptorium.

just test-native
just test-js
just test-python
just test-beam
just test        # All four targets

For local compiler work, just dev=true test-beam uses the sibling ../Fable checkout instead of the pinned released compiler. The same switch applies to other Fable compilation recipes.

The ordinary BEAM benchmark compares execution costs against a release baseline, including cancellation-token creation. Run it when changing the shared builder or its native execution helpers.

Run Timeflies

Timeflies gives each letter an actor and fans out mouse positions to produce a trailing animation.

Target Command UI
BEAM just run-timeflies Cowboy WebSocket server
Python just run-timeflies-python tkinter
JavaScript just run-timeflies-js React/Feliz and Vite

Package

just pack creates the single Fable.Actor NuGet package using the version in CHANGELOG.md. It includes the unified Actor factories, command descriptions and lifetime capabilities, their assembly and the Fable source payload.

Controller design and runtime regressions are documented in Maintainer notes.