Go to file
Yuichi Nishiwaki 8932dbddd6 Merge pull request #272 from omasanori/r7rs-test
Move r7rs-tests.scm into a nitro.
2015-06-22 17:43:30 +09:00
bin don't track bin/picrin 2015-05-30 17:59:23 +09:00
contrib Move r7rs-tests.scm into a nitro. 2015-06-22 11:07:56 +09:00
docs update C API doc 2015-06-13 05:33:49 +09:00
etc add PIC_ENABLE_STDIO flag 2015-06-19 14:03:52 +09:00
extlib/benz fix #234 2015-06-22 17:41:17 +09:00
lib abandon cmake 2015-05-29 20:42:26 +09:00
piclib/picrin remove library-name 2015-06-19 03:31:24 +09:00
src move features procedure defun to state.c benz 2015-06-17 00:13:00 +09:00
t Move r7rs-tests.scm into a nitro. 2015-06-22 11:07:56 +09:00
.gitignore abandon cmake 2015-05-29 20:42:26 +09:00
.travis.yml abandon cmake 2015-05-29 20:42:26 +09:00
AUTHORS My name was changed 2015-01-04 05:20:33 +00:00
LICENSE wrong years in LICENSE file 2014-05-18 21:38:41 +09:00
Makefile Move r7rs-tests.scm into a nitro. 2015-06-22 11:07:56 +09:00
README.md Refer `master` branch's build status badge. 2015-06-04 15:42:08 +09:00

README.md

Build Status Docs Status

Picrin is a lightweight R7RS scheme implementation written in pure C89. It contains a reasonably fast VM, an improved hygienic macro system, usuful contribution libraries, and simple but powerful C interface.

  • R7RS compatible
  • Reentrant design (all VM states are stored in single global state object)
  • Bytecode interpreter
  • Direct threaded VM
  • Internal representation by nan-boxing (available only on x64)
  • Conservative call/cc implementation (VM stack and native c stack can interleave)
  • Exact GC (simple mark and sweep, partially reference count)
  • String representation by rope
  • Hygienic macro transformers (syntactic closures, explicit and implicit renaming macros)
  • Extended library syntax

Documentation

See http://picrin.readthedocs.org/

Homepage

Currently picrin is hosted on Github. You can freely send a bug report or pull-request, and fork the repository.

https://github.com/picrin-scheme/picrin

IRC

Our chat room is at #picrin channel, chat.freenode.org. IRC logs here: https://botbot.me/freenode/picrin/

Build

Just type make in the project root directory. You will find an executable binary newly created at bin/ directory.

$ make

When you are building picrin on x86_64 system, PIC_NAN_BOXING flag is automatically turned on (see include/picrin/config.h for detail).

Install

make install target is provided. By default it installs picrin binary into /usr/local/bin/.

$ make install

Since picrin does not use autoconf, if you want to specify the install directory, pass the custom path to make via command line argument.

$ make install prefix=/path/to/dir

Requirement

To build Picrin Scheme from source code, some external libraries are required:

  • perl
  • regex.h of POSIX.1
  • libedit (optional)

Make command automatically turns on optional libraries if available. Picrin is mainly developed on Mac OS X and only tested on OS X or Ubuntu 14.04+. When you tried to run picrin on other platforms and found something was wrong with it, please send us an issue.

Authors

See AUTHORS