Conforms to R7RS/R6RS
Mostly concurrent garbage collector optimized for multi-core processor
Incremental native code generation with background compilation threads
On-the-fly FFI with native stub code generation
Full features of R6RS and R6RS standard libraries including:
Full features of R7RS-small and following R7RS-large libraries:
See LICENSE for terms and conditions of use.
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
cmake --install .
brew update
brew install llvm
echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc
# Ubuntu 21.04
apt install rlwrap
# Homebrew on MacOS
brew install rlwrap
To run R7RS sample script, try following from project root:
ypsilon --r7rs test/r7rs-sample.scm
To run FFI demo program, try follwing from project root:
ypsilon --r6rs --top-level-program demo/glut-demo.scm # (OpenGL 1.x, GLUT)
ypsilon --r6rs --top-level-program demo/glfw-demo.scm # (OpenGL 1.x, GLFW)
ypsilon --r6rs --top-level-program demo/glcorearb-demo.scm # (OpenGL Core Profile, GLFW)
ypsilon --r6rs --top-level-program demo/freetype-demo.scm # (OpenGL Core Profile, GLFW, freetype)
ypsilon --r6rs --top-level-program demo/widget-demo.scm # (OpenGL Core Profile, GLFW, freetype)
$ docker run --rm -it fujitay/ypsilon:latest ypsilon --r7rs
ypsilon-2.0.8 (r7rs)
> (magnitude 3/22+2/11i)
5/22
> (exit)
(import (scheme base) (scheme process-context))
or (import (rnrs base) (rnrs programs))
depending on the command line options specified.--top-level-program
option, the contents of the specified script file will be interpreted as if they had been entered into the REPL.make
cd heap; make; cd ..; make; cd heap; make; cd ..
make