mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-12 08:40:20 +02:00
154 lines
6.6 KiB
Text
154 lines
6.6 KiB
Text
This is a nightly snapshot of Guile, a portable, embeddable Scheme
|
|
implementation written in C. Guile provides a machine independent
|
|
execution platform that can be linked in as a library when building
|
|
extensible programs.
|
|
|
|
Please send bug reports to bug-guile@prep.ai.mit.edu.
|
|
|
|
|
|
Important Facts About Snapshots ======================================
|
|
|
|
Please keep in mind that these sources are strictly experimental; they
|
|
will usually not be well-tested, and may not even compile on some
|
|
systems. They may contain interfaces which will change. They will
|
|
usually not be of sufficient quality for use by people not comfortable
|
|
hacking the innards of Guile. Caveat!
|
|
|
|
However, we're providing them anyway for several reasons. We'd like
|
|
to encourage people to get involved in developing Guile. People
|
|
willing to use the bleeding edge of development can get earlier access
|
|
to new, experimental features. Patches submitted relative to recent
|
|
snapshots will be easier for us to evaluate and install, since the
|
|
patch's original sources will be closer to what we're working with.
|
|
And it allows us to start testing features earlier.
|
|
|
|
Nightly snapshots of the Guile development sources are available via
|
|
anonymous FTP from ftp.cyclic.com, as /pub/guile/guile-snap.tar.gz.
|
|
|
|
Via the web, that's: ftp://ftp.cyclic.com/pub/guile/guile-snap.tar.gz
|
|
For getit, that's: ftp.cyclic.com:/pub/guile/guile-snap.tar.gz
|
|
|
|
|
|
The latest official Guile release is available via anonymous FTP from
|
|
prep.ai.mit.edu, as /pub/gnu/guile-1.0.tar.gz.
|
|
|
|
Via the web, that's: ftp://prep.ai.mit.edu/pub/gnu/guile-1.0.tar.gz
|
|
For getit, that's: prep.ai.mit.edu:/pub/gnu/guile-1.0.tar.gz
|
|
|
|
The mailing list `guile@cygnus.com' carries discussions, questions,
|
|
and often answers, about Guile. To subscribe, send mail to
|
|
guile-request@cygnus.com. Of course, please send bug reports (and
|
|
fixes!) to bug-guile@prep.ai.mit.edu.
|
|
|
|
|
|
About This Distribution ==============================================
|
|
|
|
Building and installing this distribution gives you:
|
|
guile --- a stand-alone interpreter for Guile, usually installed in
|
|
/usr/local/bin. With no arguments, this is a simple
|
|
interactive Scheme interpreter. It can also be used as an
|
|
interpreter for script files; see the NEWS file for details.
|
|
libguile.a --- an object library containing the Guile interpreter,
|
|
usually installed in /usr/local/lib. You can use Guile in
|
|
your own programs by linking against this.
|
|
<libguile.h>, <libguile/*.h> --- header files for libguile.a, usually
|
|
installed in /usr/local/include.
|
|
|
|
|
|
Interesting files include:
|
|
- INSTALL, which contains instructions on building and installing Guile.
|
|
- NEWS, which describes user-visible changes since the last release of Guile.
|
|
- COPYING, which describes the terms under which you may redistribute
|
|
Guile, and explains that there is no warranty.
|
|
|
|
The Guile source tree is laid out as follows:
|
|
|
|
doc: Documentation for Guile, in Texinfo form. (At the moment, these
|
|
manuals are incomplete and are currently being revised.)
|
|
libguile:
|
|
The Guile Scheme interpreter, packaged as an object library
|
|
for you to link with your programs.
|
|
guile: An interactive front end for the Guile Scheme interpreter.
|
|
rx: A regular expression matching library, interfaced to Guile.
|
|
ice-9: Guile's module system, initialization code, and other infrastructure.
|
|
lang: A Guile module of tools for writing lexical analyzers and parsers.
|
|
ctax: A Guile module providing a C-like syntax for Scheme.
|
|
gtcltk-lib:
|
|
Glue code for talking to Tcl/Tk from Guile. The Tcl/Tk
|
|
developers have big plans for the next major release of Tcl/Tk
|
|
which will make possible a clean, direct interface between
|
|
Guile and Tk, so we're providing this very simple-minded
|
|
interface until that's ready.
|
|
threads: Glue code for using various threads packages from Guile, including
|
|
qt (see below).
|
|
|
|
This distribution also includes `qt', a cooperative threads package
|
|
from Washington University, which Guile can use. Qt is under a
|
|
separate copyright; see `qt/README' for more details.
|
|
|
|
|
|
Hacking It Yourself ==================================================
|
|
|
|
As distributed, Guile needs only an ANSI C compiler and a Unix system
|
|
to compile. However, Guile's makefiles, configuration scripts, and a
|
|
few other files are automatically generated, not written by hand. If
|
|
you want to make changes to the system (which we encourage!) you will
|
|
find it helpful to have the tools we use to develop Guile. They
|
|
are the following:
|
|
|
|
Autoconf 2.12 --- a system for automatically generate `configure'
|
|
scripts from templates which list the non-portable features a
|
|
program would like to use. Available in
|
|
"ftp://prep.ai.mit.edu/pub/gnu".
|
|
|
|
Automake 1.1n --- a system for automatically generating Makefiles that
|
|
conform to the (rather Byzantine) GNU coding standards. The
|
|
nice thing is that it takes care of hairy targets like 'make
|
|
dist' and 'make distclean', and automatically generates
|
|
Makefile dependencies. Available in
|
|
"ftp://ftp.cygnus.com/pub/tromey".
|
|
|
|
libtool 0.9d --- a system for managing the zillion hairy options needed
|
|
on various systems to produce shared libraries. Available in
|
|
"ftp://alpha.gnu.ai.mit.edu/gnu".
|
|
|
|
You are lost in a little maze of automatically generated files, all
|
|
different.
|
|
>
|
|
|
|
|
|
Authors And Contributors =============================================
|
|
|
|
Many people have generously contributed to Guile. However, any errors
|
|
are the responsibility of the primary Guile maintainer, Jim Blandy.
|
|
|
|
Mikael Djurfeldt designed and implemented:
|
|
* the source-level debugging support (although the debugger's user
|
|
interface is not yet complete)
|
|
* stack overflow detection,
|
|
* the GDB patches to support debugging mixed Scheme/C code,
|
|
* the original implementation of weak hash tables,
|
|
* the `threads' interface (rewriting Anthony Green's work), and
|
|
* detection of circular references during printing.
|
|
|
|
Mark Galassi contributed the Guile high-level functions (libgh), and
|
|
wrote the guile-programmer and guile-user manuals. (These are in the
|
|
process of revision.)
|
|
|
|
Anthony Green wrote the original version of `threads' the interface
|
|
between Guile and qt.
|
|
|
|
Gary Houston wrote the Unix system call support, including the socket
|
|
support, and did a lot of work on the error handling code.
|
|
|
|
Tom Lord librarified SCM, yielding Guile. He wrote Guile's operating
|
|
system, Ice-9, and connected Guile to Tcl/Tk and the `rx' regular
|
|
expression matcher.
|
|
|
|
Aubrey Jaffer seriously tuned performance and added features. He
|
|
designed many hairy but beautiful parts of the tag system and
|
|
evaluator.
|
|
|
|
George Carrette wrote SIOD, a stand-alone scheme interpreter.
|
|
Although most of this code as been rewritten or replaced over time,
|
|
the garbage collector from SIOD is still an important part of Guile.
|