Welcome to the home of Loko Scheme, an optimizing Scheme compiler!
- Batteries on the side (Akku.scm).
- Cross-compiles to Linux/amd64, NetBSD/amd64 and bare metal amd64.
- Speaks R6RS Scheme natively and R7RS Scheme as a second language.
- Concurrency based on Concurrent ML.
- Compiled code with reasonable performance.

Screenshots
Download
Loko is available from git:
git clone https://scheme.fail/git/loko.git/For automated work and for browsing the repository, please use the mirror on GitLab.
loko-0.12.2.tar.gz (sig) - 2025-05-15
Loko Scheme is also available from these package repositories:
- Arch Linux AUR
- GNU Guixguix install loko-scheme
- Dockerdocker pull weinholt/lokodocker run --rm -it weinholt/loko
A bootable hard drive image is available. Give it a supported machine with ≥1GB RAM and you get a REPL.
🄯 License
Loko Scheme is licensed under the EUPL-1.2-or-later. This is a copyleft license with a SaaS clause, but which works well for a compiler.
Documentation
The Loko Scheme Developer's Manual [PDF].
Hype-free zone
Loko Scheme is a niche compiler. It is not trying to replace any other compiler. Some ideas for what you can do with it:
- Build statically linked concurrent applications.
- Work on a systems-level language just for fun.
- Systems research.
- Unikernel experiments.
- Lock-free kernel experiments.
- Bare metal Scheme experiments.
- New userspace-to-kernel interfaces.
- Port to other operating system kernels (FreeBSD, etc).
- Fight the status quo.
Loko Scheme comes with some limited hardware support:
- Networking (rtl8169, rtl8139, eepro100, virtio-net, tuntap) with TCP/IP support.
- Disk (ATA, ATAPI, SCSI, IDE, AHCI) drivers with FAT file system support.
- Video (VESA VBE, Bochs graphics).
- Serial (8250 UART).
- PS/2 keyboard and mouse support.
- USB stack with UHCI, HID & mass storage support.
Loko Scheme works on real hardware, but it currently needs a legacy PIC, so the most modern machines will likely not be able to run it yet.
The drivers are used in the bootable disk image.
Bugs
Please report bugs by email. Bring any questions you may have to comp.lang.scheme or #loko on irc.libera.chat.
Gwen Weinholt <git () weinholt.se>
.png)


