frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Let's compile Quake like it's 1997

https://fabiensanglard.net/compile_like_1997/index.html
53•birdculture•2h ago

Comments

webdevver•1h ago
love software archaeology like this.

there was another article where someone bootstrapped the very first version of gcc that had the i386 backend added to it, and it turns out there was a bug in the codegen. I'll try to find it...

EDIT: Found in, infact there was a HN discussion about an article referencing the original article:

https://miyuki.github.io/2017/10/04/gcc-archaeology-1.html

https://news.ycombinator.com/item?id=39901290

clarity_hacker•1h ago
Build environment archaeology like this matters more than people realize. Modern CI assumes containers solve reproducibility, but compiler version differences, libc variants, and even CPU instruction sets can silently change binary output. The detail about needing to reinstall Windows NT just to add a second CPU shows how tightly coupled OS and hardware were — there was no abstraction layer pretending otherwise. Exact toolchain reproduction isn't nostalgia; it's the only way to validate that a specific binary came from specific source.
webdevver•1h ago
there is something to be said about old windows installation CDs being essentially modern-day equivalents of immutable docker layers - i don't think one could say that about modern windows, but then i'm not super clued in into ms stuff.
kelnos•1h ago
> The detail about needing to reinstall Windows NT just to add a second CPU shows how tightly coupled OS and hardware were — there was no abstraction layer pretending otherwise.

In this case there was: the reason you need to reinstall to go from uniprocessor to SMP was because NT shipped with two HALs (Hardware Abstarction Layer): one supporting just a single processor, and one supporting more than one.

The SMP one had all the code for things like CPU synchronization and interrupt routing, while the UP one did not.

If they'd packed everything into one HAL, single-processor systems would have to take the performance hit of all the synchronization code even though it wasn't necessary. Memory usage would be higher too. I expect that you probably could run the SMP HAL on a UP system (unless Microsoft put extra code in to make it not let you), but you wouldn't really want to do that, as it would be slower and require more RAM.

So it wasn't that those abstraction layers didn't exist back then. It was that abstraction layers can be expensive. This is still true today, of course, but we have the cycles and memory to spare, more or less, which was very much not the case then.

vintermann•54m ago
Linux also used to have separate SMP kernels back when multi processor systems were rare.
Sesse__•53m ago
> If they'd packed everything into one HAL, single-processor systems would have to take the performance hit of all the synchronization code even though it wasn't necessary. Memory usage would be higher too.

Linux also used to be like this, but these days has unified MP/UP kernels; on single-CPU systems (or if you give nosmp), the extra code is patched away at boot time. It wouldn't have been an unheard of technique at the time.

knorker•1h ago
> The first batches of Quake executables, quake.exe and vquake.exe were programmed on HP 712-60 running NeXT and cross-compiled with DJGPP running on a DEC Alpha server 2100A.

Is that accurate? I thought DJGPP only ran on and for PC compatible x86. ID had Alpha for things like running qbps and light and vis (these took for--ever to run, so the alpha SMP was really useful), but for building the actual DOS binaries, surely this was DJGPP on x86 PC?

Was DJGPP able to run on Alpha for cross compilation? I'm skeptical, but I could be wrong.

Edit: Actually it looks like you could. But did they? https://www.delorie.com/djgpp/v2faq/faq22_9.html

qingcharles•16m ago
I thought the same thing. There wouldn't be a huge advantage to cross-compiling in this instance since the target platform can happily run the compiler?
bluedino•1h ago
I'd like to see someone build the Linux source code leak that came out not to far after Quake was released.
Maro•1h ago
Quake book incoming from Fabien?
torh•37m ago
I hope so. The other books have been great fun to read, with the detour of CP-SYSTEM as a nice surprise.
ErroneousBosh•54m ago
Funny, I've just been (re-)playing Quake 2 recently.
boznz•31m ago
On one particular project from 1995 where the hardware was very cost optimised, the C program compiled to 1800 bytes which meant we could save nearly a dollar by buying micro-controllers with 2KB flash rather than 4KB flash. We manufactured 20,000 units with this cheaper chip. 2 years down the line we needed a simple code change to increase the UART baud rate to the host, a change that should have resulted in the same sized binary, but instead increased it to 2300 bytes due to a newer C compiler. We ended up tweaking the assembly file and running an assembler, then praying there would be no more changes!

I have always over specified the micro-controllers a little from that point, and kept a copy of the original dev environment, luckily all my projects are now EOL as I am retired.

travoc•11m ago
"luckily all my projects are now EOL as I am retired."

I doubt that everything you ever worked on is end-of-life. Some of it is still out there...

direwolf20•6m ago
Visual C++ 6 was the first C(++) compiler I used. I'm fairly certain it had auto completion (Intellisense).

Casey Muratori would point out the debugger ran faster on hardware from the era than modern versions run on today's hardware, though I don't have a link to the side–by–side video comparison.

Show HN: Tabletop Jigsaw Puzzle

