Official chibi-scheme repository
Find a file
2020-06-04 22:08:07 +09:00
.github/workflows CI: Add Github Actions 2020-05-28 03:14:50 +09:00
benchmarks report diff on gc times 2020-05-11 10:28:00 +09:00
build-lib/chibi/char-set adding missing files 2020-06-03 11:33:15 +09:00
contrib cmake: Add CMakeLists.txt 2017-11-18 16:28:31 +09:00
data Adding a gitignore for the temp data dir. 2015-04-09 01:30:06 +09:00
doc Fix typo in sexp_get_output_string documentation 2019-03-09 02:01:39 +01:00
examples Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
include/chibi adding (scheme bytevector) 2020-05-31 23:24:51 +09:00
js js/exported_functions.json: make it proper json 2018-11-25 19:10:35 +01:00
lib fix case folding, update to unicode 13 2020-06-04 22:08:07 +09:00
opt making string-cursors a disjoint type 2016-03-29 22:25:09 +09:00
tests adding srfi 146 to lib tests 2020-05-26 17:09:21 +09:00
tools fix case folding, update to unicode 13 2020-06-04 22:08:07 +09:00
.gitignore Add lib/chibi/pty.c to .gitignore 2019-08-28 19:38:08 -05:00
.hgignore Emscripten support by default. Patch from Marc Nieper-Wi?kirchen. 2015-02-22 16:10:30 +09:00
.travis.yml wrong filename 2016-06-24 22:51:36 +09:00
appveyor.yml AppVeyor: Add MSVC x64 configuration to CI 2018-06-20 21:22:36 +09:00
AUTHORS adding (srfi 146 hash) 2020-05-26 17:05:07 +09:00
bignum.c fix compilation under std=c89 2020-05-13 11:12:02 +02:00
chibi-scheme.pc.in Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
CMakeLists.txt (chibi pty): Disable in CMake build 2019-08-24 07:08:47 +09:00
configure adding informational configure script 2016-06-24 22:55:08 +09:00
COPYING adding (srfi 101) 2018-01-15 23:51:16 +09:00
eval.c don't verify duplicate formal parameters for more than 100 params 2020-04-19 19:20:01 +09:00
fedora.spec Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
gc.c avoid gc recursion on non-pointers 2020-05-25 18:50:47 +09:00
gc_heap.c no more strcpy/sprintf (issue #653) 2020-05-27 18:35:18 +09:00
main.c remove debug line 2020-05-27 18:37:03 +09:00
Makefile fix case folding, update to unicode 13 2020-06-04 22:08:07 +09:00
Makefile.detect Makefile.detect: Fix installation 2020-05-24 16:04:44 +09:00
Makefile.libs Merge pull request #609 from ilammy/snow-usr-local 2020-02-06 21:15:39 +08:00
mkfile Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
opcodes.c fixing read-line on network ports 2019-05-04 13:18:27 +08:00
plan9.c Updating copyright years. 2015-04-09 01:28:02 +09:00
README-win32.md doc: Update README-win32.md to reflect recent changes 2018-06-20 21:22:36 +09:00
README.libs Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
README.md clarifying in README that GNU make is used, movign all extensions to Makefile.detect (issue #642) 2020-05-22 15:06:45 +09:00
RELEASE bumping version 2017-10-06 23:56:31 +09:00
sexp.c adding (scheme bytevector) 2020-05-31 23:24:51 +09:00
simplify.c Updating copyright years. 2015-04-09 01:28:02 +09:00
TODO updating note about thread status in TODO 2018-04-03 07:53:36 +09:00
VERSION bumping version 2017-10-06 23:56:31 +09:00
vm.c check for circular lists in apply (issue #629) 2020-05-03 17:19:24 +09:00

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.

Despite the small size, Chibi-Scheme attempts to do The Right Thing. The default settings include:

  • a full numeric tower, with rational and complex numbers
  • full and seemless Unicode support
  • low-level and high-level hygienic macros
  • an extensible module system

Specifically, 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, NetBSD, OpenBSD and OS X, Plan 9, Windows, 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 has a few conditionals assuming GNU make. If using another make, there are a few parameters in Makefile.detect you need to set by hand.

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.