sail VS riscv-isa-manual

Compare sail vs riscv-isa-manual and see what are their differences.

sail

Sail architecture definition language (by rems-project)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
sail riscv-isa-manual
2 41
546 3,328
6.0% 3.6%
9.5 9.7
4 days ago 5 days ago
Isabelle TeX
GNU General Public License v3.0 or later Creative Commons Attribution 4.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

sail

Posts with mentions or reviews of sail. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-28.
  • How to improve the RISC-V specification
    9 projects | news.ycombinator.com | 28 Apr 2024
    Sail is pretty similar to ASL (both current ASL and ASL 1.0) except that (1) it has a more expressive type system, so that bitvector lengths can all be statically checked, (2) it has proper tagged unions and pattern matching, and (3) there's a wide range of open-source tooling available, for execution, specification coverage, generating emulators, integrating with relaxed concurrency models, generating theorem-prover definitions, etc. We've recently updated the Sail README, which spells some of this out: https://github.com/rems-project/sail .

    As Alastair Reid says, one of the main things missing in the current RISC-V specification documents is simply that the associated Sail definitions are not yet interspersed with the prose instruction descriptions. The infrastructure to do that has been available for some time, in the Sail AsciiDoc support by Alasdair Armstrong (https://github.com/Alasdair/asciidoctor-sail/blob/master/doc...) and older LaTeX versions by Prashanth Mundkur and Alasdair (https://github.com/rems-project/riscv-isa-manual/blob/sail/r...).

  • Candy – a minimalistic functional programming language
    5 projects | news.ycombinator.com | 24 Feb 2024
    That's completely feasible and there are languages that do this. It doesn't really eliminate the need to run your program unless the inputs to your program are also completely restricted types like One, Two, Three. In which case yeah, you don't need to run it and the type system can just tell you the answer.

    I believe you can do that sort of thing in loads of type systems, e.g. Typescript, but there are languages that intentionally support it. I use a niche DSL that has fancy types like this called Sail. https://github.com/rems-project/sail

    In my experience the downsides of these fancy "first class type systems" are

    1. More incomprehensible error messages.

    2. The type checker moves from a deterministic process that either succeeds or fails in an understandable way, to SMT solvers which can just say "yep it's ok" or "nope, couldn't prove it", semi-randomly, and there's little you can do about it.

    Still my experience of Sail is that it's very comfortable to go a little bit further into SMT land, and my experience of Dafny is that it's very unpleasant to go full formal-verification at the moment.

    I've done a fair bit of hardware formal verification too and that's a different story - very easy and very powerful. I'm hoping one day that software formal verification is like that.

riscv-isa-manual

Posts with mentions or reviews of riscv-isa-manual. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-28.
  • The Improved RISC-V Specification (latest WIP draft)
    1 project | news.ycombinator.com | 28 Apr 2024
    https://github.com/riscv/riscv-isa-manual/releases

    Regarding the recent "How to improve the RISC-V specification" post [0], I just wanted to point out, that the latest draft manual is already a great improvement. (see link above)

    It includes a lot of the newly ratified extensions: bitmanip,zicond,vector,vector crypto, ...

    And there are a bunch of included SAIL definitions for bitmanip and zicond, but other instructions are still missing the SAIL code. Most notably, the SAIL definitions from the RV32I/RV64I base isa are also missing.

    I asked for the further SAIL integration plans here: https://github.com/riscv/riscv-isa-manual/issues/1369

    Here is an example SAIL snippet from cpopw:

        let bitcount = 0;
  • How to improve the RISC-V specification
    9 projects | news.ycombinator.com | 28 Apr 2024
    I encourage you to look at the newest isa manual draft on github: https://github.com/riscv/riscv-isa-manual/releases

    It includes the more recently extensions, and e.g. the bitmanip instructions all have associated pseudo code.

    Here is e.g. the code for cpopw:

        let bitcount = 0;
  • Need help with designing a basic RISC V processor?
    5 projects | /r/RISCV | 21 Jun 2023
  • The legend of “x86 CPUs decode instructions into RISC form internally”
    6 projects | news.ycombinator.com | 18 Jun 2023
    I tried searching the spec [1] for "overflow" and here is what it says at page 17:

    > We did not include special instruction-set support for overflow checks on integer arithmetic operations in the base instruction set, as many overflow checks can be cheaply implemented using RISC-V branches.

    > For general signed addition, three additional instructions after the addition are required

    Is this "cheap", replacing 1 instruction with four? According to some old mainframe era research (cannot find link now), addition is the most often used instruction and they suggest that we should replace each one with four?

    Their "rationale" is not rational at all. It doesn't make sense.

    Overflow check should be free (no additional instructions required), otherwise we will see the same story we have seen for last 50 years: compiler writers do not want to implement checks because they are expensive; language designers do not want to use proper arithmetic because it is expensive. As a result, there will be errors and vulnerabilities. A vicious circle.

    [1] https://github.com/riscv/riscv-isa-manual/releases/download/...

  • 64-bit Arm ∩ 64-bit RISC V
    2 projects | /r/asm | 7 Jun 2023
  • Beginner question: F extension
    1 project | /r/RISCV | 30 Mar 2023
  • Riscv Ghidra Instruction Manual
    2 projects | /r/ghidra | 11 Mar 2023
    Why not use the actual release PDF instead from their github? https://github.com/riscv/riscv-isa-manual
  • How would I go about designing an 8-bit RISC-V CPU? Is it possible?
    1 project | /r/RISCV | 2 Mar 2023
    https://github.com/riscv/riscv-isa-manual/releases/download/Priv-v1.12/riscv-privileged-20211203.pdf Part 2
  • Have to convert a C language code into RISC-V MIPS
    2 projects | /r/RISCV | 9 Feb 2023
    If you don't want to cheat then read the RISC-V ISA manual: https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMAFDQC/riscv-spec-20191213.pdf
  • How does a computer understand machine language?
    1 project | /r/ComputerEngineering | 4 Feb 2023
    Yeah you are on the right track. Processors are designed on top of an Instruction Set Architecture (ISA). For an example you can look on top of the RISC-V specifications:https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMAFDQC/riscv-spec-20191213.pdf (possible PDF download)

What are some alternatives?

When comparing sail and riscv-isa-manual you can also consider the following projects:

riscv-elf-psabi-doc - A RISC-V ELF psABI Document

riscv-emulator-docker-image

amaranth - A modern hardware definition language and toolchain based on Python

riscv-v-spec - Working draft of the proposed RISC-V V vector extension

vroom - VRoom! RISC-V CPU

open-source-cs - Video discussing this curriculum:

ibex - Ibex is a small 32 bit RISC-V CPU core, previously known as zero-riscy.

riscv-bitmanip - Working draft of the proposed RISC-V Bitmanipulation extension

rocket-chip - Rocket Chip Generator

branch-hinting - WebAssembly specification, reference interpreter, and test suite.

riscv-tee

riscv-CMOs