News for hackers. Stuff that matters.
Re:ChrysaLisp by DannyB2 on Monday January 13, 2020 @10:52AM (#22035470)
One interesting thing is the idea that app applications and utilities are in a virtual object code rather than native code.

This reminds me of the UCSD p-System of the early 1980's.

To port the OS all you had to port was the very small p-Machine emulator (PME). Once you had a bootable PME, everything else, the entire OS, utilities, and all applications instantly came along for the ride, without even being recompiled.

I could only imagine a modern OS that would take an approach like this, but Hotspot JIT everything to native code.

Re:ChrysaLisp by bitwize on Monday January 13, 2020 @11:11AM (#22035641)
Inferno could do this. Port the Dis VM and whamo, you had all of Inferno. On Windows, Linux, bare metal, x86, RISC... pick your poison.
Re:ChrysaLisp by pjmlp on Monday January 13, 2020 @01:40PM (#22037225)
This is how most mainframes and microcomputer work.

Check Burroughs B5000 (now Unisys ClearPath), AS/400 (now IBM I), z/OS (now IBM z), Xerox PARC workstations, Lilith, Ceres, watch OS, Garmin devices and plenty of others.

Re:ChrysaLisp by phyrex on Monday January 13, 2020 @10:54AM (#22035501)
I mean that’s basically the JVM, isn’t it?
Re:ChrysaLisp by DannyB2 on Monday January 13, 2020 @02:07PM (#22037484)
Yes. As a long time Java developer. But the UCSD p-System was much earlier (and more primitive) than Java.

p-System never did JIT. Remember this was for machines with 64 K of memory. Not 64 MB. But 64 K! The p-Code was much more compact than native code. Interpreting most code was plenty fast for most things -- even on the slow (under 10 MHz) clock speeds of the era. Critical operations could be written in assembler. The p-System had its own assembler for native code.

JVM is a whole other world. Adding GC is a whole new dimension in complexity. But decades of research have gone into the JVM making it the amazing runtime platform it is today.

Re:ChrysaLisp by pjmlp on Tuesday January 14, 2020 @02:30AM (#22042640)
There were toolchains that did compile P-System into native code though.

https://en.wikipedia.org/wiki/Pascal_MicroEngine

https://en.wikipedia.org/wiki/Corvus_Systems

Adding a GC to bytecode systems, is what Xerox PARC did with their Interlisp-D, Smalltalk and Mesa/Cedar workstations.

The CPUs were microcoded and as part of the boot process they would load the respective hardware interpreter for the environment being booted into the workstation.

A similar idea was explored in one of Oberon's implementations, where instead of using straight native code like on the Ceres workstation, the modules would have a compact representation, JITed into native code on module load.

See section 7, Machine-Independent Mobile Code on http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90....

Re:ChrysaLisp by DannyB2 on Tuesday January 14, 2020 @04:55PM (#22049647)
I remember Corvus quite well. (I've been doing this job for a _loooong_ time.)
Re:ChrysaLisp by antoncohen on Monday January 13, 2020 @11:56AM (#22036163)
Re:ChrysaLisp by vygr on Monday January 13, 2020 @12:14PM (#22036361)
https://en.wikipedia.org/wiki/Virtual_Processor

Taos articles link at the bottom, Byte, IEEE, Edge etc.