Gauche is an R5RS Scheme implementation developed to be a handy script interpreter, which allows programmers and system administrators to write small to large scripts for their daily chores. Quick startup, built-in system interface, native multilingual support are some of my goals.
Gauche application runs on several Unix-like platforms.
Instalation
% gzcat Gauche-0.8.3.tgz | tar xf -
% cd Gauche-0.8.3
% ./configure
% make
% make install
Product's homepage
Here are some key features of "Gauche":
· Covers R5RS, almost.
· R5RS macro is supported as all of define-syntax, let-syntax, letrec-syntax forms. I think the speed of macro expansion is important as a script interpreter, and wrote R5RS macro expander in C, integrated in the internal compiler engine.
· Numeric operations are supported on fixnum, bignum, flonum and complex.
· Supports the following SRFIs.
· Module system:a simple module system, API compatible to STklos
· Object system:CLOS-like object system with metaobject protocol. Almost API compatible to STklos . It is also similar to Guile 's object system.
· Multibyte string support: Strings are represented by multibyte string internally. You can use UTF-8, EUC-JP, Shift-JIS or no multibyte encoding by configure-time choice. Conversion between native coding system and external coding system is supported by port objects.
· Multibyte regexp: Regular expression matcher is aware of multibyte string; you can use multibyte characters both in patterns and matched strings.
· Reader extension: literal regexp and char-set, string interpolation: Extended reader recognizes #/.../ as an regular expression, and #[...] as a character set. Handy to write one-liners. (e.g. (rxmatch-substring (rxmatch #/(d+)/ "abc123def")) ==> "123")
· Also "string interpolation" is supported (e.g. (display #`"1 + 2 = ,(+ 1 2)n")).
· System interface: Covers most of POSIX.1 and some other features common in Unices. See section 6.19 of the reference manual for details.
· Network interface: Has API for socket-based network interface, including IPv6 if the OS suppots it.
· Multithreading: On some platforms, multithreading is supported on top of pthreads. Scheme-level API conforms SRFI-18.
· DBM interface: Interface to DBM-like libraries (dbm, ndbm and/or gdbm) if the system provides them.
· XML parsing: Oleg Kiselyov's SXML tools are included.
· OpenGL binding: OpenGL binding is provided in a separate package.
· GTK binding: GTK2 binding is provided in a separate package
What's New in This Release: [ read full changelog ]
· This version fixes a few build issues.