Comment by πŸ™ norayr

Re: "i have this feeling about lowtech (not permacomputing) that…"

In: s/permacomputing

on the contrary, something that depends on layers of complexity is not lowtech. so c# is not. it needs a lot from underlying system. rust is not, it compiles for hours.

python is not, it had lots of corporate investment and contributions. corps spent lots of money to shape it. and still it works slowly and burns more energy than it is justified, i think.

i am tempted to say that go is lowtech: the compiler builds itself in 2 minutes. the rest are libraries. the language syntax is not overwhelmed with features that corps demand from languages. but go would not exist without corporate investments, so probably no?

when you build a house, you don't need many things needed to build a skyscraper.

πŸ™ norayr [OP]

2024-08-08 Β· 2 years ago

16 Later Comments ↓

πŸ™ norayr [OP] Β· 2024-08-08 at 23:54:

so that house is vernacular, independent, lowtech.

πŸ™ norayr [OP] Β· 2024-08-09 at 00:01:

so there are technologies that are standardized, polished, but they are also authoritarian, enforced, imperialistic.

gemini, on the contrary is a human scale design. walkable space, where you don't need a car to explore it. simple bicycle is more than enough.

πŸ™ norayr [OP] Β· 2024-08-09 at 00:09:

not standardized environments, unlike facebook or even mastodon, are weird, so the mind starts to raise questions and think of things that it wouldn't be thinking of in the standardized non-weird environment.

πŸ™ norayr [OP] Β· 2024-08-09 at 00:13:

so mind is engaged with important questions.

that is also the reason why authoritarian regimes are trying to fence the citizens from weird things.

this is actually almost a quote of paul tillich, on cities.

🎡 xavi · 2024-08-10 at 13:09:

Maybe you should scc:

β€” scc, a simple C compiler

It is mostly written by one person (which I happen to know personally) and builds ISO C99 programs with qbe.

πŸš€ DdlyH Β· 2024-09-21 at 20:28:

Does NASM count as low tech? It's low level and doesn't require loads of external tools, but is that enough?

πŸ™ norayr [OP] Β· 2024-11-16 at 09:54:

i dont know? i only used gas on unix.

what i like in gas for x86[_64] is that you are required to understand that movb generates different opcode than movw, movl and movq. same with addb..addq and others.

so whatever i do is more understandable.

i guess in case of nasm it follows masm tradition where assembler can figure out by itself is it movb or movl by the type of other argument.

that might be indeed useful but the programmer doesnt realize there are different opcodes behind these instructions, and that 8bit add instruction itself takes less bytes than newer add instructions.

πŸ™ norayr [OP] Β· 2024-11-16 at 10:00:

in case of 6502 you have ca65, which is part of cc65 compiler suite, it feels like gas, it has useful macros and you can define 'variables' by not really caring where they will reside in memory because default .cfg file for the platform describes it. but you dont know about that configuration file and what happening is not that transparent for you.

also cc65 is long to compile, it has big codebase. well how big can it be? it is still a hobby project and the target cpu is 6502 but still it is complex.

but there is xa, very simple assembler and almost nothing is done behind your back. you also need to explicitly mention everything. the source code of xa is smaller ...

πŸ™ norayr [OP] Β· 2024-11-16 at 10:00:

and you understand more of what you are doing when using xa.

πŸ‘» 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

πŸŒ’ s/permacomputing

πŸ™ norayr:

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....

πŸ’¬ 18 comments Β· 2024-08-08 Β· 2 years ago