Guile Reference Manual

$Id: guile.texi,v 1.15 2002/03/16 13:51:03 ossau Exp $

For use with Guile

Mark Galassi
Cygnus Solution and Los Alamos National Laboratory
rosalia@cygnus.com">rosalia@cygnus.com
Jim Blandy
Free Software Foundation and MIT AI Lab
jimb@red-bean.com">jimb@red-bean.com
Gary Houston
ghouston@arglist.com">ghouston@arglist.com
Tim Pierce
twp@skepsis.com">twp@skepsis.com
Neil Jerram
neil@ossau.uklinux.net">neil@ossau.uklinux.net
Martin Grabmueller
mgrabmue@cs.tu-berlin.de">mgrabmue@cs.tu-berlin.de


(1)

It is only convention that the module names in this section have two elements. One or more than two elements are perfectly fine, such as (foo) or (foo bar braz)

(2)

A white box test plan is one that incorporates knowledge of the internal design of the application under test.

(3)

Of course, in the world of free software, you always have the freedom to modify the application's source code to your own requirements. Here we are concerned with the extension options that the application has provided for without your needing to modify its source code.

(4)

These definitions are approximate. For the whole and detailed truth, see @xref{Formal syntax and semantics,R5RS syntax,,r5rs

(5)

The term "smob" was coined by Aubrey Jaffer, who says it comes from "small object", referring to the fact that only the CDR and part of the CAR of a smob's cell are available for use.

(6)

The SCM_NEWSMOB2 and SCM_NEWSMOB3 variants will allocate double cells and thus use twice as much memory as smobs created by SCM_NEWSMOB.

(7)

Actually, the current implementation restricts strings to a length of 2^24 characters.

(8)

Strictly speaking, Scheme does not have a real datatype list. Lists are made up of chained pairs, and only exist by definition--a list is a chain of pairs which looks like a list.

(9)

Note that there is no separation character between the list elements, like a comma or a semicolon.

(10)

Working definitions would be:

(define foo-ref vector-ref)
(define foo-set! vector-set!)
(define f (make-vector 2 #f))

(11)

char-ready? exists to make it possible for a program to accept characters from interactive ports without getting stuck waiting for input. Any input editors associated with such ports must make sure that characters whose existence has been asserted by char-ready? cannot be rubbed out. If char-ready? were to return #f at end of file, a port at end of file would be indistinguishable from an interactive port that has no ready characters.

(12)

The value returned by a call to peek-char is the same as the value that would have been returned by a call to read-char on the same port. The only difference is that the very next call to read-char or peek-char on that port will return the value returned by the preceding call to peek-char. In particular, a call to peek-char on an interactive port will hang waiting for input whenever a call to read-char would have hung.

(13)

Some people also refer to the final linking stage at program startup as `dynamic linking', so if you want to make yourself perfectly clear, it is probably best to use the more technical term dlopening, as suggested by Gordon Matzigkeit in his libtool documentation.


This document was generated on 26 March 2002 using texi2html 1.56k.