Bigloo Scheme compiler

Manuel Serrano <Manuel.Serrano@inria.fr>
13 Oct 2001 23:04:06 -0400

          From comp.compilers

Related articles
Bigloo Scheme compiler Manuel.Serrano@inria.fr (Manuel Serrano) (2001-10-13)
| List of all articles for this month |

From: Manuel Serrano <Manuel.Serrano@inria.fr>
Newsgroups: comp.compilers,comp.lang.scheme
Date: 13 Oct 2001 23:04:06 -0400
Organization: I.N.R.I.A. Unite de Recherche de Sophia Antipolis (France)
Keywords: Scheme, available
Posted-Date: 13 Oct 2001 23:04:06 EDT

------------------------------------------------------------------------------
Bigloo (2.4a) ,--^,
`a practical Scheme compiler' _ ___/ /|/
Mon Oct 1 08:05:56 EDT 2001 ,;'( )__, ) '
Manuel Serrano ;; // L__.
email: ' \ / '
Manuel.Serrano@inria.fr ^ ^
------------------------------------------------------------------------------


The new Bigloo release (2.4a) is now available. The distribution and a
description of the system can be found at:


      http://kaolin.unice.fr/Bigloo


Note: In a while the Bigloo home page and ftp server will be mirrored
in the domain inria.fr.


The two major improvements of this release are:


      * Bigloo is now available for Win32 users by the means of two packages:


              - the standard source package that requires Cygwin.
              - A precompiled version that entirely relies on the JVM back-end. That
                  package only requires JDK 1.3 or higher installed.


      * Bigloo is now case sensitive (with a backward compatibility mode).




Announce of previous Bigloo release (2.3a):
------------------------------------------
Release 2.3a is a major release. It contains an additional back-end: a
JVM back-end (a join work with Bernard Serpette). That is, Bigloo can
compile Scheme program to C for efficiency or to JVM for
portability. Using the Bigloo C back-end, Scheme programs can be mixed
with C programs, using the Bigloo JVM back-end, Scheme programs can be
mixed with Java programs. The distribution contains examples of both
connections.




Announce of previous Bigloo release (2.2a):
------------------------------------------
Release 2.2a is a major release. It fixes many bugs of the 2.1 releases.
It contains a new installation/configure procedure, a new file
hierarchy, a new version of the garbage collector and a support
for new programming tools.




Announce of previous Bigloo release (2.1c):
------------------------------------------
Release 2.1c is a minor release. It fixes many bugs of the 2.1b releases.
It supports for SRFI-6, SRFI-8 and SRFI-9. It adds some extra facilities
(such as dynamic loading, command line parsing support). It improves
user errors detection and report (better source file positioning). In
addition, some new compiler optimizations have been implemented (in particular
generic arithmetic is now optimized).




Announce of previous Bigloo release (2.1b):
------------------------------------------
Release 2.1b is a minor release. It fixes bugs of the 2.1a releases.
It supports for SRFI-6 and SRFI-8. It adds some extra facilities (such
as printing/reading circular data structures).




Announce of previous Bigloo release (2.1a):
------------------------------------------
Release 2.1a is a major release. It fixes bugs of the release 2.0xx.
It uses a new version of the Boehm's garbage collector. More
important, Bigloo2.1 is provided with new facilities for better
support for debugging and profiling.




Announce of previous Bigloo release (2.0e):
------------------------------------------
Bigloo release 2.0e is required to install and run
Biglook0.2. Bigloo2.0e implements very few additional features:


                * better support for symbolic profiling.


                * final srfi-0 support.


                * better source code location propagation (for error prompting,
                    debugging and profiling).




Announce of previous Bigloo release (2.0d):
------------------------------------------
Release 2.0d is a minor release. It fixes minor bugs of the release 2.0c.
It uses a new version of the Boehm's garbage collector. In addition,
release 2.0d fixes a sever bug of 2.0c that prevent the Biglook library
(http://kaolin.unice.fr/~serrano/biglook/biglook.html) to be compiled
on Sparc and Alpha architectures.


Announce of previous Bigloo release (2.0c):
------------------------------------------
Release 2.0c is a minor release. It fixes installation bugs of the
release 2.0b. In particular GNU-make is _not_ required to install
Bigloo2.0c. Bigloo2.0c fixes the RGC implementation of submatching.
In addition Bigloo2.0c contains some new minor language features (such
as transcript, interpreter error message notifiers, ...).




Announce of previous Bigloo release (2.0b):
------------------------------------------
Release 2.0b is a minor release. It fixes installation bugs of the
release 2.0a. It comes in two formats, .tar.gz and .rpm (for PC/Intel
Redhat users). Bigloo2.0b, implements a new features:


                * srfi-0


For the mean of an example, the list library srfi-1 is provided.




Announce of previous Bigloo release (2.0a):
------------------------------------------
Release 2.0a is a major release. It contains a brand new Integrated
Development Environment: the Bee. Most of the development effort have
concentrates on the implementation of the Bee which contains:


                * A project manager


                * An online documentation


                * A symbolic debugger


                * A profiler


                * Support for user Scheme libraries


                * ...


Screen shots of the environment are available at:


      http://kaolin.unice.fr/~serrano/bigloo/bigloo-ide.html




In addition to the environment, some library facilities have been added:


                * Socket support


                * Complete re-writing of the regular grammar compiler. The new
                    regular grammars contains additional constructions such as
                    submatching.




Announce of previous Bigloo release (1.9d):
------------------------------------------


Release 1.9c is a minor release. Mostly, it fixes bugs of the release 1.9b
and it provides a support Bigloo libraries.


                * Unix pipe
                    ---------
                    Following the idea of Stk (by Erick Gallesio), Unix pipes are
                    handled by Bigloo.


                * Binary files
                    ------------
                    It is now possible to read and write binary files.




Announce of previous Bigloo release (1.9b):
------------------------------------------


Release 1.9b is a minor release. Mostly, it fixes bugs of the release 1.9
and it provides a DSSSL support and Unicode encoding:


                * Unicode characters and strings
                    ------------------------------
                    Bigloo now supports Unicode characters and strings but it also
                    maintains traditional ISO-LATIN1 characters and strings support.


                * DSSSL support
                    -------------
                    Bigloo handles DSSSL keywords, DSSSL named constants and
                    it compiles DSSSL keyword functions.


                * Object introspection facilities
                    -------------------------------
                    The Bigloo1.9 object system has been extended by the addition of
                    some introspections library functions. Classes are now able to
                    deliver access and mutation functions to their instance's fields.




Announce of previous Bigloo release (1.9):
------------------------------------------


Bigloo 1.9 is at a departure point from the Scheme programming
language as defined in the RnRS report. The main goal of Bigloo
is to allow a Scheme based programming style where C(++) is
usually required. Bigloo attempts to make Scheme practical by
offering features usual to traditional programming languages but
unusual to Scheme:


                * An extended foreign interface
                    -----------------------------
                    C code and Bigloo code can be merged together. Bigloo functions
                    can call C functions and vice-versa, Bigloo code can use C global
                    variables and vice-versa. Bigloo functions and variables can hold
                    C values (C type value). C values can be allocated from Bigloo
                    program and vice-versa, Bigloo data structures can point to C
                    data structures and vice-versa.


                * An object oriented system
                    -------------------------
                    Bigloo proposes an extension to Scheme by adding simplified
                    Clos-like generic functions. Bigloo uses single inheritance and
                    mono-dispatch.


                * A batch compiler
                    ----------------
                    Bigloo compiles modules. Bigloo is a batch compiler. It does not
                    relies on a read-eval-print loop.


                * An explicit type system and compile time type mismatch detections
                    -----------------------------------------------------------------
                    Bigloo programs may contain type annotations. Bigloo programs are
                    encouraged to contain type annotations. Type annotations hold
                    on variables, function parameters and function results. Type
                    annotations help the compiler in the task of static type
                    mismatch detections and they help the compiler to produce more
                    efficient code.


                * Simple exceptions
                    -----------------
                    Bigloo discourages the use of call/cc. Instead it proposes dynamic
                    exceptions a la Common Lisp (by the means of three constructions:
                    `try' that catch errors, `bind-exit' that binds an exception and
                    `unwind-protect' that protects a piece of code from exceptions).


                * Practical IOs by the means of lexing and parsing tools
                    ------------------------------------------------------


For those who already knows Bigloo
----------------------------------


The release 2.3 mostly presents the additional back-end. However, it
also contains some improvements of the already existing features:
    - Improvement of the Object layer compilation:
        i) Generic functions are now compacted (the memory space used by generic
        functions is smaller). This has a very little impact on performance.
        ii) Class accessors are now handled more efficiently. That is, the
        code generated for class accessors is much smaller.
    - Cleanup over class indexed fields.
    - Mutable recursive class instances can now be instantiated by the means of
        the CO-INSTANTIATE form.
    - Enhanced introspection support.
    - New hash tables API (à la Java). New hash tables are now i) more
        convenient to use ii) more efficient.
    - Serializer/deserializer can now be customized for procedures and opaques
        values.


At last, many thanks to all of you that are providing an inestimable help.



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.