3 ms·
If only Go were as simple as the Plan 9 compilers it is derived from. Go is so big it is used as a disk thrashing benchmark for the new 9front gefs disk file sy
by MisterTea 2mo ago
If only Go were as simple as the Plan 9 compilers it is derived from. Go is so big it is used as a disk thrashing benchmark for the new 9front gefs disk file system. In addition to disk thrashing it also helped shake out some deep kernel bugs. It also frequently breaks, most recently the bootstrap, likely stack corruption issues. Go also keeps threatening to drop Plan 9. Go: The good, the bad and the ugly - Plan 9 edition. Last time I built it, it took forever (like 15-20 min) vs rebuilding ALL of 9front from source, kernel included (see below.)
Plan 9 C is wonderful to work in. I really enjoy its simplicity and how the system design has trimmed away a lot of the ugly API's (select and poll, thank god they're gone...) and replaced them by modern multi-process solutions like thread(2) and ioproc(2). Plan 9 was designed ground up for multi-processor machines and it's all channels (if Go were an OS...)
> Decades and centuries of compute-time saved.
Rebuild all of 9front user space from source: 'cd /sys/src; mk clean; time mk install' - 51.48u 36.14s 51.23r mk install. almost 51.5 seconds, under a minute on a measly quad core i5-6500T CPU @ 2.50GHz - a Dell micro desktop with a SATA SSD.
9front amd64 PC kernel build: 'cd /sys/src/9/pc64; mk clean; time mk' - 5.38u 1.16s 4.19r mk. FIVE FUCKING SECONDS. Same machine as above. Time to build the Arm64 Pi kernel: 4.66u 0.83s 3.99r mk. About one second faster. Edit, I should add the kernel sizes: 9pc64 - 5,412,046 bytes, 9pi3 - 4,443,400 bytes. About a second per megabyte of executable machine code generated.