Releases: riscv/sail-riscv
Weekly Release 2026-05-11-680531e
Weekly scheduled pre-release for commit 680531e.
What's Changed
- Isabelle target updates by @bacam in #1694
- Fix a missed check of vector source/dest overlap. by @pmundkur in #1688
- Fix missed illegal vtype and vd/v0 checks in some vector crypto instructions. by @pmundkur in #1690
- Fix sailcov support in sail_riscv_sim by @bacam in #1695
Full Changelog: 2026-05-04-4d5530b...2026-05-11-680531e
Weekly Release 2026-05-04-4d5530b
Weekly scheduled pre-release for commit 4d5530b.
What's Changed
- Strengthen the type of EEW in vector utils to
nat. by @pmundkur in #1689 - Add configuration flags to enable platforms without CLINT or SIG devices. by @pmundkur in #1686
- Move alignment helpers from vmem_utils to mem_utils to allow use with physical addresses. by @pmundkur in #1682
- Add option to control reservation invalidation by same-hart stores. by @pmundkur in #1684
- Add some documentation to the config file. by @pmundkur in #1691
Full Changelog: 0.11...2026-05-04-4d5530b
0.11
The highlight of this release is substantially improved performance on Linux boot after a fix to the handling of superpages in the TLB.
This release adds 13 new extensions; all mandatory extensions for RVAU23 are now supported.
Several configuration parameters have been added, along with new command line options. The model implements a simple external interrupt generator, and the wait duration of instructions like WFI can be specified. The handling of misaligned accesses can be specified at a more granular level.
A binary release for the ARM macOS platform is available.
The CI for the model now includes the recent release of the ACT 4.0.0 test suite.
More details, including important bug fixes, are in the release notes.
Weekly Release 2026-04-27-da838a7
Weekly scheduled pre-release for commit da838a7.
What's Changed
- Add Hypervisor Virtual Instruction Exception Handling for CSR Accesses by @nadime15 in #1624
- Add Simple Interrupt Generator MMIO device for testing purposes by @Timmmm in #1645
- Add the Ziccif extension. by @pmundkur in #1630
- Extend memory layout validation to include MMIO devices and the DTB. by @pmundkur in #1673
- Update the reading guide. by @pmundkur in #1671
- Simplify xret by moving their logic to their execute clauses by @KotorinMinami in #1672
- Extend the configuration for the handling of misaligned accesses. by @pmundkur in #1647
- Add a configuration option for exact matches on reservation addresses for LR/SC. by @pmundkur in #1675
- Adjust when
mstatus.{FS,VS}is read-only zero depending on support for S-mode, F, and v registers. by @pmundkur in #1679 - Add the Zicclsm extension. by @challenger1024 in #1468
- Renable the SMT builds and test. by @pmundkur in #1680
- Prepare release 0.11. by @pmundkur in #1681
Full Changelog: 2026-04-20-40d25df...2026-04-27-da838a7
Weekly Release 2026-04-20-40d25df
Weekly scheduled pre-release for commit 40d25df.
What's Changed
- Add --trace-tlb trace flag for TLB tracing by @nadime15 in #1652
- Implement
Memory_Exceptionas aTrap. by @KotorinMinami in #1622 - Detect potentially infinite trap loops. by @pmundkur in #1656
- Fix markdown link-check whitelist url. by @pmundkur in #1642
- Bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #1660
- Bump actions/github-script from 8 to 9 by @dependabot[bot] in #1661
- Fix command path in README for simulator help by @davidharrishmc in #1641
- Introduce a Vector payload for memory accesses. by @pmundkur in #1655
- Lean: fix deprecation warning in handwritten support by @ineol in #1667
- Remove the panic branch in translate_TLB_hit. by @nadime15 in #1664
- Require PMA regions to be page-aligned. by @pmundkur in #1663
- Tweak trap loop detector heuristic. by @pmundkur in #1666
- Update test suite release to add the newly released ACT 4.0.0 tests. by @pmundkur in #1668
New Contributors
- @davidharrishmc made their first contribution in #1641
Full Changelog: 2026-04-13-20690c8...2026-04-20-40d25df
Weekly Release 2026-04-13-20690c8
Weekly scheduled pre-release for commit 20690c8.
What's Changed
- Fix simulator output when run without arguments by @KotorinMinami in #1576
- Allow running RVFI-DII without any ELFs by @Timmmm in #1583
- Fail CI if one of the jobs fail by @jordancarlin in #1571
- Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #1578
- Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #1579
- Bump actions/attest-build-provenance from 3 to 4 by @dependabot[bot] in #1577
- Add the Zicfiss extension. by @pmundkur in #1408
- Fix Zicfiss changelog entry by @jordancarlin in #1586
- Enable release builds for Mac by @Timmmm in #1575
- Improve handling of
ebreak. by @pmundkur in #1587 - Add atomic support to the PMA config. by @pmundkur in #1589
- Make the physical memory write helpers require an explicit access-type argument. by @pmundkur in #1590
- Add a missed check for invalid PTE. by @pmundkur in #1595
- Refactor feature_enabled_for_priv() to return tri-state result by @nadime15 in #1597
- Gate ptw_fail_callback on config_print_ptw flag by @nadime15 in #1601
- Use a wrapper to ensure that
xtval_exception_valueis used for constructed traps. by @pmundkur in #1592 - Add a
--rv32option to use a default RV32 configuration. by @pmundkur in #1600 - Add a configuration parameter to control the writable bits of
scounteren. by @pmundkur in #1604 - Correctly raise misaligned access exceptions for store-conditional by @Timmmm in #1603
- Add the Svvptc extension. by @pmundkur in #1606
- Fix and simplify log output for hex values by @Timmmm in #1608
- Add a
max_time_to_waitparameter to configure maximum waits for waiting instructions. by @pmundkur in #1568 - Add the Svnapot extension. by @pmundkur in #1596
- Add the Ziccamoa, Ziccamoc and Ziccrse extensions. by @pmundkur in #1605
- Split --trace-reg into separate GPR and CSR trace flags by @KotorinMinami in #1609
- Extend PMA attributes to specify whether hardware can read/write page-tables. by @pmundkur in #1612
- Increase limit for
memory.misaligned.allowed_within_expby @Timmmm in #1615 - Minor cleanup in Zicbom and Zicboz. by @pmundkur in #1616
- Add the Ssccptr extension. by @pmundkur in #1611
- Allowing testing with locally built test archives. by @pmundkur in #1620
- Replace a recently broken link to the manual. by @pmundkur in #1621
- Update to latest test suite release. by @pmundkur in #1627
- Return an access fault for misaligned LR/SC instead of misaligned exception by @Timmmm in #1625
- Rocq opam package: remove obsolete sail_manifest dependency by @bacam in #1628
- Workaround random access failures in CI to links for rmem and Sail. by @pmundkur in #1631
- Add the Svade and Svadu extensions. by @pmundkur in #1599
- Fix Mac condition in CMake packaging by @Timmmm in #1638
- Make the PMA config validator easier to extend for more checks. by @pmundkur in #1634
- Add virtual instruction exception generation to the Flush, Clean and Zero CBO ops. by @pmundkur in #1632
- Fix config validation to remove problematic uses of
hartSupports. by @pmundkur in #1629 - Fix superpage TLB entries being stored at wrong index by @nadime15 in #1643
- Remove an unused
offsetargument forvmem_read_addr. by @pmundkur in #1640 - Fix PMA check for byte/half-word widths in Zabha. by @pmundkur in #1639
- Use ExecuteAs to make execute non-recursive by @Timmmm in #1635
hpmcounter{3-31}do not depend on U by @jordancarlin in #1649- Add the Svpbmt extension. by @pmundkur in #1626
- Fix macOS release. by @pmundkur in #1653
- Fix misplaced Changelog entry. by @pmundkur in #1654
- Add explicit main/IO memory PMA by @pmundkur in #1648
Full Changelog: 2026-03-02-efdfe9b...2026-04-13-20690c8
Weekly Release 2026-03-02-efdfe9b
Weekly scheduled pre-release for commit efdfe9b.
What's Changed
- Move interrupt state to its own file by @Timmmm in #1565
- Log explicit and implicit updates to
mip. by @pmundkur in #1561 - Remove
init_platformandplatform_wfiby @Timmmm in #1566 - Use Sail standard definitions for shifts by integer amounts by @bacam in #1559
- Explicitly set the C version when compiling GMP by @Timmmm in #1569
- Add configuration option for reserved mtvec[MODE] values by @challenger1024 in #1533
- Reduce code nesting in
run_hart_activefor simplicity. by @pmundkur in #1570
Full Changelog: 2026-02-23-c4d3140...2026-03-02-efdfe9b
Weekly Release 2026-02-23-c4d3140
Weekly scheduled pre-release for commit c4d3140.
What's Changed
Full Changelog: 0.10...2026-02-23-c4d3140
0.10
The highlight of this release is the switch to using the C++ backend of the Sail compiler. The generated model for the hart is wrapped in a C++ class, which opens up the possibility of instantiating multiple harts to simulate multicore platforms (though this is not yet implemented).
A --config-override option has been added to specify one or more additional JSON configuration files that override the corresponding fields in a configuration.
This release adds 9 extensions and 2 unratified extensions. The unratified extensions require the --enable-experimental-extensions option to be activated.
More details, including updates to the configuration file and important bug fixes, are in the release notes.
Weekly Release 2026-02-16-a33475a
Weekly scheduled pre-release for commit a33475a.
What's Changed
- Strengthen some before statements in sail_project file by @Alasdair in #1537
- Install newer Clang version on Linux CI for newer extension support by @nadime15 in #1532
- Make global
g_modelinstance local by @Timmmm in #1536 - Improve README. by @pmundkur in #1540
- Fix fcvt.s.bf16 NaN-boxing returning wrong canonical QNaN by @nadime15 in #1528
- Add --config-override flag for configuration overrides by @trdthg in #1534
- Add missed stateen checks for the high-half CSRs of
hstateen[0-3]. by @pmundkur in #1546 - Add the Rocky Linux container build to CI. by @pmundkur in #1542
- Use FetchContent for CLI11 and bump to v2.6.1 by @trdthg in #1544
- Adapt the release workflow to use the common
sail-setupaction. by @pmundkur in #1543 - Update changelog for version 0.10. by @pmundkur in #1526
- Update version. by @pmundkur in #1552
Full Changelog: 2026-02-09-de7c9e8...2026-02-16-a33475a