Software Details:
Version: 0.9.4
Upload Date: 13 May 15
Distribution Type: Freeware
Downloads: 15
It will allow programmers and system administrators to write small to large scripts for their applications.
Gauche is a script engine in the sense that it reads and evaluates the source code, but internally it compiles Scheme expressions into an intermediate forma by optimizing compiler then executes it by a virtual machine.
So far, the performance is comparable to other Scheme interpreters.
Features:
- General features:
- Covers R5RS, almost.
- Both R5RS high-level macro and legacy define-macro are supported.
- Numeric operations are supported on fixnum, bignum, flonum and complex.
- 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)
- ")).
- 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.
- Supports the following SRFIs:
- SRFI-0 Feature based conditional expansion construct
- SRFI-1 List library
- SRFI-2 And-let*
- SRFI-4 Homogeneous numeric vector datatypes
- SRFI-5 A compatible let form with signatures and rest arguments
- SRFI-6 String ports
- SRFI-7 Feature-based program configuration language
- SRFI-8 Receive
- SRFI-9 Record Types
- SRFI-10 Sharp-comma external form
- SRFI-11 Let-values
- SRFI-13 String Library
- SRFI-14 Character Set Library
- SRFI-16 Syntax for procedures of variable arity
- SRFI-17 Generalized set!
- SRFI-18 Multithreading support
- SRFI-19 Time data types and procedures
- SRFI-22 Running Scheme Scripts on Unix
- SRFI-23 Error reporting mechanism
- SRFI-25 Multi-dimensional array primitives
- SRFI-26 Notation for Specializing Parameters without Currying
- SRFI-27 Sources of random bits
- SRFI-28 Basic format strings
- SRFI-29 Localization
- SRFI-30 Nested Multi-line comments
- SRFI-31 A special form rec for recursive evaluation
- SRFI-34 Exception Handling for Programs
- SRFI-35 Conditions
- SRFI-36 I/O Conditions (partly)
- SRFI-37 args-fold: a program argument processor
- SRFI-38 External Representation for Data With Shared Structure
- SRFI-39 Parameter objects
- SRFI-40 A Library of Streams
- SRFI-42 Eager comprehenshion
- SRFI-43 Vector Library
- SRFI-45 Primitives for Expressing Iterative Lazy Algorithms
- SRFI-55 require-extension
- SRFI-61 A more general cond clause
- SRFI-62 S-expression comments
- SRFI-87 => in case clauses
What is new in this release:
- Major feature enhancements.
What is new in version 0.9.3.3:
- New procedure: string-scan-right.
- GC is now 7.2b.
What is new in version 0.9.3:
- Lazy sequences.
- A chained-application macro $.
- Threads are now supported on Windows/MinGW build.
What is new in version 0.9.2:
- Case mapping and character properties are fully supported, compatible to R6RS and R7RS draft (both based on Unicode standard). Character-wise case mapping (char-upcase etc.) and property queries (char-alphabetic?, char-general-category, etc.) are built-in. Context-aware string case mapping (string-upcase etc.) is provided in the new text.unicode module. (Note: srfi-13's string-upcase etc. are unchanged; they are defined to use simple case mappings.) The text.unicode module also provides conversion between utf-8/utf-16 and Unicode codepoints.
- Windows binary distribution is now in MS installer (*.msi) format, created with WiX. It's safer than the previous *.exe format created by NSIS, which had a bug that smashes PATH settings when it is too long.
- A convenient wrapper for atomic execution is added in gauche.threads. See this intro post.
- Benchmarking utilities resembles to Perl's Benchmark module is now available in gauche.time. See this post for an introduction.
- with-lock-file: A long-awaited feature to use lock files conveniently. It is in file.util module.
- Added full support of srfi-60, integer bitwise operations.
- gauche.cgen: Some API that Gauche uses to generate C code become public. See the manual for the details.
What is new in version 0.9.1:
- Honor the directory argument on Windows-native code path as well.
- Modify *load-path* to include pre-0.9.1 directory structure for the backward compatibility.
- Create a symlinc from libgauche.so to libgauche-0.9.so for the backward compatibility; extensions compiled for 0.9 refers to libgauche.so, and they need to be working after installation of 0.9.1.
- Changed library installation directory from ${datadir}/gauche to ${datadir}/gauche-${ABI_VERSION}. This is also for theconsistency with architecture-dependent libraries.
- Kludge to make gauche-package work during tests without installed Gauche.
What is new in version 0.9:
- New module: rfc.zlib: Zlib compression/decompression.
- New module: rfc.sha: SHA2 support. rfc.sha1 is superseded by this module.
- New module: util.sparse: Sparse vectors backed up by space-efficient trie, and hash-tables implemented on top of sparse vectors. They are memory efficient than the builtin hash tables when you want to keep tens of millions of entries.
- Autoprovide: You no longer need 'provide' form for most of times. If (require "X") successfully loads X.scm and it doesn't have a provide form, the feature "X" is automatically provided. See the "Require and provide" section of the reference for more details.
- Module gauche.test: Improved testing for exceptions. You can now test whether a specific type of condition is thrown by giving (test-error condition-type) as the expected result. See the manual entry for more details.
- Module rfc.http: Now handles proxy by :proxy keyword argument. You can also easily compose application/x-www-form-urlencoded and multipart/form-data message to send form parameters. New procedures: http-put and http-delete.
- Module rfc.mime: Added support of composing a MIME message.
- Module gauche.threads: New procedures: thread-stop!, thread-cont!, thread-state.
- Module gauche.termios: On Windows native support, this module provides Windows Console API instead of POSIX termios API, since emulationg POSIX termios on Windows is too much. A set of common high-level API that can be used on both POSIX and Windows are also added.
- Module gauche.dictionary provides a bidirectional map, <bimap>.
- run-process in module gauche.process, and builtin sys-exec and sys-fork-and-exec support :directory keyword argument to specify the working directory of the executed process.
- Module file.util provides create-directory-tree and check-directory-tree.
- Module gauche.net provides low-level socket operations: socket-sendmsg, socket-buildmsg, and socket-ioctl. Call-with-client-socket takes new keyword args to specify buffering mode for the socket.
- Module www.cgi: cgi-main switches the buffering mode of stderr to line, so that the httpd log can record error messages line-by-line (much less clutter than before).
Comments not found