13 comments

[ 4.8 ms ] story [ 39.3 ms ] thread
I'm very optimistic about RISCV adoption, I'd wager this is the year the major distributions start preparing to host stable releases for it, or at least Fedora. There's a Guix developer making pretty decent progress on the port. https://tooot.im/@efraim/tagged/guix
I'd be interested in hearing about the various factors that conspire to make Rust to difficult to bootstrap for a new architecture.
Its dependence on LLVM, for one.
I have great hopes for gcc-rs, they've made great strides implementing the language.
Cool stuff! Thanks for sharing, Drew!
Nice to see that some people are taking the time to try and assemble a RISC-V PC usable in everyday life.

That no mainline web browser works would be a showstopper for me. I spend about half my day on the web and the other half in my IDE (being a developer).

Did you try building Chromium? It doesn't have any Rust dependencies AFAIK.

Firefox works: https://yewtu.be/watch?v=MiGfP0-g2q0. I believe they are working on the JavaScript JIT now.
OK, fine, but not having JavaScript is unworkable. Most sites, such as Github, Outlook and Jira require it and I need those to do my day-to-day work.
It'll get there eventually. Right now, JavaScript works but it does not have the architecture-specific just-in-time compiler that speeds up hot code massively. The interpreter works though.
My favorite ways to optimize programs instead pessimizes them on RISC-V.

I have read claims that the Bitmanip extension, or maybe just parts of it, will end up in the "profile" that full-featured desktop-scale parts will support, but I have not found any way to verify that. With desktop-style boards already being sold, is there any reasonable expectation that default builds for 64-bit RISC-V will ever assume those Bitmanip instructions are there, and use them in optimizations? Or are the extensions more of a cruel joke, suggesting to us in detail what we might have had, but can't really ever?

RVA22 Profile: https://github.com/riscv/riscv-profiles/blob/main/profiles.a...

Zba and Zbb are both mandatory extensions. Zbc, Zbkb, Zbkc, Zbkx are all supported extensions. Zba and Zbb contain most useful bitmanip instructions. For example, POPCOUNT is in Zbb.

Implementations are free to choose their extension combinations and go out of standard profiles. But doing so will void them from mainstream *nix support.

Edit: Also for the already sold units, there is a RVA20 profile without any bitmanip which most of them will match. You can assume no newer application uarch will use RVA20 since year 2022.

Thank you, this is very helpful. I am more optimistic about the usefulness of RISC-V than before reading this.