Kahua is CPS, Continuation Passing Style application framework written
in one of scheme implementation, Gauche.
CPS has following advantages.
- You can use "Continuation" easily so you can resolve the typical Web
Applicaiton's problem of process disconnection.
- You can program declaratively by using S-expressions as fundamental
data type.
- You can use Kahua's Object Database to permanent data by itself.
- You can modify the function being run and it supports incremental
development.
Gauche is an R5RS Scheme implementation that is designed to be a
useful tools for daily work. See http://practical-scheme.net/gauche/
in detail.
Kahua is licensed under the modified BSD license. See COPYING in detail.
"Kahua" means platform, location or base in Hawaiian.
Important changes excerpted from web pages:
2007/1/17
Gauche 0.8.9: Major maintenance release
+ Bug fixes
+ Miscellaneous improvements:
2006/11/18
Gauche 0.8.8 important patch: There is a bug in main.c that makes gosh
exits silently without reporting errors when a Scheme script raised an
unhandled error. Please apply the patch shown in the following message:
http://sourceforge.net/mailarchive/forum.php?thread_id=30949517&forum_id=
2043
2006/11/11
Gauche 0.8.8: Major maintenance release
+ Important Changes:
o Exact rational number is supported; now you get 1/3 from (/ 1 3).
To obtain inexact number from division of two exact numbers, you
have to use exact->inexact explicitly. With this change you can get
more exact result, but if your code has relied on the old Gauche
behavior that automatically converts rationals to inexact reals,
your code may run very slowly in this release of Gauche (since
exact rational arithmetic is much slower than flonum arithmetic).
For the smooth transition, a compatibility module compat.norational
is provided, which makes the / operator behaves like before. See
the manual entry for the details.
o The reader is more strict about utf-8 encoding. Consequently, some
source files in other encoding that happened to be accepted by
previous versions of Gauche may no longer work. If you get an
error, either convert the encoding of the source, or use "coding:"
magic comment (See "Multibyte scripts" section of the reference
manual).
o The test-module routine in gauche.test is fixed so that it detects
more references to undefined global variables that have been
overlooked. You may get an error something like "symbols referenced
but not defined: ...". In most cases, they are from typos. See the
manual entry of gauche.test - Unit testing for the details.
o New modules:
# sxml.serializer: Generic routine to convert SXML to other
formats like XML or HTML. Written by Dmitry Lizorkin and ported
to Gauche by Leonardo Boiko.
# util.trie: Implementation of Trie. Originally by OOHASHI
Daichi, and hacked by numerous Gauche hackers.
# util.rbtree: Implementation of Red-Black Tree. Written by Rui
Ueyama.
o A bug in port locking routine, that caused a race condition on
multiprocessor machine, is fixed. As a side effect, port lock
operation became a bit faster.
o C API prospected change: Scm_Eval, Scm_EvalCString, and Scm_Apply
will have different API in the next release. The current API is
kept under a different name, Scm_EvalRec, Scm_EvalCStringRec, and
Scm_ApplyRec. If you are using those functions, please make changes
until the next release.
+ Miscellaneous fixes and improvements:
2006/4/12
Gauche 0.8.7: Major maintenance release
+ Bug fixes:
+ Improvements: