@sir In other news: Compilers are complicated, and need to fit a lot of different use cases.

@ignaloidas this is not true and not an excuse for gcc. See also: the plan 9 compiler suite, cproc+qbe


@sir It is easy to compile code to simple machine code. It is complicated to compile code to complicated but faster machine code. It is exponentially more complicated to compile optimized code for more architectures.

@ignaloidas I disagree and I also think that optimizing code to hell and back is not desirable. You aren't changing the big-o number with -O3 and therefore the optimizations are not especially important

@sir Then why do people optimize their code so much? Why does AVX instructions exist? Why there are people that specialize in HPC optimization? Optimizations are important

@ignaloidas because programmers are awful and software is awful and everything sucks, that's why. The example I reach for is KnightOS, an operating system I wrote for my calculator. It goes from dead to an interactive graphical shell on a Unix-like system faster than you can lift your finger from the power button.

It's *literally* 8 million times slower than the computer I'm typing this on, which takes about 2 minutes to do the same feat.

Fact: everything on this computer was compiled with -O3

@sir @ignaloidas i think every developer would benefit by spending a bit of time programming for constrained systems like calculators and other old handhelds, because it's fun and teaches a lot about where exactly your memory and cpu cycles go. something that's abstracted away by many of the languages and frameworks today

also, assuming optimisation for size, tcc actually seems to do better than gcc even with `gcc -Os` so take that into consideration. to the people who say resources are cheap, consider rebalancing your resources: develop smaller and simpler compilers that produce smaller and simpler code, and do away with some of the perhaps unnecessary optimisations that full-fledged compiler toolkits provide

@sir This computer also has about 100x more peripherals that need complex initialization procedures, because it pushes at least 1000 times more pixels, because it provides additional services such as interfacing with your hard drive, which is another computer in it's own right, it provides networking, it has 8(or more) Gigs of RAM that need to have their timings trained. You have a million times more features with a modern PC. So why would you expect to boot just as fast.

@ignaloidas if you truly believe what you're saying then you're ignorant, if you don't believe it then you're disingenous

@sir I'm ignorant of what? I see that you are ignorant of the complexity of computers. Believe it or not, but if you want hardware to be faster, the hardware has to be more complex. You cannot have fast DRAM without needing to train it's timings. Your calculator has slow RAM, but it doesn't need to bother to train it's timings.

@ignaloidas I know very much about computers, especially low level, thank you very much. Training RAM is not the bottleneck. Knowingly or not you're just trolling now and I'm not interested in discussing it with you further

Sign in to participate in the conversation
Gamedev Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!