Go to file
Doug Currie 0f3ef76fcb Fix cond to conform to R7RS 'If the selected ⟨clause⟩ contains only the ⟨test⟩ and no ⟨expression⟩s, then the value of the ⟨test⟩ is returned as the result.' 2016-01-23 16:14:11 -05:00
bin don't track bin/picrin 2015-05-30 17:59:23 +09:00
contrib Add a few tests to contrib/10.roundtrip 2016-01-10 10:06:09 -05:00
docs dictionary-ref now returns a pair or #f 2015-07-18 15:22:33 +09:00
etc add copyright 2015-07-21 01:07:19 +09:00
extlib/benz Fix cond to conform to R7RS 'If the selected ⟨clause⟩ contains only the ⟨test⟩ and no ⟨expression⟩s, then the value of the ⟨test⟩ is returned as the result.' 2016-01-23 16:14:11 -05:00
lib abandon cmake 2015-05-29 20:42:26 +09:00
src suppress warnings 2015-08-26 17:50:28 +09:00
t Fix issue #322 string->number should never signal error 2016-01-10 14:56:44 -05:00
.gitignore Refactor read_unsigned to prepare for pluggable atod 2016-01-08 15:55:00 -05:00
.travis.yml Add comment on how to test picrin with Valgrind. 2015-07-16 17:59:32 +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 Plug in emyg_dtoa and emyg_atod for round trip double conversion 2016-01-08 23:34:51 -05: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