|  a8a56aa34e | ||
|---|---|---|
| build | ||
| cmake | ||
| contrib | ||
| docs | ||
| etc | ||
| extlib | ||
| include | ||
| piclib | ||
| src | ||
| t | ||
| tools | ||
| .gitignore | ||
| .gitmodules | ||
| .travis.yml | ||
| AUTHORS | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	Picrin 
Picrin is a lightweight scheme implementation intended to comply with full R7RS specification. Its code is written in pure C99 and does not requires any special external libraries installed on the platform.
Features
- R7RS compatibility (but partial support)
- reentrant design (all VM states are stored in single global state object)
- bytecode interpreter (based on stack VM)
- direct threaded VM
- internal representation by nan-boxing
- conservative call/cc implementation (users can freely interleave native stack with VM stack)
- exact GC (simple mark and sweep, partially reference count is used as well)
- string representation by rope data structure
- support full set hygienic macro transformers, including implicit renaming macros
- extended library syntax
- advanced REPL support (multi-line input, etc)
- tiny & portable library (all functions will be in libpicrin.so)
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/wasabiz/picrin
IRC
There is a chat room on chat.freenode.org, channel #picrin. IRC logs here: https://botbot.me/freenode/picrin/
How to use it
- 
make MakefileChange directory to buildthen runccmaketo create Makefile. OnceMakefileis generated you can runmakecommand to build picrin.$ cd build $ ccmake ..Actually you don't necessarily need to move to builddirectory before runningccmake(in that case$ ccmake .), but I strongly recommend to follow above instruction.
- 
build A built executable binary will be under bin/ directory and shared libraries under lib/. $ makeIf you are building picrin on other systems than x86_64, PIC_NAN_BOXING flag is automatically turned on (see include/picrin/config.h for detail). 
- 
install Just running make install, picrin library, headers, and runtime binary are install on your system, by default into/usr/localdirectory. You can change this value via ccmake.$ make install
- 
run Before installing picrin, you can try picrin without breaking any of your system. Simply directly run the binary bin/picrinfrom terminal, or you can usemaketo execute it like this.$ make run
- 
debug run If you execute cmakewith debug flag-DCMAKE_BUILD_TYPE=Debug, it builds the binary with all debug flags enabled (PIC_GC_STRESS, VM_DEBUG, DEBUG).$ cmake -DCMAKE_BUILD_TYPE=Debug ..
Requirement
Picrin scheme depends on some external libraries to build the binary:
- perl
- lex (preferably, flex)
- getopt
- libedit (optional)
- regex.h of POSIX.1 (optional)
Optional libraries are, if cmake detected them, automatically enabled. The compilation is tested only on Mac OSX and Ubuntu. I think (or hope) it'll be ok to compile and run on other operating systems such as Arch or Windows, but I don't guarantee :(
Authors
See AUTHORS