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

Reply via email to