2014-09-11 11:19:54 -04:00
< img width = "500" src = "https://raw.githubusercontent.com/picrin-scheme/picrin/master/etc/picrin-logo-fin01-02.png" > < / img >
2015-06-04 02:42:08 -04:00
[![Build Status ](https://travis-ci.org/picrin-scheme/picrin.png?branch=master )](https://travis-ci.org/picrin-scheme/picrin)
2014-09-13 09:13:47 -04:00
[![Docs Status ](https://readthedocs.org/projects/picrin/badge/?version=latest )](https://picrin.readthedocs.org/)
2014-01-17 07:11:43 -05:00
2015-05-30 06:13:11 -04:00
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
2013-10-17 01:09:39 -04:00
2014-05-25 23:07:32 -04:00
## Documentation
2014-02-14 22:50:17 -05:00
2014-05-25 23:07:32 -04:00
See http://picrin.readthedocs.org/
2014-04-05 12:11:14 -04:00
2013-10-19 14:20:41 -04:00
## Homepage
Currently picrin is hosted on Github. You can freely send a bug report or pull-request, and fork the repository.
2014-08-29 00:27:31 -04:00
https://github.com/picrin-scheme/picrin
2013-10-19 14:20:41 -04:00
2014-04-05 03:22:33 -04:00
## IRC
2015-05-30 06:13:11 -04:00
Our chat room is at #picrin channel, chat.freenode.org. IRC logs here: https://botbot.me/freenode/picrin/
2014-04-05 03:22:33 -04:00
2015-05-30 06:13:11 -04:00
## Build
2013-10-17 01:09:39 -04:00
2015-05-30 06:13:11 -04:00
Just type `make` in the project root directory. You will find an executable binary newly created at bin/ directory.
2014-06-15 13:07:53 -04:00
2015-05-30 06:13:11 -04:00
$ make
2014-06-15 13:07:53 -04:00
2015-05-30 06:13:11 -04:00
When you are building picrin on x86_64 system, PIC_NAN_BOXING flag is automatically turned on (see include/picrin/config.h for detail).
2014-06-15 13:07:53 -04:00
2015-05-30 06:13:11 -04:00
## Install
2014-03-01 22:54:37 -05:00
2015-05-30 06:13:11 -04:00
`make install` target is provided. By default it installs picrin binary into `/usr/local/bin/` .
2014-04-05 23:41:31 -04:00
2014-06-15 13:12:05 -04:00
$ make install
2014-04-05 23:41:31 -04:00
2015-05-30 06:13:11 -04:00
Since picrin does not use autoconf, if you want to specify the install directory, pass the custom path to `make` via command line argument.
2013-10-17 01:09:39 -04:00
2015-05-30 06:13:11 -04:00
$ make install prefix=/path/to/dir
2013-11-28 10:15:10 -05:00
2013-10-17 07:58:01 -04:00
## Requirement
2015-05-30 06:13:11 -04:00
To build Picrin Scheme from source code, some external libraries are required:
2013-10-17 07:58:01 -04:00
2014-05-18 20:01:26 -04:00
- perl
2015-05-30 06:13:11 -04:00
- regex.h of POSIX.1
2014-05-25 23:06:16 -04:00
- libedit (optional)
2013-10-17 07:58:01 -04:00
2015-05-30 06:13:11 -04:00
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.
2013-10-19 14:35:08 -04:00
2013-10-17 01:09:39 -04:00
## Authors
2014-01-17 07:02:31 -05:00
See `AUTHORS`