Loko Scheme: bare metal optimizing Scheme compiler
(scheme.fail)165 points by dTal 6 days ago
165 points by dTal 6 days ago
Like this?
Or are you asking about this instead?
https://archive.org/details/bitsavers_symbolicssGuidetoSymbo...
> Loko’s runtime uses concurrency based on Concurrent ML.
That one could be a big deal.
https://scheme.fail/manual/loko.html#Concurrency
The docs don't mention channels and say that fibres are built on limited continuations (call/cc) which suggests missing some of the clever stuff in CML (e.g. that threads deadlocked on a channel get garbage collected)
I also like that it runs on bare metal. I wonder is it builds and runs on macOS? (I am on a mobile device and can’t check it myself.)
Off topic, but I love the design of the linked web site.
After skimming the docs and the site, I suspect this is x86-only for now. No mention of ARM or other processor architectures and the listed hardware support suggests a PC hardware target. You could probably cross compile on an Apple silicon Mac and run under emulation (e.g., QEMU).
To have a working keyboard with en-us keys layout and LAN (Intel's NIC card) you need to build image from the latest development version, it might be an EFI or a legacy MBR image. The REPL is only interpreted, it does not have runtime bindings (I mean you can't change the running system state because REPL creates new library instances) and it does not compile at runtime.
This looks nice and very interesting that this runs on bare metal. Is more documentation / tutorials available anywhere?
EDIT: Found the documentation: https://scheme.fail/manual/loko.html