Official chibi-scheme repository
Scheme C Makefile C++ Emacs Lisp CMake Other
Clone or download
Permalink
Failed to load latest commit information.
benchmarks adding count to gc timer Jun 27, 2015
build-lib/chibi/char-set Noting some simple char-set utilities are public domain. Apr 8, 2015
contrib cmake: Add CMakeLists.txt Nov 18, 2017
data Adding a gitignore for the temp data dir. Apr 8, 2015
doc Documenting sexp_register_c_type and sexp_make_cpointer. Feb 18, 2018
examples Forgot to install regexp (patch from Lorenzo) Jan 25, 2015
include/chibi use PRId64/32 where available for printing fixnums (issue #479) Jun 29, 2018
js Integrate emscripten build process in Makefile Jun 23, 2015
lib Revert and fix syntax-rules by reflecting review Jul 4, 2018
opt making string-cursors a disjoint type Mar 29, 2016
tests Fix syntax-rules on ellipsis escape templates Jul 3, 2018
tools no need to zero out calloc result in ffi Jul 16, 2018
.gitignore Update .gitignore Dec 30, 2017
.hgignore Emscripten support by default. Patch from Marc Nieper-Wi?kirchen. Feb 22, 2015
.travis.yml wrong filename Jun 24, 2016
AUTHORS More portable bignums that don't have to rely on gcc 128bit arithmeti… Jun 19, 2018
CMakeLists.txt cmake: Use SEXP_64BIT on Win64 Jun 20, 2018
COPYING adding (srfi 101) Jan 15, 2018
Makefile Add "test-division" Makefile target. Mar 16, 2018
Makefile.detect Win32: Fix win32 port Nov 10, 2017
Makefile.libs Modify makefiles to make LDCONFIG optional, support systems with no s… May 18, 2016
README-win32.md doc: Update README-win32.md to reflect recent changes Jun 20, 2018
README.libs Forgot to install regexp (patch from Lorenzo) Jan 25, 2015
README.md doc: Update document for Win32 support Dec 13, 2017
RELEASE bumping version Oct 6, 2017
TODO updating note about thread status in TODO Apr 2, 2018
VERSION bumping version Oct 6, 2017
appveyor.yml AppVeyor: Add MSVC x64 configuration to CI Jun 20, 2018
bignum.c More portable bignums that don't have to rely on gcc 128bit arithmeti… Jun 19, 2018
chibi-scheme.pc.in Forgot to install regexp (patch from Lorenzo) Jan 25, 2015
configure adding informational configure script Jun 24, 2016
eval.c Fix (expt 3 -1) when SEXP_USE_BIGNUMS Jun 16, 2018
fedora.spec Forgot to install regexp (patch from Lorenzo) Jan 25, 2015
gc.c adding better debugging for zero-sized object warning Feb 16, 2018
gc_heap.c use PRId64/32 where available for printing fixnums (issue #479) Jun 29, 2018
main.c advanced repl should use (scheme small) by default Jan 16, 2018
mkfile Forgot to install regexp (patch from Lorenzo) Jan 25, 2015
opcodes.c making string-cursors a disjoint type Mar 29, 2016
plan9.c Updating copyright years. Apr 8, 2015
sexp.c use PRId64/32 where available for printing fixnums (issue #479) Jun 29, 2018
simplify.c Updating copyright years. Apr 8, 2015
vm.c More portable bignums that don't have to rely on gcc 128bit arithmeti… Jun 19, 2018

README.md

Chibi-Scheme

Minimal Scheme Implementation for use as an Extension Language

http://synthcode.com/wiki/chibi-scheme

Chibi-Scheme is a very small library intended for use as an extension and scripting language in C programs. In addition to support for lightweight VM-based threads, each VM itself runs in an isolated heap allowing multiple VMs to run simultaneously in different OS threads.

There are no external dependencies so is relatively easy to drop into any project.

The default repl language contains all bindings from R7RS small, available explicitly as the (scheme small) library. The language is built in layers, however - see the manual for instructions on compiling with fewer features or requesting a smaller language on startup.

Chibi-Scheme is known to work on 32 and 64-bit Linux, FreeBSD and OS X, Plan 9, Windows (using Cygwin), iOS, Android, ARM and Emscripten. Basic support for native Windows desktop also exists. See README-win32.md for details and build instructions.

To build on most platforms just run make && make test. This will provide a shared library libchibi-scheme, as well as a sample chibi-scheme command-line repl. You can then run

sudo make install

to install the binaries and libraries. You can optionally specify a PREFIX for the installation directory:

make PREFIX=/path/to/install/
sudo make PREFIX=/path/to/install/ install

By default files are installed in /usr/local.

If you want to try out chibi-scheme without installing, be sure to set LD_LIBRARY_PATH so it can find the shared libraries.

For more detailed documentation, run make doc and see the generated doc/chibi.html.