R7RS/R6RS/Generic Scheme portability platform
yuni
is a portability layer for Scheme applications that would allow to run single program/library on various Scheme implementations (with some limitations). It's under development; still USELESS for most people.
(yuni scheme)
- Subset of R7RS base library, also available on R6RS.(yuni core)
- Basic structure and typing(yuni ffi *)
- Static binding FFI (under construction)
In short, yuni provides subset of R6RS library loader and subset of R7RS base libraries. On the other hand, Yuni does not try to fill implementation limitations.
See also: Basic library sample
- Common: Minimalistic common FFI implementation (TBD)
- For R6RS: R7RS base libraries including SRFI-46
syntax-rules
- For R7RS: R6RS-lite library loader that can convert R6RS
library
form intoload
ordefine-library
form (if supported) - For Generic Scheme with
define-macro
: R7RS base libraries and non-hygienicsyntax-rules
andlibrary
implementation
Yuni is NOT designed for writing any benchmarks. Library wrapper can kill some form of optimizations which can be critical for performance.
See also: SIBR is Yuni's collection of Scheme implementation behaviour reports
- FFI implementation is incomplete
- No
rename
onlibrary
form, especially Generic Scheme does not support renaming syntax such aslet
ordefine
- Some Scheme might not have R6RS/R7RS features; such as full numeric-tower, tail-calls,
eval
, etc
(Not ready yet.)
See also: PortingNotes
Implementations with FFI compatibility layer:
- chibi-scheme
- Racket with
srfi-lib
andr6rs-lib
packages - Sagittarius
- Gauche 0.9.5 or later
- Guile 2.0 or later
- Chicken interpreter with
r7rs
egg - Gambit
- ChezScheme
Bootstrapped, but no FFI yet:
- IronScheme
- Kawa 2.2 or later
- Digamma
- Cyclone (experimental)
- Foment
- MIT/GNU Scheme
- BiwaScheme (experimental)
- s7
- STklos
- SCM with slib (experimental)
- Bigloo (experimental)
(Support was temporally removed for now):
Public domain (CC0-1.0). Yuni R6RS/R7RS runtime component is released into public domain by the author. See COPYING.CC0
for full license text.
Yuni generic scheme support includes syntax-rules
implementation from Chibi-scheme.
NOTE: Following directories contain copyrighted materials from other projects.
apidata
external
integration
tests
These directories are not part of Yuni runtime library.