Go to file
retropikzel a50f9332bd Fixed build 2025-04-15 15:40:01 +03:00
chicken Got it to compile with Chicken 6 2025-04-13 06:07:17 +03:00
libs Updated Makefile 2025-04-15 15:08:16 +03:00
snow Updated Makefile 2025-04-15 15:08:16 +03:00
test Added support for more implementations 2025-04-13 17:21:10 +03:00
.gitignore Adding support for more implementations 2025-04-13 20:51:34 +03:00
Dockerfile Added support for more implementations 2025-04-13 17:21:10 +03:00
Jenkinsfile Added support for more implementations 2025-04-13 17:21:10 +03:00
LICENSE Added license 2025-01-13 17:20:58 +02:00
Makefile Fixed build 2025-04-15 15:40:01 +03:00
README.md Updated Makefile 2025-04-15 15:08:16 +03:00
build.bat Updated Makefile 2025-04-15 15:08:16 +03:00
compile-r7rs.bat Updated Makefile 2025-04-15 15:08:16 +03:00
compile-r7rs.scm Fixed build 2025-04-15 15:40:01 +03:00
configure Made this 2024-12-23 22:01:08 +02:00

README.md

compile-r7rs is a tool to compile R7RS Scheme programs, it aims for compability with SRFI-138.

Supported implementations

  • chibi
  • cyclone
  • gauche
  • guile
  • kawa
  • loko
  • mosh
  • sagittarius
  • skint
  • stklos
  • tr7
  • ypsilon

Dependencies

Getting started

Install Sagittarius scheme

Linux

On Debian/Ubuntu/Mint:

apt-get install -y build-essential cmake libgc-dev zlib1g-dev libffi-dev libssl-dev
wget https://bitbucket.org/ktakashi/sagittarius-scheme/downloads/sagittarius-0.9.12.tar.gz
tar -xf sagittarius-0.9.12.tar.gz
cd sagittarius-0.9.12.tar.gz
mkdir build
cd build
cmake ..
make
make install

Windows

Download the installer from https://bitbucket.org/ktakashi/sagittarius-scheme/downloads/ and install it.

Install libuv

Linux

On Debian/Ubuntu/Mint run:

apt install libuv1

Windows

dll is included, no need to install anything.

Build on Linux

./configure
make
make install

Build on Windows

In command prompt run:

build.bat
install.bat

Usage

You need to install each Scheme implementation yourself.

The environment variable SCHEME must be set to the name of the implementation as specified in the support list.

First to compile your libraries run the command without the .scm file.

SCHEME=<implementation name> compile-r7rs -I .

Then run it with the .scm file.

SCHEME=<implementation name> compile-r7rs -I . main.scm

Which produces file called main, which you can run. Note that when given Scheme is interpreter the file contains commands that run the script, and even when the file is combiled binary it might need the compiled libraries.