Gauche

Software Screenshot:
Gauche
Software Details:
Version: 0.9.4
Upload Date: 13 May 15
Developer: Shiro Kawai
Distribution Type: Freeware
Downloads: 15

Rating: nan/5 (Total Votes: 0)

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).

Similar Software

Acquisition
Acquisition

4 Jun 15

PHP
PHP

12 May 16

Ruby
Ruby

12 May 16

Erlang
Erlang

1 May 16

Comments to Gauche

Comments not found
Add Comment
Turn on images!