Skip to content

[new release] sail (13 packages) (0.20) - #28713

Merged
mseri merged 1 commit into
ocaml:masterfrom
Alasdair:release-sail-0.20
Oct 14, 2025
Merged

[new release] sail (13 packages) (0.20)#28713
mseri merged 1 commit into
ocaml:masterfrom
Alasdair:release-sail-0.20

Conversation

@Alasdair

Copy link
Copy Markdown
Contributor

Sail is a language for describing the instruction semantics of processors

CHANGES:

In addition to bug-fixes and smaller improvements, the following
changes and improvements have been made to the language:

Rocq Semantics

The core stepwise semantics of Sail that are currently used by the
interactive REPL and during optimisation passes like constant-folding
are now implemented in Rocq and extracted to OCaml.

Improved C++ support

New C++ --cpp backend that is a variant of the Sail C backend. It
wraps the generated model in a struct, so when using C++ multiple
instances can be created.
PR: rems-project/sail#1437

As part of the above work, Sail always generates a separate header
file for C or C++, meaning the --c-generate-header option is
redundant and deprecated.

The --c-static option has been removed.

Small fixes to the parsing of - and foreach loops. Slightly breaking
as from, to, and downto are now treated as proper keywords and
cannot be used as identifiers.

Other changes

Arguments can now be passed via the SAIL_FLAGS environment variable,
or via SAIL_ENCODED_FLAGS.
PR: rems-project/sail#1374

CHANGES:

In addition to bug-fixes and smaller improvements, the following
changes and improvements have been made to the language:

##### Rocq Semantics

The core stepwise semantics of Sail that are currently used by the
interactive REPL and during optimisation passes like constant-folding
are now implemented in Rocq and extracted to OCaml.

##### Improved C++ support

New C++ `--cpp` backend that is a variant of the Sail C backend. It
wraps the generated model in a struct, so when using C++ multiple
instances can be created.
PR: rems-project/sail#1437

As part of the above work, Sail always generates a separate header
file for C or C++, meaning the `--c-generate-header` option is
redundant and deprecated.

The `--c-static` option has been removed.

Small fixes to the parsing of `-` and foreach loops. Slightly breaking
as `from`, `to`, and `downto` are now treated as proper keywords and
cannot be used as identifiers.

##### Other changes

Arguments can now be passed via the `SAIL_FLAGS` environment variable,
or via `SAIL_ENCODED_FLAGS`.
PR: rems-project/sail#1374
@Alasdair

Copy link
Copy Markdown
Contributor Author

Not sure what the issue is with the conf-gmp package in the lower-bounds CI, I have a similar job set up in the Sail repository and it was quite happy to build with that version of conf-gmp.

@mseri

mseri commented Oct 14, 2025

Copy link
Copy Markdown
Member

Don't worry about conf-gmp, that is independent of this PR

@mseri

mseri commented Oct 14, 2025

Copy link
Copy Markdown
Member

Looks all right, thanks!

@mseri
mseri merged commit 09fb2fc into ocaml:master Oct 14, 2025
1 of 4 checks passed
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.

2 participants