Comment by π norayr
Re: "i have this feeling about lowtech (not permacomputing) thatβ¦"
and you understand more of what you are doing when using xa.
2024-11-16 Β· 1 year ago
7 Later Comments β
π» a-short-term-effect Β· Feb 15 at 19:28:
I'm curious of your opinion on what hardware would be considered low-tech, how far back do we have to go in order to have a truly low-tech hardware-software stack?
π¦ zzo38 Β· Feb 15 at 20:38:
You are probably right about gcc, although some of the GNU extensions are useful (although other compilers implement them too), and GCC does have compiler optimizations unlike some simpler ones. Especially when using a programming language that can be used on many kind of computers, optimizations can be helpful.
π norayr [OP] Β· Feb 17 at 00:01:
@a-short-term-effect this is a very interesting question, actually, i was wondering myself.
so here i have a link
β β to the latest edition of project oberon.
i think whole system with windows, fonts, pixel access, mouse, etc, requires less than 200kb.
wirth designed own, very minimalistic and unique cpu, then ported oberon compiler's new edition to it, then compiled the whole os with it.
but there are older and more feature rich versions of oberon os. one needs around 1mb of ram and is fully multithreaded, etc, and other requires about 150kb and is more classical.
you can try the latter on linux, and notice compile speed:
π norayr [OP] Β· Feb 17 at 00:06:
β https://github.com/norayr/polpo
so, i was thinking that 64k is probably not enough, and 8bit cpu is probably not enough, we need 16 or 32bit, and min 512k is needed, 1mb is good but sometimes you might need up to 5mbs of ram.
how did i come up with these numbers?
i was thinking it is very important to be able to recompile your whole os from itself. not crosscompile it from modern pc, but be able to use the lowtech system to build its os and other software.
however then i found this project:
π norayr [OP] Β· Feb 17 at 00:13:
β https://github.com/Oric4ever/VM8-System/
so the author built an 8bit computer out of avr micro. added 64k ram.
he was trying to use his reverse engineered modula-2 compiler and now switched to oberon.
wirth's latest oberon compiler is much simpler than modula-2. so he can experiment with 1kb stack etc.
this compiler does not generate native code for that avr micro, but m-code, kind of a very compact byte code. m-code is so small, that author claims, it is really hard to exhaust full 64k. what would you do to exhaust it?
there's a video that shows how to use the system and even change and recompile it and restart to new version:
β https://youtu.be/5Qu8TZNxHn0
it.is amazing.
π norayr [OP] Β· Feb 17 at 00:15:
i will try to write later, too tired now.
π boringbbsuser Β· Mar 03 at 23:34:
Fascinating thread!
I agree, gcc is not for the faint of heart. tcc is much more "hackable."
On the otherhand, in a "grid down" situation, how often will we have to hack on our compilers?
I do like software like tcc. Would you say that Perl is low tech? What about Ruby?
Perl is definitely lighter than Python. Go is nice to work with.
IMO: OpenBSD is the most "hackable" daily driver. Has the best ratio of features to complexity.
But still, it's quite complex and has clang.
Maybe something else has it beat, though?
Original Post
i have this feeling about lowtech (not permacomputing) that gcc is not lowtech. however, tcc is. we feel that c is lowtech, because it has a small syntax and it is possible to write efficient code with it, but we forget that the c we use has lots of corporate investments, lots of language extensions, and the compiler compiles in hours. tcc is lowtech, because it supports standard c without extensions and it is easy to compile it. however, it is not possible to compile linux kernel with tcc....