From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Tom Lord Newsgroups: gmane.lisp.guile.devel Subject: Pika Scheme project announcement Date: Wed, 19 Nov 2003 20:05:55 -0800 (PST) Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Message-ID: <200311200405.UAA14889@morrowfield.regexps.com> NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1069300187 15501 80.91.224.253 (20 Nov 2003 03:49:47 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 20 Nov 2003 03:49:47 +0000 (UTC) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Nov 20 04:49:44 2003 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AMfp9-000835-00 for ; Thu, 20 Nov 2003 04:49:44 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1AMgmO-0002ga-LK for guile-devel@m.gmane.org; Wed, 19 Nov 2003 23:50:56 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.24) id 1AMglu-0002fi-Id for guile-devel@gnu.org; Wed, 19 Nov 2003 23:50:26 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.24) id 1AMglO-0002K8-NP for guile-devel@gnu.org; Wed, 19 Nov 2003 23:50:25 -0500 Original-Received: from [65.234.195.251] (helo=morrowfield.regexps.com) by monty-python.gnu.org with esmtp (Exim 4.24) id 1AMglM-0002HV-OD for guile-devel@gnu.org; Wed, 19 Nov 2003 23:49:53 -0500 Original-Received: (from lord@localhost) by morrowfield.regexps.com (8.9.1/8.9.1) id UAA14889; Wed, 19 Nov 2003 20:05:55 -0800 (PST) (envelope-from lord@morrowfield.regexps.com) Original-To: guile-devel@gnu.org X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Developers list for Guile, the GNU extensibility library List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.devel:3076 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:3076 What is Pika? +----------------------------------------------------------------+ | | | | | Project Plan and design notes available at either of these | | two mirrors: | | | | http://regexps.srparish.net/src/pika/ | | http://arch.quackerhead.com/releases/pika | | | | | | | +----------------------------------------------------------------+ * The Goal The primary objective of this project is to build an implementation of Scheme which: * can run as an interpreter * is written in relatively portable C * has good performance running interpreted code * is easily extended by writing new primitive functions in C * is easily targeted by a Scheme->C compiler * has a precise garbage collector * can have an incremental garbage collector * implements R5RS precisely * has a small-source-code and small-footprint core * supports multiple instances in a single process * has a firmly abstract interface to the representation of Scheme types * can run multi-threaded programs * has first-class environments * has a low start-up time * has a complete set of features for Posix systems programming * has a richy featureful string and buffer type, including superlative Unicode support I make no argument that {INSERT YOUR FAVORITE SCHEME IMPLEMENTATION HERE} doesn't already satisfy all or most of those requirements. I almost certainly respectfully disagree -- but I'm not interested in arguing. I agree that there are several quite virtuous implementations and will presume that your favorite is likely to be one of them. The approach that I'm taking with Pika is to define an abstract virtual machine which "puns" well as several different things. The VM should be: * suitable for direct interpretation, as by a bytecode engine * an easy target for a simplistic Scheme compiler * a useful intermediate target for a native or ->C Scheme compiler * suitable for a static code safety verifier, similar to Java's * a useful intermediate target for a native JIT compiler * What's Here? * "./implementation-plan" The directory "implementation-plan" contains the initial (technical) plan for the project. * "./spec" The directory "spec" contains an early draft of a specification for "Pika Scheme" -- the Scheme dialect I plan to implement. * "./unfinished-code" The directory "unfinished code" contains just that. This is code that I wrote while making plans about how to make the plan for Pika. With some heavy editting anticipated, I expect this code to morph into parts of the initial Pika implementation. * "./hackerlab" The low-level C library on which the run-time system will be based. * How to Get Involved If you believe that you're competent to help specify and/or implement a Scheme dialect and VM, and would like to help in that regard, please sign up for the pika-dev mailing list: http://mail.nongnu.org/mailman/listinfo/pika-dev and let's take it from there. Also: I am living these days as a "free software Internet busker" which means that I write free software, and then from time to time "pass the hat" to collect some money to get by on. You can read about my other projects (the arch revision control system, the hackerlab C library, and the package-framework configure/build framework) _and_ find my glorious "paypal link" at either of these mirrors: http://regexps.srparish.net/www/ http://arch.quackerhead.com/~lord/ Thank you for your support. -t +----------------------------------------------------------------+ | | | | | Project Plan and design notes available at either of these | | two mirrors: | | | | http://regexps.srparish.net/src/pika/ | | http://arch.quackerhead.com/releases/pika | | | | | | | +----------------------------------------------------------------+ _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel