Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Posted Mar 1, 2021 19:01 UTC (Mon) by flussence (guest, #85566)Parent article: Woodruff: Weird architectures weren't supported to begin with
Isn't the whole root of this discourse that *Rust* is one of those?
Posted Mar 1, 2021 19:43 UTC (Mon)
by farnz (subscriber, #17727)
[Link] (21 responses)
What do you mean by "Rust is one of those"? It's not hardware, nor is it a large corporation's platform (it's a programming language with an open-source implementation). And the complaint from the affected users is that their weird hardware is no longer supported because pyca switched from being C + Python to being C + Rust + Python, but the affected users aren't in a position to enable Rust support for their weird hardware. It's easy to forget that bringing up open source on a weird hardware platform took time and effort to begin with - GCC did not magically get an ARM backend in 1987, someone had to code it - and that it will take time and effort to keep the weird platforms working.
We've been in a long period of stability when the frontends GCC has defined what was a usable language for open source - either it needed a GCC frontend, or it needed an interpreter that only depended on GCC, and the backends GCC has defined what CPUs and platforms were usable. That stability is coming to an end, as more people turn to LLVM as their preferred compiler/JIT framework instead of GCC. and the resulting languages turn out to be interesting to more than just academia. In turn, this means that people who have been able to free-ride on the work done on GCC for their architecture in the past are losing that free ride, and will have to pay the LLVM (and possibly Rust) taxes for their architecture. Note, of course, that if you were starting truly from scratch with a hobby OS and CPU ISA, you'd also have to port a compiler, a libc, and many more pieces.
In the end, this is a natural extinction event for many architectures - if you really need support for hardware that LLVM doesn't currently work with, you either need to do what people like John Paul Adrian Glaubitz are doing and step up to provide support for your hardware in LLVM (and possibly Rust), or you need to accept that it's a toy project, and that if you don't have the resources to follow where the big boys are going, then you're not going to be able to keep up with the modern world.
Posted Mar 1, 2021 21:09 UTC (Mon)
by pizza (subscriber, #46)
[Link] (13 responses)
The thing is, *everyone* involved is getting some amount of "free ride". Including the pyca authors.
(And speaking of folks using these old architectures, the remaining holdouts tend to be the ones who had historically provided said free ride. They're been putting in sweat equity, and telling them "you have to do a _lot_ more work now" is ... kinda crappy..)
> In the end, this is a natural extinction event for many architectures - if you really need support for hardware that LLVM doesn't currently work with
It also widens the chasm that any new architecture needs to cross in order to be viable.
Posted Mar 1, 2021 22:33 UTC (Mon)
by roc (subscriber, #30627)
[Link] (3 responses)
Posted Mar 2, 2021 10:00 UTC (Tue)
by xophos (subscriber, #75267)
[Link] (1 responses)
Posted Mar 5, 2021 18:29 UTC (Fri)
by khim (subscriber, #9252)
[Link]
Posted Mar 2, 2021 13:05 UTC (Tue)
by pm215 (subscriber, #98099)
[Link]
Posted Mar 2, 2021 10:41 UTC (Tue)
by farnz (subscriber, #17727)
[Link] (4 responses)
Same sorts of things have happened in the past with other architectures, too, though - the people who brought us VAX and PDP-11 support were told that they didn't matter any more, and they didn't choose to keep doing the work
That's why I talk about this as a natural extinction event - we've had a period where the free ride was relatively widespread, and now it's being narrowed again to just the platforms that people who do the work care about (whether that's because they can do the work themselves, or are willing to pay for it to happen). Once the kernel compiles with clang (or someone revives https://dragonegg.llvm.org/), then the chasm narrows back down - you have to get LLVM supported, but you lose the need to support GCC in return.
Posted Mar 2, 2021 16:17 UTC (Tue)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
Posted Mar 2, 2021 19:52 UTC (Tue)
by flussence (guest, #85566)
[Link]
Posted Mar 5, 2021 7:35 UTC (Fri)
by dvdeug (guest, #10998)
[Link] (1 responses)
Posted Mar 5, 2021 9:28 UTC (Fri)
by farnz (subscriber, #17727)
[Link]
It puts you in exactly the same position that you're in now, but with a suite of compilers that support all the languages you want - remember that while the GNU utilities are only supported upstream with GCC, nothing is supported on your platform until you have a working compiler.
Thus, you're providing the support for everything - and I would have as much time for you complaining that GNU utilities don't work on your new platform as I have for people complaining that Rust doesn't work on their niche platform (none at all - you're the one doing something that upstream isn't supporting, you deal with the fallout).
And depending on what you're doing, you might not need the GNU utilities at all - Busybox, for example, provides alternatives to the GNU utilities.
Posted Mar 2, 2021 10:53 UTC (Tue)
by farnz (subscriber, #17727)
[Link] (3 responses)
And also, a lot of the complaining is coming from people who haven't provided said free ride; the complainants talking about HPPA and S390 are literally complaining that it used to build on those architectures, but doesn't any more. I have a lot more time for the complaints about M68k support because (a) they're coming from people who actually used and bugfixed the software in past releases on M68k, and (b) they're actually working to find a way forward with Rust support for the platform.
If I flip the question round, it becomes clearer to me: what degree of effort does a project have to make to be compatible with platforms that are no longer properly updated? Are we choosing to limit ourselves to the versions of C and C++ that're supported by MIPSPro on IRIX because there are people who want to use it (there's a surprisingly vibrant IRIX hobbyist base), or are we going to say that you can use C99, C++11 and other more modern languages, and those platforms need to keep up or die off?
Posted Mar 2, 2021 15:38 UTC (Tue)
by mathstuf (subscriber, #69389)
[Link] (2 responses)
Interesting. CMake dropped support for IRIX years ago (because we don't have anything to test with). Are they just using an old CMake version, only using software from that era, or doing everything with CMake-less projects (possible, but more likely a result of not updating software stacks I'd imagine)?
Posted Mar 3, 2021 9:14 UTC (Wed)
by farnz (subscriber, #17727)
[Link] (1 responses)
Mostly running period-appropriate software on them, and either fixing things locally or not using modern software.
The systems involved tend not to be internet-connected because of this - the risk of running IRIX 6.5 on today's Internet is not worth taking.
Posted Mar 4, 2021 22:22 UTC (Thu)
by ejr (subscriber, #51652)
[Link]
Posted Mar 2, 2021 19:05 UTC (Tue)
by flussence (guest, #85566)
[Link] (6 responses)
Java, Golang, C#, and Swift also have open implementations (some of them even bother to derive those from a specification), but most of us understand that “who owns C?” is a uniquely nonsensical question to ask.
Posted Mar 2, 2021 19:25 UTC (Tue)
by rahulsundaram (subscriber, #21946)
[Link] (5 responses)
That would apply to Rust as well since unlike other examples in your list, there is no single vendor driving the language.
Posted Mar 2, 2021 19:36 UTC (Tue)
by rgmoore (✭ supporter ✭, #75)
[Link] (1 responses)
I think a lot of people still think of Rust as being something Mozilla is pushing, even though Mozilla has now laid off most of the Rust developers they once employed.
Posted Mar 2, 2021 23:48 UTC (Tue)
by roc (subscriber, #30627)
[Link]
Posted Mar 6, 2021 18:55 UTC (Sat)
by Mook (subscriber, #71173)
[Link] (2 responses)
That's probably reflective of Rust still being under heavy development; mrustc is smaller in scope (doesn't aim to do borrow checking), and still could not keep up to date with the current compiler. This is not really the fault of any party, of course.
Posted Mar 6, 2021 21:33 UTC (Sat)
by farnz (subscriber, #17727)
[Link]
On the other hand, that makes Rust the same as Linux; there's only one complete Linux kernel, but it's not exactly owned by any one company in particular. In theory, someone could buy out Linus and have the One True Linux Kernel, but in practice enough other people are involved that this is not a risk.
Posted Mar 6, 2021 23:05 UTC (Sat)
by Cyberax (✭ supporter ✭, #52523)
[Link]
Rust is getting pretty stable now, so this actually starts to make some sense. And unlike Go, Rust is a fairly straightforward language, it doesn't need a runtime or GC.
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Android has been building production kernels with clang for 2 years.
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
Woodruff: Weird architectures weren't supported to begin with
