[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#283299: ITP: gambc -- Gambit-C Scheme Interpreter and Compiler



Package: wnpp
Version: N/A; reported 2004-11-27
Severity: wishlist

* Package name    : gambc
  Version         : 4.0
  Upstream Author : Marc Feeley <gambit@iro.umontreal.ca>
* URL             : http://www-perso.iro.umontreal.ca/~gambit/
* License         : Apache Version 2
  Description     : Gambit-C Scheme Interpreter and Compiler

I intend to package Gambit-C Scheme Release 4.  The previous package,
gambc, was Gambit-C 3.0, which was orphaned and later removed from
Debian, see Bug 153884.  There had not been an upstream release since
1998.


This software is Copyright (C) 1994-2004 by Marc Feeley, all rights reserved.

Gambit-C release 4 includes a Scheme interpreter and a Scheme compiler
which can be used to build standalone executables.  Because the
compiler generates portable C code it is fairly easy to port to any
platform with a decent C compiler.

The Gambit-C system conforms to the R4RS and IEEE Scheme standards.
The full numeric tower is implemented, including: infinite precision
integers (bignums), rationals, inexact reals (floating point numbers),
and complex numbers.  Gambit-C supports a number of extensions to the
standards including:

 - an optimizing compiler
   - with several powerful transformations (automatic function inlining,
     partial evaluation, etc)
   - that generates properly tail-recursive portable C code
 - a scalable thread system that can handle millions of concurrent threads
 - an I/O system fully integrated with the thread system that supports
   - regular files
   - ttys (terminals and serial ports)
   - sockets (tcp-client and tcp-server)
   - directories
   - processes
   - pipes
 - an infix syntax extension (SIX) that allows mixing code in the
   standard prefix syntax with code in a C-like syntax
 - the following SRFIs:
    - SRFI 0 (Feature-based conditional expansion construct)
    - SRFI 4 (Homogeneous numeric vector datatypes)
    - SRFI 6 (Basic String Ports)
    - SRFI 8 (RECEIVE: Binding to multiple values)
    - SRFI 9 (Defining Record Types)
    - SRFI 18 (Multithreading support)
    - SRFI 21 (Real-time multithreading support)
    - SRFI 22 (Running Scheme Scripts on Unix)
    - SRFI 23 (Error reporting mechanism)
    - SRFI 27 (Sources of Random Bits)
    - SRFI 39 (Parameter objects)
 - a REPL/debugger with
    - a continuation inspection facility (i.e. "backtrace")
    - a single-stepping mode
    - error messages with location of error (file, line, and column number)
    - emacs compatible line-editing with history
 - very efficient bignum implementation
 - a foreign function interface for C
 - a memory management system that grows and shrinks the heap based on
   the program's needs
 - a linker that builds standalone executables and shared libraries
 - dynamic loading of compiled modules and libraries (supported on many
   platforms)
 - Unicode support for characters, strings, I/O and source code
 - object finalization
 - pretty printing
 - keyword objects
 - optional and keyword parameters (with the syntax and semantics of DSSSL)
 - configurable reader with control over case sensitivity
 - write/read invariance of symbols, e.g. (string->symbol "B;123") => |B;123|
 - write/read invariance of floating point numbers
 - unhygienic macros
 - and many other things!

-- System Information
Debian Release: 3.0
Architecture: i386
Kernel: Linux thirdcreek.com 2.4.20-020stab009.24.777-enterprise #1 SMP Tue Aug 17 13:20:56 MSD 2004 i686
Locale: LANG=C, LC_CTYPE=C




Reply to: