go: unsupported GOOS/GOARCH pair plan9/arm64 so yeah. For Go, ARM is fine. arm64 not.
I stopped work on harvey about the time of this CL. Harvey was just not getting traction, and the other folks had lost interest too. It was an experiment, I (we) learned a lot, but it was not going to succeed. From my POV, 9front was the place to be. Their experiment succeeded. We explicitly, in Harvey, adopted the register calling convention, for performance reasons (those are measurable it's why Go went away from Plan 9 calling conventions too). This made Rust a bit easier. But as I mentioned in another note, the Plan 9 calling conventions come with some real advantages, so I'm glad to be back with that toolchain. Re Rust; don't underestimate the difficulty of bootstrapping a modern toolchain :-) The Rust compiler is written in C++; it's LLVM. I wrote some Linux emulation layers for Plan 9 over the years, and it gets messy fast. Paul is right: Go's toolchain portability is seriously impressive. But more impressive is the runtime portability. The Go standard runtime abstracts a large range of kernels into a usable common subset. As one example: the u-root find command has zero kernel dependencies, it's about 300 lines, and it works because the Go runtime limits you to a reasonable set of functions. Small is beautiful -- I recall that was our saying on Unix, and it's still true. On Wed, Jul 2, 2025 at 8:03 AM Shawn Rutledge <[email protected]> wrote: > > On Jul 1, 2025, at 01:40, Ron Minnich <[email protected]> wrote: > > > > I think you may well be. We did try a push for plan 9 support in rust > > in 2019 or so, but found a distinct lack of interest. > > > > rather than port the rust compiler to plan 9, if support ever got in, > > it might be easier to use the linux appliance approach: > > linux cargo build > > for example. > > > > but first you'll need to convince those folks to be interested in plan > > 9 support at all. > > > > https://github.com/rust-lang/rust/pull/74038/files > > Well from the comment chain it looks more like they were waiting for "This > PR needs rebasing and some contact info in case we need some help around > the Harvey architecture” and then work stopped on Harvey, right? (And I > still don’t understand if there was a good technical reason for losing > interest in continuing with Harvey, or just a human time limitation / > prioritizing other things.) > > But I was also thinking that the first step is to get the compiler to > generate the Plan 9 binary format, which ought to be an uncontroversial > patch. (Or is it not that simple?) Then you could bootstrap: the Rust > compiler is written in Rust, isn’t it? > > Likewise, do we still have the problem that the Go compiler can’t generate > the Plan 9 binary format for arm64? Is that hard to solve? > ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/Tf84d656c78bbda91-Maa0ad2d1df19280856b30951 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
