Official chibi-scheme repository
Find a file
2025-01-03 23:07:18 +09:00
.githooks fixing pre-commit hook when no c or scheme files are changed 2020-07-29 10:29:24 +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 install an EXPORT set and cooperate with find_package 2021-07-21 21:01:33 +01:00
data Adding a gitignore for the temp data dir. 2015-04-09 01:30:06 +09:00
doc Patch from Vasil Sarafov clarifying DragonFlyBSD support. 2024-12-24 21:47:05 +09:00
examples Add more specific warning for error on no import, clarify docs. 2024-01-30 12:31:06 +09:00
include/chibi Conform to 1/0 style 2024-06-03 11:43:32 +10:00
js js/exported_functions.json: make it proper json 2018-11-25 19:10:35 +01:00
lib Guard against ill-formed responses in snow remote-command. 2024-12-02 11:43:36 +09:00
opt making string-cursors a disjoint type 2016-03-29 22:25:09 +09:00
tests Add SRFI 35 support 2024-11-02 00:49:31 +01:00
tools add missing string-trim in extract-char-set-property 2024-05-31 23:52:54 +09:00
.gitignore Update .gitignore 2023-04-20 14:37:21 +03: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 updating recent contributors 2024-05-31 22:56:40 +09:00
bignum.c Fix error reporting for complex inequality comparisons. 2024-05-29 21:36:30 +09:00
chibi-scheme.pc.in Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
CMakeLists.txt cmake: Exclude (chibi shell) test on Win32 2022-09-11 13:40:50 +09:00
configure adding informational configure script 2016-06-24 22:55:08 +09:00
CONTRIBUTING.md adding contributing file 2021-06-30 18:35:24 +09:00
COPYING updating copyright year 2021-07-19 21:48:47 +09:00
eval.c Add more specific warning for error on no import, clarify docs. 2024-01-30 12:31:06 +09:00
fedora.spec Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
gc.c Partially fix SEXP_USE_MALLOC. 2022-01-09 14:44:02 +02:00
gc_heap.c pass '() as user exception irritants, not NULL 2020-07-30 18:11:57 +09:00
main.c match sexp_gc_releaseN count in sexp_add_import_binding 2024-05-29 09:26:40 +09:00
Makefile Upgrading to Unicode 15.1.0. 2024-05-31 23:57:18 +09:00
Makefile.detect Add feature for architecture. 2024-05-16 23:28:29 +09:00
Makefile.libs Using Makefile-configured snow install directories. 2022-08-08 18:43:30 +09:00
mkfile make 9front "work" again by properly handling 64-bit typedefs 2021-02-20 17:10:43 -07:00
opcodes.c Make environment immutable and add mutable-environment alternative (issue #863). 2022-10-04 16:07:36 +09: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 Patch from Vasil Sarafov clarifying DragonFlyBSD support. 2024-12-24 21:47:05 +09:00
RELEASE bumping version 2024-05-31 23:04:40 +09:00
sexp.c Don't allow mixing rational and floating point syntax. 2025-01-03 23:07:18 +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 2024-05-31 23:04:40 +09:00
vm.c Fix: segmentation fault during GC marking 2024-05-17 06:52:02 +03:00

Chibi-Scheme

Minimal Scheme Implementation for use as an Extension Language

https://github.com/ashinn/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 seamless 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, DragonFlyBSD, 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 (DYLD_LIBRARY_PATH on macOS) so it can find the shared libraries.

To make the emscripten build run make js (not emmake make js).

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