This is one of the major reasons why I love Hacker News because of small side passion projects like this. At Hacker News we don't ask why, we ask why not!
I get real nervous about posting personal retrocomputing projects here to be honest :)
I just spent most of my free time in the last week trying to get the Rust compiler to run on a K6-2/500. Had a bunch of trouble because one of the newer x86 extensions (CET) chose opcodes which decode as NOPs, and therefore are considered safe to include in binaries for older processors. Unfortunately, they're only NOPs on i686 or newer, and the K6s are i586 processors. It was mind-numbing because even if you explicitly tell the compiler to output/optimize for a K6-2 or Pentium (-march=k6-2 or -march=pentium) it's still outputting the CET opcodes. You have to pass -fcf-protection=none for them to go away. Super annoying.
Benchmarking it was pretty funny, because compiling one of my personal Rust projects is about 500 times slower than my TR 1950X desktop. Compiles in 7.5 seconds on the Threadripper but takes 67 minutes on the K6-2/500. So much progress in 18 years (K6-2/500 in 1999 -> TR 1950X (4 GHz) in 2017).
This is really cool, even if you didn't post I'm glad you mentioned it in a comment. :)
I remember compiling Linux kernel on my Cyrix 486SX 25MHz (the one with a disabled-by-default L1 cache!) and it took an hour. Got it on a P60 and it was like 5 minutes.
Another one of my silly retro computing projects: https://github.com/teknoman117/m68k-fpga-bridge. I wanted to try and make an MMU for it, hence the 68010 specifically (which added some additional data to the bus error exception to allow restarting the failed instruction).
I also managed to get someone on utsource to sell me a tray of 386EX33s for like $2 a pop so eventually I can make some 386 systems. I managed to track down a few of the old IIT 3C87 FPUs that had the hardware matrix by vector multiply so I'm going to try to make some 3D renderer if I ever get around to putting it together.
I wanted to make a cycle-accurate 286 system once, just because it was such an interesting architecture. Protected mode, but 16 bit, and 16MB max RAM, but with segment:offset addressing. What's not to love about all of that?
Hardware multitasking and context switch on interrupt as well.
Admittedly I didn't live through that time period, but reading about them, they are quite interesting. It seems that the main reason they were considered "brain-dead" was because you couldn't run 8086 native and 286 native software at the same time, and backwards compatibility and interoperability started becoming something people considered very important.
Interesting enough that I went and bought a static core 286 (the 25 MHz Harris one) to play with. Since it's a static core I can run it at whatever frequency I want, even if that is only a few hertz.
I really need to get into the habit of writing about the side projects I do. It probably would help me get over documentation-block at work as well. I write it obviously, but it always feels like pulling teeth...
I just spent most of my free time in the last week trying to get the Rust compiler to run on a K6-2/500. Had a bunch of trouble because one of the newer x86 extensions (CET) chose opcodes which decode as NOPs, and therefore are considered safe to include in binaries for older processors. Unfortunately, they're only NOPs on i686 or newer, and the K6s are i586 processors. It was mind-numbing because even if you explicitly tell the compiler to output/optimize for a K6-2 or Pentium (-march=k6-2 or -march=pentium) it's still outputting the CET opcodes. You have to pass -fcf-protection=none for them to go away. Super annoying.
Benchmarking it was pretty funny, because compiling one of my personal Rust projects is about 500 times slower than my TR 1950X desktop. Compiles in 7.5 seconds on the Threadripper but takes 67 minutes on the K6-2/500. So much progress in 18 years (K6-2/500 in 1999 -> TR 1950X (4 GHz) in 2017).