Releases: riscv/sail-riscv
Weekly Release 2026-01-12-397a7e8
Weekly scheduled pre-release for commit 397a7e8.
What's Changed
- Improve float classify code by @Timmmm in #1288
- Use let instead of register for plat_clint config variables by @jordancarlin in #1349
- Simplify vector_support_level by @KotorinMinami in #1348
- Add Zic64b extension by @jordancarlin in #1351
- Add gating for vector instructions. by @wwwwwwOwO in #1170
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #1360
- Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #1361
- Rocq updates by @bacam in #1359
- Add more state change callbacks by @Timmmm in #1354
- Add an option to choose a smaller set of modules for Lean build by @Alasdair in #1219
- Unify the handling logic for scalar and vector multiplication. by @KotorinMinami in #1299
- Refactor immediates in encoding clauses for readability. by @pmundkur in #1364
- Always validate JSON config by @Arielfoever in #1296
- Add new sail_smt_cache to git ignore list by @Arielfoever in #1373
- Bump jsoncons to version 1.4.3 by @Arielfoever in #1371
- Rename build_simulators.sh since there is only one simulator now. by @pmundkur in #1379
- Allow configuring read-only-zero PMP entries. by @pmundkur in #1363
- Document how to add an experimental extension. by @pmundkur in #1378
- Rename the AccessType for memory to be more explicit. by @pmundkur in #1368
- Innocuous typo in constructor name by @bacam in #1381
- Implement a more accurate access type for CSR accesses. by @pmundkur in #1369
- Add Sstvecd to supported extensions. by @pmundkur in #1377
- Provide default callback implementations by @Arielfoever in #1372
- Add ExecuteAs result for compressed instructions. by @pmundkur in #1382
- Put Sail smt cache in /build directory by @KotorinMinami in #1384
- Fix htif memory range check by @trdthg in #1380
- Add option not to download jsoncons by @bacam in #1385
- Support a configurable reservation set size. by @pmundkur in #1386
- Add profile-defined extension Ssu64xl. by @pmundkur in #1387
- Add configurations for page-fault traps that could set mtval. by @pmundkur in #1388
- Greatly simplify the code for reading & writing vector registers/masks by @Timmmm in #1213
- Rename some page table walk error results for clarity. by @pmundkur in #1394
- Slight refactor of address translation and PTE checks to ease implementing Zicfiss. by @pmundkur in #1393
- Update clang-format pre-commit hook by @Timmmm in #1398
- Split config_print_platform into finer grained options by @KotorinMinami in #1366
- Fix satp legalization to use Supervisor instead of current privilege by @nadime15 in #1399
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #1404
- Factor out a
preludemodule. by @pmundkur in #1406 - Add support for Sstvala. by @pmundkur in #1397
- Make the AMO execute more readable. by @pmundkur in #1407
- Fix unused variable warnings. by @pmundkur in #1409
- Expose per-step pre_step/post_step callbacks by @ibvqeibob in #1395
- Consolidate the indexed vector load and store instructions. by @pmundkur in #1410
- Use C++ Sail output by @Timmmm in #1274
- Simplify read/write kinds by @Timmmm in #1262
- Scatter termination.sail by @Ptival in #1376
- Add callbacks and logging for page table walks by @Arielfoever in #1370
- Lean: adapt to Sail change by @ineol in #1420
- add ConcurrencyInterfaceV1 as required by Nov lean nightly toolchain by @jn80842 in #1423
- Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #1425
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #1427
- Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #1426
- Update the build comment that appears in the model build log. by @pmundkur in #1428
- Fix location of the
hartSupports_measurefunction. by @pmundkur in #1429 - Replace hardcoded constant in tlb_hash() with a compile-time constant by @nadime15 in #1421
- Add Zdinx to configuration and validate Zfinx-related dependencies by @nadime15 in #1431
- Update pre-commit config. by @pmundkur in #1433
- Ensure that
rdis written byvset{i}vl{i}even for illegal and reservedvsewandvlmul. by @pmundkur in #1435 - Rename
ext_write_vcsrto justwrite_vcsrby @pmundkur in #1438 - Improve handling of reserved fences by @Timmmm in #1439
- Add WlfWriteFn type alias to elf_loader.h by @Timmmm in #1448
- Use private keyword in virtual memory code by @Alasdair in #1310
- Add missing
csr_write_callbackinaccrue_fflagsby @jordancarlin in #1432 - Improved clang-format style by @Timmmm in #1396
- Fix builds of tests on some platforms. by @pmundkur in #1444
- Bump os-boot Linux and GCC versions by @jordancarlin in #1450
- c_emulator: validate DTB range against configured PMA regions by @ibvqeibob in #1437
- Fix clang-format pre-commit error from #1437 by @jordancarlin in #1454
- Fix compiler warnings on macOS and enable more warnings. by @pmundkur in #1443
- Add reserved_behavior.amocas_odd_registers config by @challenger1024 in #1403
- Bump minimum Sail version to 0.20.1 by @jordancarlin in #1453
- Last remaining refactoring of immediates in encoding clauses for readability. by @pmundkur in #1375
- Flush stdout in flush_logs function by @jordancarlin in #1466
- Update documentation and code style guidelines. by @pmundkur in #1463
- Create weekly binary release by @jordancarlin in #1467
- Remove obsolete TODO from pre-commit config by @jordancarlin in #1473
- Require disclosure of the use of AI tools when contributing. by @pmundkur in #1472
- Add comment to weekly build release schedule by @jordancarlin in #1471
- Use a consistent name for variables of MemoryAccessType. by @pmundkur in #1474
- Add configuration option for reserved behavior
pmpcfg with r=0, w=1by @challenger1024 in #1422 - Centralize memory-access-to-fault conversions. by @pmundkur in #1475
New Contributors
- @ibvqeibob made their first contribution in #1395
- @Ptival made their first contribution in #1376
- @jn80842 made their first contribution in #1423
- @challenger1024 made their first contribution in #1403
Full Changelog: 0.9...2026-01-12-397a7e8
0.9
The main features of this release are:
- Support for the RV32E and RV64E ISAs.
- Many more extensions are now supported, for e.g. those for BFloat16.
- Support for Physical Memory Attributes (PMA).
- Validation of the configuration against the configuration schema.
- An ARM binary release for the emulator.
- Updated documentation.
More details are available in the Changelog.
Attestations for the release can be found at https://github.com/riscv/sail-riscv/attestations
0.8
This is a major release with some backwards-incompatible changes.
The highlights of the release are:
-
A single executable binary for the various ISA versions (RV32/RV64) and floating-point extensions (F/D).
-
The introduction of a JSON-based configuration system.
-
The use of the Sail module system to provide a modular structure to the RISC-V model.
-
Many new extensions, including complete coverage of the RVA23 vector crypto extensions.
-
The removal of obsolete in-tree ELF tests in favor of more recent upstream tests (currently from
riscv-software-src/riscv-testsandchipsalliance/riscv-vector-tests) in a unified test repo; these upstream tests are now used in CI. -
The removal of obsolete in-tree images for OS boot in favor of build scripts for more recent Linux boot images.
More details are available in the Changelog.
0.7
This is the first binary release of the emulators, currently for Linux x86_64 only. These are statically compiled on Rocky 8 with only glibc 2.17 (from 2012) as a dependency so they should run on most distros.
The tarball includes emulators for RV32D and RV64D. If you need RV32F or RV64F you must still compile from source.
The JSON file is intended for use with asciidoctor-sail to allow inclusion of Sail code snippets in documentation.
0.6
Currently we do not release binaries for the emulator (it is planned), so if you are using the emulator we recommend you compile it from the latest master.
This release exists to provide the JSON bundle, which can be used to embed Sail code into the ISA manual.