SISC

SISC is a freely-available Java based interpreter. SISC is R5RS compliant and highly extensible.

Homepage: http://sisc.sourceforge.net

Version control (CVS): https://sourceforge.net/p/sisc/code/

Version control (unofficial Git mirror): https://github.com/amoe/sisc

Implementing SRFIs: SRFI-0 SRFI-1 SRFI-2 SRFI-6 SRFI-7 SRFI-8 SRFI-9 SRFI-11 SRFI-13 SRFI-14 SRFI-16 SRFI-18 SRFI-19 SRFI-22 SRFI-23 SRFI-25 SRFI-26 SRFI-27 SRFI-28 SRFI-29 SRFI-30 SRFI-31 SRFI-34 SRFI-35 SRFI-37 SRFI-38 SRFI-39 SRFI-40 SRFI-42 SRFI-43 SRFI-45 SRFI-48 SRFI-51 SRFI-54 SRFI-55 SRFI-59 SRFI-60 SRFI-61 SRFI-62 SRFI-66 SRFI-67 SRFI-69 SRFI-78


Scheme Language

min-precision, max-precision, #\u string->uninterned-symbol, case-sensitive, proper-list?, vector-length-prefixing?, box, unbox, set-box!, box?, #&, parameterize, #0=, #0#, #;, when, unless, with-failure-continuation?, with/fc?, call-with-failure-continuation?, call/fc?, make-error?, make-nested-error?, error-location?, error-message?, error-parent-error?, error-parent-continuation?, throw, error, make-exception?, exception-error?, exception-continuation?, exception??, getprop, putprop, sisc-internal-environment?, get-symbol-environment?, set-symbol-environment!?, circular?, compose, iota, time

Debugging Facilities

get-last-exception?, stack-trace, print-stack-trace?, print-exception?, emit-annotations?, trace-lambda, trace-let, trace, untrace

I/O

current-url?, with-current-url?, normalize-url?, block-read, block-write, open-input-string, open-output-string, get-output-string, call-with-input-file, call-with-output-file, call-with-input-string, call-with-output-string, with-input-from-port, with-output-to-port, with-input-from-file, with-output-to-file, with-input-from-string, with-output-to-string, get-host-by-ip-name?, get-host-name-by-ip?, get-local-host?, socket?, open-socket-input-port?, open-socket-output-port?, close-socket, open-tcp-socket?, open-tcp-listener?, server-socket??, accept-tcp-socket?, set-so-timeout!?, open-udp-listen-socket?, open-udp-socket?, open-multicast-socket?, join-multicast-group?, leave-multicast-group?, set-multicast-ttl!?, pretty-print, open-source-input-file?, input-port-location?, find-resource?, find-resources?

Threads and concurrency

thread?, thread/new?, thread/start?, thread/state?, thread/join?, thread/interrupt?, thread/result?, parallel?, thread/priority?, thread/priority!?, thread/yield?, monitor??, monitor/new?, monitor-of?, monitor/lock?, monitor/unlock?, monitor/wait?, monitor/notify?, monitor/notify-all?, monitor/synchronize?, monitor/synchronize-unsafe?

Java interaction

java-object??, java-class??, java-interface??, java-array??, java-null??, generic-java-constructor?, java-array-new?, generic-java-procedure?, java-mangle-method-name?, java-mangle-field-name?, java-class?, java-class-of?, java-instance??, java-assignable??, ->?, ->jarray?, java-wrap?, java-unwrap?, java-null?, define-java-proxy?, java-synchronized?,

meta?, type<=?, instance-of??, type-of?, class-direct-superclasses?, class-direct-slots?, class-precedence-list?, define-generic?, make-generic-procedure?, generic-procedure-methos?, generic-procedure-next?, define-method?, make-method?, add-method?, method-procedure?, method-types?, method-rest??, define-constructor?, make-generic-constructor?, constructor?, applicable-methods?, methods-applicable??,

Additional libraries

logand, logor, logxor, lognot, ashl, ashr, make-hashtable, hashtable?, alist->hashtable?, hashtable->alist?, hashtable/put!?, hashtable/get?, hashtable/get!?, hashtable/remove!?, hashtable/clear!?, hashtable/keys?, hashtable/for-each?, hashtable/map?, buffer??, make-buffer?, buffer?, buffer-length?, buffer-ref?, buffer-set!?, buffer-copy!? procedure-property?, set-procedure-property!?, procedure-property!?, require-library?, library-exists??, library-loaded??, create-library-from-module?

Modules and Extensibility