Skip to content

Add FSTAR_USE_KRML_EXE; migrate from KRML_HOME to KRML_EXE#4349

Open
tahina-pro wants to merge 2 commits into
FStarLang:masterfrom
tahina-pro:_taramana_krml_home_to_exe
Open

Add FSTAR_USE_KRML_EXE; migrate from KRML_HOME to KRML_EXE#4349
tahina-pro wants to merge 2 commits into
FStarLang:masterfrom
tahina-pro:_taramana_krml_home_to_exe

Conversation

@tahina-pro

Copy link
Copy Markdown
Member

This PR adds support for FSTAR_USE_KRML_EXE=1, which skips building the karamel/ submodule and instead uses an existing Karamel executable given by the KRML_EXE environment variable. The default behavior (building the submodule) is unchanged.

This PR also migrates the Pulse test Makefiles and the rest of the tree from KRML_HOME to KRML_EXE:

  • Makefile: guard the Karamel build with FSTAR_USE_KRML_EXE; skip the per-stage Karamel install in that mode; pass KRML_EXE (not KRML_HOME) to the Pulse test/accept targets. The in-tree default points at the installed executable, karamel/out/bin/krml.
  • Pulse dice/cbor examples: use KRML_EXE, and krml -locate-include / -locate-krmllib for C include paths. These paths (and KRML_EXE itself) are quoted at every use site so they tolerate whitespace in the location (e.g. Windows).
  • pulse/mk/locate.mk: drop the KRML_HOME fallback (default to krml).

Inspired by project-everest/everparse#298.

Add support for FSTAR_USE_KRML_EXE=1, which skips building the karamel/
submodule and instead uses an existing Karamel executable given by the
KRML_EXE environment variable. The default behavior (building the
submodule) is unchanged.

Migrate the Pulse test Makefiles and the rest of the tree from KRML_HOME
to KRML_EXE:
- Makefile: guard the karamel build with FSTAR_USE_KRML_EXE; skip the
  per-stage karamel install in that mode; pass KRML_EXE (not KRML_HOME)
  to the Pulse test/accept targets. The in-tree default points at the
  installed executable, karamel/out/bin/krml.
- Pulse dice/cbor examples: use KRML_EXE, and `krml -locate-include` /
  `-locate-krmllib` for C include paths. These paths (and KRML_EXE
  itself) are quoted at every use site so they tolerate whitespace in
  the location (e.g. C:\Program Files on Windows).
- pulse/mk/locate.mk: drop the KRML_HOME fallback (default to `krml`).
- examples/tactics(+bench), pulse2rust/dpe, pulse CI workflow,
  devcontainer Dockerfile, docker/advance build scripts, and docs.

Inspired by project-everest/everparse#298.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tahina-pro tahina-pro requested a review from mtzguido July 7, 2026 03:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant