-This release 1.1 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.
+This is release 1.3 of Guile, Project GNU's extension language
+library. Guile is an interpreter for Scheme, packaged as a library
+that you can link into your applications to give them their own
+scripting language. Guile will eventually support other languages as
+well, giving users of Guile-based applications a choice of languages.
+Please send bug reports to bug-guile@gnu.org.
About This Distribution ==============================================
-The latest official Guile release is available via anonymous FTP from
-prep.ai.mit.edu, as /pub/gnu/guile-1.1.tar.gz.
-
-Via the web, that's: ftp://prep.ai.mit.edu/pub/gnu/guile-1.1.tar.gz
-For getit, that's: prep.ai.mit.edu:/pub/gnu/guile-1.1.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.
-
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.
+ /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.
+guile-config --- a Guile script which provides the information necessary
+ to link your programs against the Guile library.
+guile-snarf --- a script to parse declarations in your C code for
+ Scheme-visible C functions, Scheme objects to be used by C code, etc.
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.
-libqt.a --- an object library containing the QuickThreads primitives.
- If you enabled thread support when you configured Guile, you
- will need to link your code against this too.
-<libguile.h>, <libguile/*.h> --- header files for libguile.a, usually
- installed in /usr/local/include.
-
+ usually installed in /usr/local/lib. You can use Guile in
+ your own programs by linking against this.
+libqthreads.a --- an object library containing the QuickThreads
+ primitives. If you enabled thread support when you configured
+ Guile, you will need to link your code against this too.
+<libguile.h>, <guile/gh.h>, <libguile/*.h> --- header files for
+ libguile.a, usually installed in /usr/local/include.
+ice-9, ice-9/*.scm --- run-time support for Guile: the module
+ system, read-eval-print loop, some R4RS code and other
+ infrastructure. Usually installed in
+ /usr/local/share/guile/<version>.
+data-rep.info --- An essay on how to write C code that works with
+ Guile Scheme values.
Interesting files include:
- INSTALL, which contains instructions on building and installing Guile.
The Guile source tree is laid out as follows:
libguile:
- The Guile Scheme interpreter --- both the object library
- for you to link with your programs, and the executable you can run.
+ The Guile Scheme interpreter --- both the object library
+ for you to link with your programs, and the executable you can run.
ice-9: Guile's module system, initialization code, and other infrastructure.
-
-qt: A cooperative threads package from Washington University,
- which Guile can use. If you configure Guile with the
+guile-config:
+ Source for the guile-config script.
+qt: A cooperative threads package from the University of Washington,
+ which Guile can use. If you configure Guile with the
--with-threads flag, you will need to link against the -lqt
library, found in this directory. Qt is under a separate
copyright; see `qt/README' for more details.
+doc: Some preliminary documentation for Guile. The real Guile
+ manual is incomplete, and is currently being revised.
+doc/example-smob: Sample code, discussed in the preliminary
+ documentation above, for a program that extends Guile with a
+ new data type, and functions that operate on it.
-(The present release doesn't include any documentation; the Guile
-manual is incomplete, and is currently being revised.)
-
-Nightly Snapshots ====================================================
-We make nightly snapshots of the Guile development sources available
-via anonymous FTP.
+Anonymous CVS Access and FTP 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!
+We make the developers' working Guile sources available via anonymous
+CVS, and by nightly snapshots, accessible via FTP. See the files
+`ANON-CVS' and `SNAPSHOTS' for details.
-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.
+If you would like to receive mail when people commit changes to the
+Guile CVS repository, you can subscribe to guile-cvs@egcs.cygnus.com
+by sending a message to guile-cvs-subscribe@egcs.cygnus.com. Even
+better, you can get daily digests of these commit messages by sending
+a message to guile-cvs-digest-subscribe@egcs.cygnus.com.
-Nightly snapshots of the Guile development sources are available via
-anonymous FTP from ftp.cyclic.com, as /pub/guile/guile-core-snap.tar.gz.
-
-Via the web, that's: ftp://ftp.cyclic.com/pub/guile/guile-core-snap.tar.gz
-For getit, that's: ftp.cyclic.com:/pub/guile/guile-core-snap.tar.gz
+If you want to subscribe an e-mail address other than the one that
+appears in your From: header, say foo@bar.com, send a mail note to
+guile-cvs-subscribe-foo=bar.com@egcs.cygnus.com.
Hacking It Yourself ==================================================
find it helpful to have the tools we use to develop Guile. They
are the following:
-Autoconf 2.12 --- a system for automatically generating `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".
+Autoconf 2.13 --- a system for automatically generating `configure'
+ scripts from templates which list the non-portable features a
+ program would like to use. Available in
+ "ftp://ftp.gnu.org/pub/gnu/autoconf"
+
+Automake 1.4 --- 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. Automake is available in
+ "ftp://ftp.gnu.org/pub/gnu/automake"
-Automake 1.1p --- 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".
+ Before using automake, you may need to copy `threads.m4' and
+ `guile.m4' from the top directory of the Guile core disty to
+ `/usr/local/share/aclocal.
-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".
+libtool 1.2f --- a system for managing the zillion hairy options needed
+ on various systems to produce shared libraries. Available in
+ "ftp://alpha.gnu.org/gnu", assuming it's not down.
You are lost in a little maze of automatically generated files, all
different.
->
+>
+
+
+Obtaining Guile ======================================================
+
+The latest official Guile release is available via anonymous FTP from
+prep.ai.mit.edu, as /pub/gnu/guile-1.3.tar.gz.
+
+Via the web, that's: ftp://prep.ai.mit.edu/pub/gnu/guile-1.3.tar.gz
+For getit, that's: prep.ai.mit.edu:/pub/gnu/guile-1.3.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@gnu.org. Note that one address is @cygnus.com,
+and the other is at @gnu.org.
Authors And Contributors =============================================
* 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
+* enhancements to the `threads' interface (based on Anthony Green's
+ work), and
* detection of circular references during printing.
Mark Galassi contributed the Guile high-level functions (gh_*), and
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.
+Gary Houston wrote much of 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.
+Aubrey Jaffer is the author of SCM upon which Guile is based. Guile
+started from SCM version 4e1 in November -94 and is still largely
+composed of the original SCM code.
George Carrette wrote SIOD, a stand-alone scheme interpreter.
Although most of this code as been rewritten or replaced over time,