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
This is an example SAIL snippet from cpopw:
let bitcount = 0;
let val = X(rs);
foreach (i from 0 to 31 in inc)
if val[i] == 0b1 then bitcount = bitcount + 1 else ();
X[rd] = bitcount
Seems pretty readable to me.For anybody who wants to look at the RISC-V manual, and has low stakes, I'd encourage using the latest draft. I'm not working on it my self, but I imagine opening an issue if you come across a mistake/uncertain definition/... would be appreciated.
[0] https://news.ycombinator.com/item?id=40185065