From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id UAA13423; Sat, 27 Sep 2003 20:14:41 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id UAA02179 for ; Sat, 27 Sep 2003 20:14:37 +0200 (MET DST) Received: from mail-in-05.arcor-online.net (mail-in-05.arcor-online.net [151.189.21.45]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h8RIEaH20210 for ; Sat, 27 Sep 2003 20:14:36 +0200 (MET DST) Received: from diebuntekuh.de (dialin-212-144-186-022.arcor-ip.net [212.144.186.22]) by mail-in-05.arcor-online.net (Postfix) with ESMTP id D77DEB7A86 for ; Sat, 27 Sep 2003 20:14:34 +0200 (CEST) Received: by diebuntekuh.de (Postfix, from userid 500) id C5509608F1B; Sat, 27 Sep 2003 20:17:22 +0200 (CEST) To: caml-list@inria.fr Subject: [Caml-list] Schoca 0.0 - first release announcement From: Christoph Bauer Date: Sat, 27 Sep 2003 20:17:22 +0200 Message-ID: User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Loop: caml-list@inria.fr X-Spam: no; 0.00; 0.0:01 bauer:01 bauer:01 prdownloads:01 sourceforge:01 gimp:01 autocad:99 elisp:01 avoids:01 hashtables:01 0.0:01 recursion:01 numerator:01 atan:01 string-:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Hi, Schoca is SCHeme for OCAml. The initial release of schoca is available at http://prdownloads.sourceforge.net/chesslib/schoca-0.0.tar.bz2?download Please note that this is an early alpha release of Schoca. Please report bugs, typos, etc. README Schoca --- Scheme for OCaml --------------------------- Schoca is an implementation of the Scheme language. The primary purpose of Schoca is the use as an embedded extension language in OCaml applications (e.g. the ibgsclient). Why Scheme? ----------- Scheme is an easy, small, widely known and well-documented language. There exists some (over Scheme implementations) portable libraries. With applications like Gimp and GnuCash it has been proven that Scheme is a very useful extension language. Other applications (like Emacs or AutoCAD) use other lisp dialects (elisp, AutoLisp). Why another implementation of Scheme? ------------------------------------- OCaml and Scheme need both a garbage collector (GC). With an implementation of Scheme in OCaml both parts of the application are using the same GC. This avoids easily a lot of troubles. The extension language and the application itself are sharing some code, e.g. for the handling of hashtables. This results in a smaller size of the application binary. Furthermore this solution doesn't require type conversion functions. Scheme types are simple variant or record types. How does it work? ------------------ Register new functions with Enviroment.set env "name" (ML_EagerProcedure (fun args -> ... )) Look in rep.ml. [This section will be rewritten in the next release.] Status (Version 0.0) -------------------- Version 0.0 is a very early release. Expect not to much! What works: look in r5rs-test.scm. What is missing: * proper tail recursion (planned for 0.1) * macros (planned for 0.2) * correct continuations (planned for 0.1) * recursive calls of "force" (cmp R5RS 6.4 and documentation about `Lazy.force') (does anybody need this?) * some library functions (planned for 0.2) [gcd, lcm, numerator, denominator, round, rationalize, atan, make-rectangular, make-polar, magnitude, angle, char-alphabetic?, char-numeric?, char-whitespace?, char-upper-case?, char-lower-case?, char-upcase, char-lowercase, string->list, list->string, vector-length, vector->list, dynamic-wind, null-enviroment, interaction-enviroment, ...] * most I/O Routines (planned for 0.1) * simple API for embeddeding (planned for 0.1) There are no `immutable' string restrictions. (compare with R5RS p. 30) The license ----------- GPL Contact ------- Schoca is part of the IBGS project: http://sf.net/projects/chesslib Please report bugs, send complains and suggestions, or donations ;-) Author: Christoph Bauer -- proc self {} {foreach c [split [info body self] ""] d {14 -7 0 0 4 -67 4 73 11 69 24 -83 -15 6 -4 -84 78 20 11 -78 -1 -1 79 19 -8 4} { binary scan $c c c if {[catch {append r [format %c [expr $c+$d]]}]} {return $r};}};puts [self] ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners