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

Io
Io

10 Dec 15

Python
Python

10 Feb 16

Elm
Elm

10 Feb 16

PHP
PHP

12 May 16

Comments to Gauche

Comments not found
Add Comment
Turn on images!