https://jigsaw.rokyed.digital/
1•rokyed•54s ago•0 comments

Show HN: EkşI Sözlük but every author is an AI agent

https://www.robotsozluk.com
1•yldrmahmet•3m ago•1 comments

What you need to know to avoid multi-million-dollar subscription traps

https://www.rnz.co.nz/news/business/586268/here-s-what-you-need-to-know-to-avoid-multi-million-do...
3•billybuckwheat•3m ago•0 comments

LLMs Are Prediction Machines

https://kaelandt.github.io/posts/llm-prediction-machines.html
1•kaelandt•4m ago•0 comments

Guide for Installing PostgreSQL on TrueNAS

https://github.com/emanueldonalds/guides/blob/master/install_postgresql_on_truenas.md
2•oldestofsports•4m ago•1 comments

Deobfuscation and Analysis of Ring-1.io

https://back.engineering/blog/04/02/2026/
1•raggi•5m ago•0 comments

Tim Cook's Full Remarks About Apple's 50th Anniversary Plans

https://www.macrumors.com/2026/02/08/tim-cook-full-remarks-on-apple-turning-50/
1•tosh•6m ago•0 comments

Japan's Takaichi Scores Landslide Win in Election Gamble

https://www.wsj.com/world/asia/japans-takaichi-scores-major-election-victory-62f094a2
1•JumpCrisscross•11m ago•0 comments

Mushroom Cloud Picture Gallery

https://zvis.com/cpg14/index.php?cat=23
1•joebig•11m ago•0 comments

Breaking Down CVE-2026-25049: How TypeScript Types Failed N8n's Security

https://hetmehta.com/posts/n8n-type-confusion-rce/
1•rantingdemon•11m ago•0 comments

Show HN: Click symbols in Claude Code to jump to definitions in VS Code

https://maaash.jp/2026/02/more-a-tags-in-the-terminal/
1•maaashjp•13m ago•0 comments

Tech Independence

https://sive.rs/ti
4•ryangibb•15m ago•0 comments

The New Fabio Is Claude

https://www.nytimes.com/2026/02/08/business/ai-claude-romance-books.html
2•mold_aid•16m ago•1 comments

Optimization for Job Shop Scheduling with Blocking: A Genetic Algorithm Approach

https://www.mdpi.com/1999-4893/19/2/115
2•PaulHoule•16m ago•0 comments

The AI Bubble I Live in (and You Probably Don't)

https://thoughts.jock.pl/p/ai-bubble-living-inside
1•joozio•17m ago•0 comments

Show HN: Asterbot – AI agent built from sandboxed WASM components

https://github.com/asterai-io/asterbot
1•rellfy•19m ago•0 comments

Show HN: LM Council Let LLMs argue with each other so you don't have to

https://www.lm-council.com/
1•mvfolino68•19m ago•0 comments

Show HN: SendRec – Self-hosted async video for EU data sovereignty

https://github.com/sendrec/sendrec
2•alexneamtu•20m ago•1 comments

The disappearing art gallery in your post office

https://www.washingtonpost.com/business/2026/02/08/missing-post-office-art-murals/
2•_tk_•23m ago•1 comments

Show HN: How I use Claude to ship 150 PRs per day

https://github.com/wiggum-cc/chief-wiggum
1•0kenx•24m ago•0 comments

Metafile-codecov-bundle: track bun/esbuild artifact bundles with codecov

https://github.com/jbergstroem/metafile-codecov-bundle
1•jbergstroem•28m ago•0 comments

Skills I use with Claude for shaping

https://github.com/rjs/shaping-skills
1•tosh•29m ago•0 comments

Show HN: A small Agent framework built around Handoff

https://github.com/PsiACE/republic
1•recrush•29m ago•0 comments

Show HN: AI Cost Board – Track LLM Cost, Requests, and Errors Across Providers

https://aicostboard.com
1•tkrenn06•30m ago•0 comments

The Rise of Local ASR Models

https://oatmealapp.com/blog/the-rise-of-local-speech-recognition/
2•frostdiscord39•32m ago•0 comments

Evaluating TCP BBRv2 on the Dropbox edge network

https://arxiv.org/abs/2008.07699
1•fanf2•32m ago•0 comments

Prankster launches Super Bowl party for AI agents

https://entertainment.slashdot.org/story/26/02/08/1827216/prankster-launches-super-bowl-party-for...
2•MilnerRoute•35m ago•0 comments

Show HN: A local-first documentation tool for AI agents (MCP)

https://github.com/neuledge/context
2•moshest•38m ago•1 comments

Federal statement on Jeffrey Epstein's death dated day before he was found dead

https://www.standard.co.uk/news/world/statement-jeffrey-epstein-death-day-before-b1270109.html
12•saubeidl•39m ago•8 comments

Preserving the Open Web: Inside the New Wayback Machine Plugin for WordPress

https://blog.archive.org/2026/02/04/inside-the-new-wayback-machine-plugin-for-wordpress/
2•Tomte•41m ago•0 comments