This repository contains Dockerfiles that provide various Scheme
implementations. They all install a scheme-script
or scheme-r7rs
wrapper, so that programs starting with the right shebang run straight
out of the box.
The Dockerfiles are provided on separate branches so that automated builds on Docker Hub will not be triggered unnecessarily. The builds are available here: https://hub.docker.com/u/weinholt/
To be compatible with most Schemes, put this at the top of your programs:
#!/usr/bin/env scheme-script
;; -*- mode: scheme; coding: utf-8 -*- !#
#!r6rs
This follows the R6RS non-normative appendix.
The !#
token is needed to have Guile stop parsing the #!
block
comment. The #!r6rs
token is needed for Racket to switch to the R6RS
language. The mode and coding comment is not strictly needed, but
helps Emacs users.
To be compatible with the R7RS implementations in this project, put this at the top of your programs:
#!/usr/bin/env scheme-r7rs
(define (main args)
<your program here>)
This follows SRFI-22.
Image | scheme-script | scheme-r7rs |
---|---|---|
bigloo | ||
chezscheme | x | |
chibi | x | |
chicken | ||
cyclone | ||
femtolisp | ||
foment | ||
gambit | ||
gauche | ||
gerbil | ||
guile | x | |
ikarus | x | |
ironscheme | x | |
kawa | ||
larceny | x | |
loko | x | |
mit-scheme | ||
mosh | x | |
racket | x | |
s7 | ||
sagittarius | x | x |
scheme48 | ||
scheme9 | ||
scsh | ||
vicare | x | |
ypsilon | x |
Chez Scheme in this project is built in a special way that removes the expression editor and therefore removes the ncurses and X dependencies. This is useful when you want to distribute the resulting binary bundled together with your own program, because the result is more portable and only requires GNU libc.
The loko:base
image provides only Loko Scheme and no other user
space.