This is the development repository for BONES, a simple Scheme compiler
for x86_64 systems generating assembly code. BONES is developed on a
currently unreleased Scheme interpreter, but with some effort the
sources should be portable to most R5RS and R7RS Scheme systems.

BONES requires NASM (, a portable assembler for
x86 and x86_64 systems.

To build the system, download bones.tar.gz or from

unpack the archive, build the compiler by running the following
commands in a shell:


  nasm -f elf64 bones-x86_64-linux.s -o bones.o
  gcc bones.o -o bones


  nasm -f win64 bones-x86_64-windows.s -o bones.obj
  link bones.obj libcmt.lib /out:bones.exe


  nasm -f macho64 bones-x86_64-mac.s -o bones.o
  gcc bones.o -o bones

On Windows, bones.exe can also be built using the MINGW64
( toolchain:

  gcc bones.obj -o bones.exe

You can now use the generated compiler to build a new version with
the latest changes in the development repository:

  <path-to-bones>/bones bones.scm -o bones.s

See for more information and a full description of the
differences and extensions to R5RS that BONES provides.