All Projects → picrin-scheme → Picrin

picrin-scheme / Picrin

Licence: mit
lightweight scheme interpreter

Programming Languages

c
50402 projects - #5 most used programming language
scheme
763 projects

Projects that are alternatives of or similar to Picrin

Rbpf
Rust virtual machine and JIT compiler for eBPF programs
Stars: ✭ 306 (-20.93%)
Mutual labels:  interpreter
Craftinginterpreters
Repository for the book "Crafting Interpreters"
Stars: ✭ 4,298 (+1010.59%)
Mutual labels:  interpreter
Vm.js
Javascript 解释器. Javascript Interpreter
Stars: ✭ 343 (-11.37%)
Mutual labels:  interpreter
Calculatex
in progress pretty printing calculator language
Stars: ✭ 302 (-21.96%)
Mutual labels:  interpreter
My basic
A lightweight BASIC interpreter written in standard C in dual files. Aims to be embeddable, extendable and portable.
Stars: ✭ 316 (-18.35%)
Mutual labels:  interpreter
Yaegi
Yaegi is Another Elegant Go Interpreter
Stars: ✭ 4,044 (+944.96%)
Mutual labels:  interpreter
Awesome Graal
A curated list of awesome resources for Graal, GraalVM, Truffle and related topics
Stars: ✭ 302 (-21.96%)
Mutual labels:  interpreter
Sh
A shell parser, formatter, and interpreter with bash support; includes shfmt
Stars: ✭ 4,343 (+1022.22%)
Mutual labels:  interpreter
Pycparser
C parser and interpreter written in Python with automatic ctypes interface generation
Stars: ✭ 320 (-17.31%)
Mutual labels:  interpreter
Hyper Haskell
The strongly hyped Haskell interpreter.
Stars: ✭ 342 (-11.63%)
Mutual labels:  interpreter
Umka Lang
Umka: a statically typed embeddable scripting language
Stars: ✭ 308 (-20.41%)
Mutual labels:  interpreter
Partcl
ParTcl - a micro Tcl implementation
Stars: ✭ 313 (-19.12%)
Mutual labels:  interpreter
Wasm3
🚀 The fastest WebAssembly interpreter, and the most universal runtime
Stars: ✭ 4,375 (+1030.49%)
Mutual labels:  interpreter
Clojush
The Push programming language and the PushGP genetic programming system implemented in Clojure.
Stars: ✭ 305 (-21.19%)
Mutual labels:  interpreter
Tcl
The Tcl Core. (Mirror of core.tcl-lang.org)
Stars: ✭ 342 (-11.63%)
Mutual labels:  interpreter
Enso Archive
Looking for Enso, the visual programming language? ➡️ https://github.com/enso-org/enso
Stars: ✭ 305 (-21.19%)
Mutual labels:  interpreter
V8
The official mirror of the V8 Git repository
Stars: ✭ 18,808 (+4759.95%)
Mutual labels:  interpreter
Plam
An interpreter for learning and exploring pure λ-calculus
Stars: ✭ 385 (-0.52%)
Mutual labels:  interpreter
Monkey
Interpreter with support for class, linq, sql, net, http, fmt, json and A realtime syntax highlighting REPL.
Stars: ✭ 347 (-10.34%)
Mutual labels:  interpreter
Passerine
A small extensible programming language designed for concise expression with little code.
Stars: ✭ 341 (-11.89%)
Mutual labels:  interpreter

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

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].