| 
				
					
						
							 | 
			||
|---|---|---|
| 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