Sagittarius is a Scheme script engine; it reads Scheme programs, compiles it on-the-fly and executes it on a virtual machine. Sagittarius conforms the language standard "Revised^6 Report on the Algorithmic Language Scheme" (R6RS), "Revised^7 Report on the Algorithmic Language Scheme" (R7RS), and supports various common libraries defined in "Scheme Requests for Implementation" (SRFI)s.
There are a lot of Scheme implementations and they have different strong and weak points. Sagittarius focuses on "Flexibility" and "Easy to Use". R6RS specifies strict requirements, but sometimes you may think this is too much. For that purpose, Sagittarius has less strictness. There are invocation options that make Sagittarius run on strict RnRS mode.
To avoid to lose portability or write miss-working code, you may want to know what are the non conformed points.
Basically reader has 3 modes. One is R6RS mode, one is R7RS mode and the
last one is compatible mode. Although, user can modify reader with reader
macro. These modes can be switched via #!r6rs
, #!r7rs
or
#!compatible
. For more details, see
Predefined reader macros.
Redefinition of exported values are allowed on script file. This can be
restricted by -r6
option to run the script strict R6RS mode.
Multiple import of the same identifier is allowed. The value which
imported at the last will be used.