Boot To Racket
From: Neil Van Dyke Message-ID: <e95f5e36-a95c-c5e9-f89a-441c74a15a25@neilvandyke.org> Date: Fri, 7 Jul 2017 22:33:28 -0400 List-Archive: <https://groups.google.com/group/racket-users
I've made a boot-to-Racket-app appliance image for x86 before, based on Debian Live. The bootable filesystem image was under 400 MB, including Linux, X, Racket, various other native programs and libraries, and the app itself.
It would boot to a full-screen display that would display a hostname or IP address at which you should point your smartphone/tablet/laptop Web browser, to get a remote control UI “HTML5 mobile app”. But I could also have had it run “racket” REPL or DrRacket rather than the app.
(This appliance was going to be an example for my abandoned book, but I did release a few independently reusable Racket packages from it, in keeping with the methodology the book was to promote.)
One clean way to implement boot-to-Racket is with the “build-lildeb” script of an earlier GNU/Linux distro – one script file shows and implements all the changes made to strip down and customize Debian Live. There's also an “update-lildeb” flashing script, which goes to a lot of trouble to tweak the partition table of the flashed device. http://www.neilvandyke.org/lildeb/
If you want something smaller than a stripped-down Debian, there's OpenWrt. There are signs that someone unknown once put considerable work into getting Racket to run on hardware architectures like some small OpenWrt devices have, because Racket REPL came up a little too easily once I got OpenWrt building working. The OpenWrt package for Racket turned out to be less than 6 MB, though the bigger concern is the runtime RAM footprint. I didn't test this much. http://www.neilvandyke.org/racket-openwrt/
There's also various other projects for embedded Linux. Some of them get into messier and more questionable toolchains, and can involve a lot more work and sometimes sketchy provenance. Personally, if your target hardware is even a modest, well-supported x86 or ARM device (not something very small or strange), I'd probably start with Debian Live (probably copying and modifying my “build-lildeb” script), and see how that works.
Or you could just have instructions (or a script) for how to modify a stock Debian, Raspian, Arch, etc. install to boot-to-Racket, in a manner of speaking.
—
see also Lisp Machine/Scheme Machine