Go to file
Yuichi Nishiwaki 7f3d3ac11b copy stacks to restore a continuation 2013-11-11 07:59:52 +09:00
bin add make stuff 2013-10-09 17:10:58 +09:00
etc add benchmark log notes to tak.scm 2013-11-04 20:37:51 -05:00
extlib/xhash fix a memory bug in xhash 2013-10-23 20:09:06 +09:00
include add a note about undef values 2013-11-09 14:27:50 +09:00
lib git file management 2013-10-20 18:47:05 +09:00
piclib add memv, assv, member, and assoc 2013-11-09 16:45:04 +09:00
src copy stacks to restore a continuation 2013-11-11 07:59:52 +09:00
t add t/tailcall.scm 2013-10-30 10:07:58 +09:00
tools [bugfix] picrin evaluates exprs in files in order. 2013-11-04 13:18:16 -05:00
.gitignore ignore debug info files 2013-11-05 20:36:16 +09:00
Makefile cleanup Makefile 2013-11-09 18:05:59 +09:00
README.md add a note to README about call/cc impl 2013-11-09 14:16:35 +09:00

README.md

This product is developed at the second-grade course, Informatic Science
Basic Experiment class at the University of Tokyo.

Picrin - a lightweight scheme interpreter

Features

  • R7RS compatibility (but partial support)
  • reentrant design (all VM states are stored in single global state object)
  • bytecode interpreter (based on Stack VM technology)
  • 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 strategy)
  • advanced REPL support (multi-line input, etc)
  • tiny & portable library (all functions will be in libpicrin.so)

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

How to use it

  • build

      $ make build
    

    built executable binary will be under bin/ directory and shared library libpicrin.so under lib/.

  • run

    Simply directly run the binary bin/picrin from terminal, or you can use make to execute it like this.

      $ make run
    

In the default option, when make command is called without arguments, it builds the binary and right after that dropped into the picrin interactive shell (REPL).

  • install

    As of now picrin does not provide a command automatically installs the binary. If you want to place picrin library and binary in a parmanent directory, please do it by hand.

Requirement

picrin scheme depends on some external libraries to build the binary:

  • bison
  • yacc
  • make
  • gcc
  • readline

The compilation is tested only on Mac OSX. I think (or hope) it'll be ok to compile and run on other operating systems such as Linux or Windows, but there's no guarantee :(

Authors

Yuichi Nishiwaki (yuichi.nishiwaki at gmail.com)