Projects / Gauche

Gauche

Gauche is an R5RS Scheme implementation that aims to be a handy tool for daily work. Quick startup, a built-in system interface, and native multilingual support are some of its goals. It has an OO system similar to STklos and Guile. It supports UTF-8, EUC-JP, and Shift-JIS multibyte encodings natively.

Tags Software Development Interpreters
Licenses BSD Revised
Operating Systems POSIX
Implementation Scheme

Tweet this project Short link

Rss Recent releases

  • Rrelease-mid
  •  12 Oct 2008 20:42
  • Rrelease-after

Changes: This is a maintenance release, including cumulative bugfixes and numerous small enhancements. Part of the VM has been rewritten for better performance and maintainability.

  • Rrelease-mid
  •  13 Feb 2008 22:29
  • Rrelease-after

Changes: This is a maintenance release. Quite a few small bugfixes and tiny feature enhancements are included.

  • Rrelease-mid
  •  30 Oct 2007 02:51
  • Rrelease-after

Changes: This maintenance release fixed an annoying bug related to the buffering mode of socket ports. Some erroneous behaviors in edge cases of numerical routines were also fixed.

  • Rrelease-mid
  •  18 Aug 2007 02:17
  • Rrelease-after

Changes: This maintenance release fixes some critical bugs that could cause a SEGV in rare occasions. Other fixes include the long standing issue of adding methods to an autoloaded procedure, extra output by the write-block with byte swapping, and lack of stack trace output in the script mode.

  • Rrelease-mid
  •  19 Apr 2007 23:13
  • Rrelease-after

Changes: This release contains various improvements, including stricter keyword argument checking, remote process execution, 16-bit floating point number support, built-in treemaps, inexact arithmetic operations, and more. It also contains several C API updates.

Rss Recent comments

Rcomment-before 20 Feb 2006 07:18 Rcomment-trans EvanProdromou Rcomment-after

Gauche is the Scheme I always wanted
I've been looking for a solid, high-performance Scheme implementation for general scripting and systems programming for several years now. I was really happy to find Gauche. It has an extensive library of support functions and binary extensions and great support for SRFIs (Scheme Requests for Implementation -- the "open standards" of the Scheme world).

Most "modern" scripting issues -- networking, XML parsing, text manipulation, Web programming, embedding and extending -- are nicely handled with clean interfaces.

I think that programmers who are looking for top-notch alternative to Python and Perl -- the crowd that is moving to e.g. Ruby and Groovy -- should take a close look at Gauche as a real alternative.

Rcomment-before 28 May 2002 17:52 Rcomment-trans shirok Rcomment-after

Re: WHAT ??

> It could be useful to compare [feature
> by feature] Gauche vs Guile. That would
> help to choose a right Scheme for the
> right project. Guile was here for
> awhile, why would we need another
> Scheme? Is there anything wrong with
> Guile?

Good point. There's nothing wrong with Guile, but
simply there are some features I needed that
are (or were) not in Guile and was difficult to add
to the existing implementation without changins its design policy.

(1) Native multibyte string handling. I wanted string-ref
(and its corresponding C API) to work correctly on a string that mixes latin and japanese characters. So as read-char. So as regexp.
If it were easy to modify existing implementation to
realize this, I'd done that. What I found was that
the change would affect everywhere in the code. and sometimes it sacrifices the performance, so some users will not want to have it.

(2) Use of Boehm GC. This is also a fundamental design policy issue. Changing this affects everywhere
in the code.

(3) VM architecture. The choice of interpreter engine
greatly affects the interface how C-defined procedure
is called. It is very difficult to change one to the other after you wrote large number of C-defined procedures.

(4) Licensing issue. I'm not anti-GNU, but there are certain cases that I have to avoid GNU-ed code to achieve my goal.

I have certain applications I want to write in Gauche,
and design decisions are made according to that goal.
Those design decisions need not agree with Guile's.

I don't want to reinvent every wheels. I'm trying to
keep the Scheme-level interface compatible to
existing implementations as much as possible, so that
the Scheme modules written in other implementations
can be easily ported to Gauche.

> I would recommend to compare first of
> all the following features: XML
> processing (including XPath and RDF),

Oleg Kiselyov's SXML runs on Gauche. So on Guile.

> integration with web servers (CGI,
> Apache modules, standalone HTTPD),

No standalone httpd, or Apache module.
Simple CGI module is provided, but the API is
Gauche specific.

> integration with GUI (like GNOME, QT or
> Win32), database API (PostgreSQL,
> MySQL), other communications (CORBA,
> SOAP).

Not yet.

> Also, it would be useful to show the
> best and typical applications using
> Gaucho.

As I mentioned above, I started Gauche
to satisfy the requirements for the applications
I wanted to write. (Writing Scheme implementation
is not my goal; it's just a preparation).
Once Gauche become stable, I'll start writing applications.

Meanwhile, Gauche looks like some 'yet another premature Scheme implementation'.
If you need features like GUI or Database
binding immediately, I don't recommend Gauche.

If you deal with multibyte documents, however,
Gauche may be some use.

Rcomment-before 28 May 2002 08:21 Rcomment-trans panserg Rcomment-after

Re: WHAT ??
It could be useful to compare [feature by feature] Gauche vs Guile. That would help to choose a right Scheme for the right project. Guile was here for awhile, why would we need another Scheme? Is there anything wrong with Guile?

I would recommend to compare first of all the following features: XML processing (including XPath and RDF), integration with web servers (CGI, Apache modules, standalone HTTPD), integration with GUI (like GNOME, QT or Win32), database API (PostgreSQL, MySQL), other communications (CORBA, SOAP).

Also, it would be useful to show the best and typical applications using Gaucho.

Rcomment-before 16 Feb 2002 02:17 Rcomment-trans shirok Rcomment-after

Re: WHAT ??

> Somebody please tell me what the HECK is
> R5RS..
>
> What I mean is that how can something
> that most people probably won't
> understand the meaning of, be handy in
> daily work ??

R5RS stands for Revised^5 Report on the Algorithmic Language Scheme",
the "standard" of the Scheme language.

IMHO, handy tools need not be what is obvious to those who are not familiar with it,
although to be so may be a plus. If you're curious, take a look at the following article:

Being popular (http://www.paulgraham.com/popular.html)

Of course, people can have different view.

Rcomment-before 16 Feb 2002 01:51 Rcomment-trans mystran Rcomment-after

WHAT ??
Somebody please tell me what the HECK is R5RS..

What I mean is that how can something that most people probably won't understand the meaning of, be handy in daily work ??

No-screenshot

Project Spotlight

Detached Quercus

A launchpad to run Quercus PHP in Java without a Web server.

No-screenshot

Project Spotlight

Tie::Table

A Perl module which maps database tables to hashes.