mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
Mirror of the upstream GNU Guile repository on Savannah.
https://www.gnu.org/software/guile/
initialization procedure. - Delete in, out, err arguments; there are other perfectly good ways to override these when desired. - Delete result argument; this function shouldn't ever return. - Rename init_func argument to main_func, for less confusion. - Delete boot_cmd argument; main_func is more general. -Add 'closure' argument, to help people pass data to main_func without resorting to global variables. - Abort if reentered; don't bother returning an error code. - Call scm_init_standard_ports to set up the default/current standard ports; no need to pass them to scm_start_stack. - Remove code to evaluate the boot_cmd, and start the repl; let the user do something like that in main_func if they want. - Remove code to package up a return value; main_func can do any of that as needed. - Call exit (0), instead of returning. (scm_start_stack): Don't initialize the I/O ports here; that's weird. Delete in, out, err arguments. Move guts to scm_init_standard_ports, scm_stdio_to_port. (scm_init_standard_ports): New function, to set up current and default standard ports. (scm_start_stack, scm_restart_stack): Make these static. * init.h (scm_boot_guile): Adjust declaration. (scm_start_stack, scm_restart_stack): Remove externally visible declarations for these. (enum scm_boot_status): Removed; now scm_boot_guile never returns. |
||
---|---|---|
ice-9 | ||
libguile | ||
qt | ||
.cvsignore | ||
aclocal.m4 | ||
AUTHORS | ||
ChangeLog | ||
config.guess | ||
config.sub | ||
configure | ||
configure.in | ||
COPYING | ||
GUILE-VERSION | ||
HACKING | ||
INSTALL | ||
install-sh | ||
Makefile.in | ||
mdate-sh | ||
mkinstalldirs | ||
NEWS | ||
README | ||
TODO |
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. The Guile snapshots are available via anonymous FTP from alpha.gnu.ai.mit.edu, as /gnu/guile-snap.tar.gz. Via the web, that's: ftp://alpha.gnu.ai.mit.edu/gnu/guile-snap.tar.gz For getit, that's: alpha.gnu.ai.mit.edu:/gnu/guile-snap.tar.gz Contents Of This Distribution ======================================== 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. 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. 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. Authors And Contributors ============================================= 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. Aubrey Jaffer seriously tuned performance and added features. He designed many hairy parts of the tag system and evaluator. 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. Gary Houston wrote the Unix system call support, including the socket support. Anthony Green wrote the original version of `threads' the interface between Guile and qt. Mikael Djurfeldt designed and implemented: * the source-level debugger, * 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. Gary Houston did a lot of work on the error handling code.