Commit | Line | Data |
---|---|---|
c484bf7f | 1 | This is a nightly snapshot of Guile, a portable, embeddable Scheme |
9518bec3 JB |
2 | implementation written in C. Guile provides a machine independent |
3 | execution platform that can be linked in as a library when building | |
4 | extensible programs. | |
7fcc90c4 | 5 | |
c484bf7f JB |
6 | About Snapshots ====================================================== |
7 | ||
8 | Each night, we make the current Guile sources available via anonymous | |
9 | FTP. Please keep in mind that these sources are strictly | |
10 | experimental; they will usually not be well-tested, and may not even | |
11 | compile on some systems. They may contain interfaces which will | |
12 | change. They will usually not be of sufficient quality for use by | |
13 | people not comfortable hacking the innards of Guile. Caveat! | |
14 | ||
15 | However, we're providing them anyway for several reasons. We'd like | |
16 | to encourage people to get involved in developing Guile. People | |
17 | willing to use the bleeding edge of development can get earlier access | |
18 | to new, experimental features. Patches submitted relative to recent | |
19 | snapshots will be easier for us to evaluate and install, since the | |
20 | patch's original sources will be closer to what we're working with. | |
21 | And it allows us to start testing features earlier. | |
22 | ||
23 | Nightly snapshots of the Guile development sources are available via | |
24 | anonymous FTP from ftp.red-bean.com, as /pub/guile/guile-core-snap.tar.gz. | |
25 | ||
26 | Via the web, that's: ftp://ftp.red-bean.com/pub/guile/guile-core-snap.tar.gz | |
27 | For getit, that's: ftp.red-bean.com:/pub/guile/guile-core-snap.tar.gz | |
28 | ||
29 | ||
9518bec3 | 30 | Please send bug reports to bug-guile@prep.ai.mit.edu. |
7fcc90c4 | 31 | |
cf78e9e8 JB |
32 | About This Distribution ============================================== |
33 | ||
49becc4d JB |
34 | Building and installing this distribution gives you: |
35 | guile --- a stand-alone interpreter for Guile, usually installed in | |
cf78e9e8 JB |
36 | /usr/local/bin. With no arguments, this is a simple |
37 | interactive Scheme interpreter. It can also be used as an | |
38 | interpreter for script files; see the NEWS file for details. | |
49becc4d | 39 | libguile.a --- an object library containing the Guile interpreter, |
cf78e9e8 JB |
40 | usually installed in /usr/local/lib. You can use Guile in |
41 | your own programs by linking against this. | |
1dfe003f JB |
42 | libqt.a --- an object library containing the QuickThreads primitives. |
43 | If you enabled thread support when you configured Guile, you | |
44 | will need to link your code against this too. | |
49becc4d | 45 | <libguile.h>, <libguile/*.h> --- header files for libguile.a, usually |
cf78e9e8 | 46 | installed in /usr/local/include. |
0196b30a | 47 | |
5c54da76 JB |
48 | |
49 | Interesting files include: | |
50 | - INSTALL, which contains instructions on building and installing Guile. | |
51 | - NEWS, which describes user-visible changes since the last release of Guile. | |
52 | - COPYING, which describes the terms under which you may redistribute | |
53 | Guile, and explains that there is no warranty. | |
54 | ||
55 | The Guile source tree is laid out as follows: | |
56 | ||
1325feea | 57 | libguile: |
cf78e9e8 JB |
58 | The Guile Scheme interpreter --- both the object library |
59 | for you to link with your programs, and the executable you can run. | |
1325feea | 60 | ice-9: Guile's module system, initialization code, and other infrastructure. |
0682f7ab | 61 | |
cf78e9e8 JB |
62 | qt: A cooperative threads package from Washington University, |
63 | which Guile can use. If you configure Guile with the | |
3a629497 JB |
64 | --with-threads flag, you will need to link against the -lqt |
65 | library, found in this directory. Qt is under a separate | |
66 | copyright; see `qt/README' for more details. | |
ee81f9ca | 67 | |
1dfe003f JB |
68 | (The present release doesn't include any documentation; the Guile |
69 | manual is incomplete, and is currently being revised.) | |
70 | ||
4c8980a2 | 71 | |
3c555f81 JB |
72 | Hacking It Yourself ================================================== |
73 | ||
74 | As distributed, Guile needs only an ANSI C compiler and a Unix system | |
75 | to compile. However, Guile's makefiles, configuration scripts, and a | |
76 | few other files are automatically generated, not written by hand. If | |
77 | you want to make changes to the system (which we encourage!) you will | |
78 | find it helpful to have the tools we use to develop Guile. They | |
79 | are the following: | |
80 | ||
dec4cca9 | 81 | Autoconf 2.12 --- a system for automatically generating `configure' |
cf78e9e8 JB |
82 | scripts from templates which list the non-portable features a |
83 | program would like to use. Available in | |
84 | "ftp://prep.ai.mit.edu/pub/gnu". | |
3c555f81 | 85 | |
3628c737 | 86 | Automake 1.1p --- a system for automatically generating Makefiles that |
cf78e9e8 JB |
87 | conform to the (rather Byzantine) GNU coding standards. The |
88 | nice thing is that it takes care of hairy targets like 'make | |
89 | dist' and 'make distclean', and automatically generates | |
2b272b1e | 90 | Makefile dependencies. Automake is available in |
cf78e9e8 | 91 | "ftp://ftp.cygnus.com/pub/tromey". |
3c555f81 | 92 | |
2b272b1e JB |
93 | Before using automake, you may need to copy `threads.m4' and |
94 | `guile.m4' from the top directory of the Guile core disty to | |
95 | `/usr/local/share/aclocal. | |
96 | ||
c7bb9a97 | 97 | libtool 0.9h --- a system for managing the zillion hairy options needed |
cf78e9e8 JB |
98 | on various systems to produce shared libraries. Available in |
99 | "ftp://alpha.gnu.ai.mit.edu/gnu". | |
3c555f81 | 100 | |
05264287 JB |
101 | You are lost in a little maze of automatically generated files, all |
102 | different. | |
cf78e9e8 | 103 | > |
05264287 | 104 | |
3c555f81 | 105 | |
c484bf7f JB |
106 | Obtaining Guile ====================================================== |
107 | ||
108 | The latest official Guile release is available via anonymous FTP from | |
109 | prep.ai.mit.edu, as /pub/gnu/guile-1.2.tar.gz. | |
110 | ||
111 | Via the web, that's: ftp://prep.ai.mit.edu/pub/gnu/guile-1.2.tar.gz | |
112 | For getit, that's: prep.ai.mit.edu:/pub/gnu/guile-1.2.tar.gz | |
113 | ||
114 | The mailing list `guile@cygnus.com' carries discussions, questions, | |
115 | and often answers, about Guile. To subscribe, send mail to | |
116 | guile-request@cygnus.com. Of course, please send bug reports (and | |
117 | fixes!) to bug-guile@prep.ai.mit.edu. | |
118 | ||
119 | ||
9518bec3 JB |
120 | Authors And Contributors ============================================= |
121 | ||
01cf3840 JB |
122 | Many people have generously contributed to Guile. However, any errors |
123 | are the responsibility of the primary Guile maintainer, Jim Blandy. | |
9518bec3 JB |
124 | |
125 | Mikael Djurfeldt designed and implemented: | |
01cf3840 JB |
126 | * the source-level debugging support (although the debugger's user |
127 | interface is not yet complete) | |
2a786759 JB |
128 | * stack overflow detection, |
129 | * the GDB patches to support debugging mixed Scheme/C code, | |
9518bec3 | 130 | * the original implementation of weak hash tables, |
c5ac623b JB |
131 | * enhancements to the `threads' interface (based on Anthony Green's |
132 | work), and | |
2a786759 JB |
133 | * detection of circular references during printing. |
134 | ||
3a629497 | 135 | Mark Galassi contributed the Guile high-level functions (gh_*), and |
01cf3840 JB |
136 | wrote the guile-programmer and guile-user manuals. (These are in the |
137 | process of revision.) | |
138 | ||
3a629497 | 139 | Anthony Green wrote the original version of `threads', the interface |
01cf3840 JB |
140 | between Guile and qt. |
141 | ||
c5ac623b JB |
142 | Gary Houston wrote much of the Unix system call support, including the |
143 | socket support, and did a lot of work on the error handling code. | |
01cf3840 JB |
144 | |
145 | Tom Lord librarified SCM, yielding Guile. He wrote Guile's operating | |
146 | system, Ice-9, and connected Guile to Tcl/Tk and the `rx' regular | |
147 | expression matcher. | |
148 | ||
149 | Aubrey Jaffer seriously tuned performance and added features. He | |
150 | designed many hairy but beautiful parts of the tag system and | |
151 | evaluator. | |
152 | ||
153 | George Carrette wrote SIOD, a stand-alone scheme interpreter. | |
154 | Although most of this code as been rewritten or replaced over time, | |
155 | the garbage collector from SIOD is still an important part of Guile. |