Bigloo1.9 Scheme-ish compiler available (SERRANO Manuel)
27 Mar 1997 13:17:24 -0500

          From comp.compilers

Related articles
Bigloo1.9 Scheme-ish compiler available (1997-03-27)
| List of all articles for this month |

From: (SERRANO Manuel)
Newsgroups: comp.compilers
Date: 27 Mar 1997 13:17:24 -0500
Organization: University of Geneva, Switzerland
Keywords: Scheme, available

Bigloo (1.9) (level a) ,--^,
`a practical Scheme compiler' _ ___/ /|/
Fri Mar 21 17:00:42 MET 1997 ,;'( )__, ) '
Manuel Serrano ;; // L__.
email: ' \ / ' ^ ^

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


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

* 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

This release was successfully compiled on:

- SPARC (SunOs4 and SunOs5)
- DEC Station 3000 (alpha OSF/1 V3.0)
- SGI (IP32)
- PC-NeXTStep

It should run correctly (but has not been tested) on:

- DEC Station 3100 (mips r3000)
- NeXT 68k (using gcc version 2.7.2 or newer)
- IBM RS-6000 (AIX)
                - SGI (IP20 and IP22)
- SONY-NEWS (mips r3000)
- PC-linux 1.2.13 (pentium)

For those who already knows Bigloo

The release 1.9 mostly presents new language constructions. This release
does not improve the compilation results (except that allocation routines
are a bit faster). Here is the list of the changes:
    - Addition of the object system (complete re-writing of the compiler with
        the object system).
    - Type annotations can be set on each local variables and functions results.
    - Re-syntaxing of the foreign interface (the former syntax is still
    - Improved module language compilation.
    - Rgc is improved. The `bol', `eol' constructions can enclose any reg-exp.
        For instance, one can write expressions like: (bol (eol reg-exp)).
        Context can be used in reg-exp. Rgc supports multiple contexts too.
    - Bigloo uses, as much as possible, shared libraries.
    - Bug fixed on `try' constructions.
    - Bigloo uses the most up-to-date Boehm's collector version (the 4.11).
    - Small changes in the compilation and installation scripts.

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

  Manuel SERRANO (tel: +41 22 705 7669) email:
  Centre Universitaire d'Informatique, University of Geneva
  24, rue General-Dufour -- CH-1211 Geneva 4 -- Switzerland

Post a followup to this message

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