Hacker News new | ask | show | jobs
by asciilifeform 5138 days ago
Emulators don't cut it, because the bottom-most complexity layer matters:

http://www.loper-os.org/?p=448

http://www.loper-os.org/?p=55

And the ground rules of computer system creation have changed. The reasonably-cheap, high-capacity FPGA now exists, as it did not in the age of the BeBox. It is no longer necessary for a hardware project to generate millions of sales (or any sales at all) in order to be "successful" (in the sense of actually remaining available to interested persons indefinitely.)

That being said, I am still working on a Linux-based emulator for the Loper architecture. In all likelihood, it will be unusably slow for any truly practical use, but will serve as a proof of concept (that is to say, agitprop.)

(Author of linked article speaking, in case no one noticed.)

1 comments

I like your notion of bedrock abstraction. I don't see the connection between it and the idea that emulators don't cut it.
Details of the underlying computer architecture (say, x86) and the implementation of the emulator (say, C/C++) inevitably leak into the abstractions nominally above that level.

One trivial example: let's say that I want to emulate a machine with 100,000 CPUs. On a quad-core PC. There is a strong pressure to reduce the number of emulated CPUs if possible, to more closely correspond with the physical architecture. This in turn leads the user of the emulator to avoid the kind of programming that would take advantage of 100,000 CPUs. Already the notion that "you can emulate anything" productively falls out the window.

Likewise for type-tagged architectures. (The user always has an incentive to strip away the "unnecessary" tags.) Look at Common Lisp and its "optimize" directives. The result is inevitably that somewhere in the system, there will be "C-style," non-type-tagged code. This is a Bad Thing.