Commit | Line | Data |
---|---|---|
293b3025 | 1 | This is release 1.3.4 of Guile, Project GNU's extension language |
3d06534e JB |
2 | library. Guile is an interpreter for Scheme, packaged as a library |
3 | that you can link into your applications to give them their own | |
4 | scripting language. Guile will eventually support other languages as | |
5 | well, giving users of Guile-based applications a choice of languages. | |
7fcc90c4 | 6 | |
e1b6c710 | 7 | Please send bug reports to bug-guile@gnu.org. |
86f40248 | 8 | |
394a535e MD |
9 | Guile Documentation ================================================== |
10 | ||
11 | There is some preliminary documentation for Guile under the directory | |
12 | doc. The real Guile manual is incomplete, and is currently being | |
13 | revised. A development snapshot of the manual is available at | |
14 | ftp.red-bean.com as /pub/guile/snapshots/guile-doc-snap.tar.gz. | |
15 | ||
16 | ||
cf78e9e8 JB |
17 | About This Distribution ============================================== |
18 | ||
f89a27fa JB |
19 | Interesting files include: |
20 | - INSTALL, which contains instructions on building and installing Guile. | |
21 | - NEWS, which describes user-visible changes since the last release of Guile. | |
22 | - COPYING, which describes the terms under which you may redistribute | |
23 | Guile, and explains that there is no warranty. | |
24 | ||
49becc4d JB |
25 | Building and installing this distribution gives you: |
26 | guile --- a stand-alone interpreter for Guile, usually installed in | |
cf78e9e8 JB |
27 | /usr/local/bin. With no arguments, this is a simple |
28 | interactive Scheme interpreter. It can also be used as an | |
29 | interpreter for script files; see the NEWS file for details. | |
17f8d40c JB |
30 | guile-config --- a Guile script which provides the information necessary |
31 | to link your programs against the Guile library. | |
14725cbb JB |
32 | guile-snarf --- a script to parse declarations in your C code for |
33 | Scheme-visible C functions, Scheme objects to be used by C code, etc. | |
49becc4d | 34 | libguile.a --- an object library containing the Guile interpreter, |
cf78e9e8 JB |
35 | usually installed in /usr/local/lib. You can use Guile in |
36 | your own programs by linking against this. | |
17f8d40c JB |
37 | libqthreads.a --- an object library containing the QuickThreads |
38 | primitives. If you enabled thread support when you configured | |
39 | Guile, you will need to link your code against this too. | |
14725cbb JB |
40 | <libguile.h>, <guile/gh.h>, <libguile/*.h> --- header files for |
41 | libguile.a, usually installed in /usr/local/include. | |
9a8b5764 TP |
42 | ice-9, ice-9/*.scm --- run-time support for Guile: the module |
43 | system, read-eval-print loop, some R4RS code and other | |
44 | infrastructure. Usually installed in | |
45 | /usr/local/share/guile/<version>. | |
14725cbb JB |
46 | data-rep.info --- An essay on how to write C code that works with |
47 | Guile Scheme values. | |
0196b30a | 48 | |
5c54da76 JB |
49 | The Guile source tree is laid out as follows: |
50 | ||
1325feea | 51 | libguile: |
cf78e9e8 JB |
52 | The Guile Scheme interpreter --- both the object library |
53 | for you to link with your programs, and the executable you can run. | |
1325feea | 54 | ice-9: Guile's module system, initialization code, and other infrastructure. |
17f8d40c JB |
55 | guile-config: |
56 | Source for the guile-config script. | |
9a3c1149 | 57 | qt: A cooperative threads package from the University of Washington, |
cf78e9e8 | 58 | which Guile can use. If you configure Guile with the |
3a629497 JB |
59 | --with-threads flag, you will need to link against the -lqt |
60 | library, found in this directory. Qt is under a separate | |
61 | copyright; see `qt/README' for more details. | |
17f8d40c | 62 | doc: Some preliminary documentation for Guile. The real Guile |
14725cbb | 63 | manual is incomplete, and is currently being revised. |
394a535e MD |
64 | A development snapshot of the manual is available at |
65 | ftp.red-bean.com as /pub/guile/snapshots/guile-doc-snap.tar.gz. | |
e84f2bee JB |
66 | doc/example-smob: Sample code, discussed in the preliminary |
67 | documentation above, for a program that extends Guile with a | |
68 | new data type, and functions that operate on it. | |
1dfe003f | 69 | |
4c8980a2 | 70 | |
c11f9405 JB |
71 | Anonymous CVS Access and FTP snapshots =============================== |
72 | ||
73 | We make the developers' working Guile sources available via anonymous | |
74 | CVS, and by nightly snapshots, accessible via FTP. See the files | |
75 | `ANON-CVS' and `SNAPSHOTS' for details. | |
76 | ||
349d9c1f | 77 | If you would like to receive mail when people commit changes to the |
6ca345f3 JB |
78 | Guile CVS repository, you can subscribe to guile-cvs@sourceware.cygnus.com |
79 | by sending a message to guile-cvs-subscribe@sourceware.cygnus.com. Even | |
3d06534e | 80 | better, you can get daily digests of these commit messages by sending |
6ca345f3 | 81 | a message to guile-cvs-digest-subscribe@sourceware.cygnus.com. |
349d9c1f JB |
82 | |
83 | If you want to subscribe an e-mail address other than the one that | |
84 | appears in your From: header, say foo@bar.com, send a mail note to | |
6ca345f3 | 85 | guile-cvs-subscribe-foo=bar.com@sourceware.cygnus.com. |
349d9c1f | 86 | |
c11f9405 | 87 | |
3c555f81 JB |
88 | Hacking It Yourself ================================================== |
89 | ||
90 | As distributed, Guile needs only an ANSI C compiler and a Unix system | |
91 | to compile. However, Guile's makefiles, configuration scripts, and a | |
92 | few other files are automatically generated, not written by hand. If | |
93 | you want to make changes to the system (which we encourage!) you will | |
94 | find it helpful to have the tools we use to develop Guile. They | |
95 | are the following: | |
96 | ||
ada238b7 | 97 | Autoconf 2.13 --- a system for automatically generating `configure' |
cf78e9e8 JB |
98 | scripts from templates which list the non-portable features a |
99 | program would like to use. Available in | |
ef0615e4 | 100 | "ftp://ftp.gnu.org/pub/gnu/autoconf" |
3c555f81 | 101 | |
ada238b7 | 102 | Automake 1.4 --- a system for automatically generating Makefiles that |
cf78e9e8 JB |
103 | conform to the (rather Byzantine) GNU coding standards. The |
104 | nice thing is that it takes care of hairy targets like 'make | |
105 | dist' and 'make distclean', and automatically generates | |
2b272b1e | 106 | Makefile dependencies. Automake is available in |
ef0615e4 | 107 | "ftp://ftp.gnu.org/pub/gnu/automake" |
3c555f81 | 108 | |
2b272b1e JB |
109 | Before using automake, you may need to copy `threads.m4' and |
110 | `guile.m4' from the top directory of the Guile core disty to | |
111 | `/usr/local/share/aclocal. | |
112 | ||
fc44cdf1 | 113 | libtool 1.3.3 --- a system for managing the zillion hairy options needed |
cf78e9e8 | 114 | on various systems to produce shared libraries. Available in |
fc44cdf1 | 115 | "ftp://ftp.gnu.org/pub/gnu/libtool" |
3c555f81 | 116 | |
05264287 JB |
117 | You are lost in a little maze of automatically generated files, all |
118 | different. | |
cf78e9e8 | 119 | > |
05264287 | 120 | |
3c555f81 | 121 | |
c484bf7f JB |
122 | Obtaining Guile ====================================================== |
123 | ||
124 | The latest official Guile release is available via anonymous FTP from | |
e4445210 | 125 | ftp.gnu.org, as /pub/gnu/guile/guile-1.3.4.tar.gz. |
c484bf7f | 126 | |
e4445210 MD |
127 | Via the web, that's: ftp://ftp.gnu.org/pub/gnu/guile/guile-1.3.4.tar.gz |
128 | For getit, that's: ftp.gnu.org:/pub/gnu/guile/guile-1.3.4.tar.gz | |
c484bf7f | 129 | |
6ca345f3 JB |
130 | The mailing list `guile@sourceware.cygnus.com' carries discussions, |
131 | questions, and often answers, about Guile. To subscribe, send mail to | |
132 | guile-subscribe@sourceware.cygnus.com. Of course, please send bug | |
133 | reports (and fixes!) to bug-guile@gnu.org. Note that one address is | |
134 | @sourceware.cygnus.com, and the other is at @gnu.org. |