HTTPS SSH
BONES
=====


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 (http://www.nasm.us), a portable assembler for
x86 and x86_64 systems.


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

  http://www.call-with-current-continuation.org/bones/

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

(Linux)

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

(Windows)

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

(Mac)

  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
(http://www.mingw.org) 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 MANUAL.org for more information and a full description of the
differences and extensions to R5RS that BONES provides.


Enjoy.