Guile stands for Gnu's Ubiquitous Interactive Language for Extension.
Guile is the "official" extension language of the GNU Project, although, as of 2006, it has been used for only a handful of major projects. Its name was coined in a Usenet discussion by Lee Thomas. The idea is that "the developer implements critical algorithms and data structures in C or C++ and exports the functions and types for use by interpreted code. The application becomes a library of primitives orchestrated by the interpreter, combining the efficiency of compiled code with the flexibility of interpretation."
The close interaction between Guile and the application comes at a cost. Scheme requires implementations to optimize tail recursion because of Scheme's heavy use of recursion, but most techniques interfere with interoperation; Guile compromises by optimizing tail calls within purely Scheme functions and programs, but not when foreign functions enter the picture.
Implementation of call/cc, another requirement of the Scheme standard, is not entirely satisfactory — to handle continuations in this environment it must copy the entire execution stack into the heap, and back.[8] Because foreign code may have pointers to Scheme objects, Guile's garbage collector is the "conservative" variety which must periodically touch all of allocated memory.
Guile had its origin in a heated discussion (later dubbed "the Tcl Wars") started by Richard Stallman, who stated that Tcl was underpowered for application scripting; he proposed Scheme as the preferred language for extending GNU applications and eventually launched the Guile project. Because an appropriate Scheme interpreter did not exist at that time, Guile was developed to fill the niche. Tom Lord (later the developer of GNU arch) was heavily involved in the development of Guile while employed by Cygnus Solutions (later acquired by Red Hat). Its earlier versions were forked from SIOD ("Scheme In One Day") and the SCM interpreter, before 1995. After its initial release, development languished for many years, but 2009-10 saw major performance improvements.
One of the goals of Guile is to allow other languages to be translated into Scheme and thence into portable byte-code; thus Guile would effectively be a language-neutral runtime environment. This goal has not been fulfilled yet, though various attempts have been made: a dialect of Scheme essentially differing only in its C-like syntax; a translation of Emacs Lisp; a Tcl converter motivated by TkWWW; and something roughly resembling the Logo programming language.
Guile Scheme supports XML, XPath, and XSLT in the forms of SXML, SXPath and SXSLT, respectively. The S-expression-based XML processing is provided by guile-lib.
Guile programs can use facilities from SLIB, the portable Scheme library.
Programs using Guile
* AisleRiot - part of the GNOME Games package.
* AutoGen
* gEDA
* GNU Anubis
* GnuCash
* Denemo
* GNU LilyPond
* GNU MDK
* GNU Robots
* GNU Serveez
* GNU TeXmacs
* GnoTime
* Liquid War 6
* mcron — a backwards compatible replacement for Vixie cron written in Guile
* OpenCog
* Scwm
* Skribilo
* Snd (software)
* TkWWW — defunct web browser; was a Free GNU browser written & extensible in Tk.
The Tcl War.In late September, 1994, Richard Stallman of the Free Software Foundation posted an article to
comp.lang.tcl
and several other newsgroups titled Why you should not use Tcl. Predictably, a flamewar ensued, which lasted in one form or another for almost a month (until it was pre-empted by the GNU project's announcement of plans for its own extension language, later dubbed GUILE).Like most flamewars, there was much heat and little light. However, there was some light, and as the maintainer of the Tcl bibliography (which attempts to be very thorough), I took it upon myself to archive the interesting posts, partly to give the bibliography entry something to point at, and also to provide a balanced perspective: it seemed likely, even at the beginning, that the GNU project would archive Stallman's original article and redistribute it without the many reasonable rebuttals which appeared.
Although I tried to take a neutral perspective, and saved articles espousing diverse points of view, this selection unavoidably reflects my own prejudices. Included are a few articles which contain nothing but a snappy comeback. I missed a few important articles, such as one by Bill Janssen which started an entire lengthy subthread. And naturally, all of my own posts are included.
- Messages sorted by: [ date ][ subject ][ author ]
- Other mail archives: GUILE
Starting: Sun 25 Sep 1994 - 06:14:14 CST
Ending: Tue, 18 Oct 1994 01:02:03 GMT
Messages: 68
- Why you should not use Tcl Richard Stallman
- Re: Why you should not use Tcl Barry Merriman
- Re: Why you should not use Tcl Dan Connolly
- Re: Why you should not use Tcl Ron Natalie
- Re: Why you should not use Tcl Dirk Grunwald
- Re: Why you should not use Tcl Robert DeLine
- Re: Why you should not use Tcl Drew Justin Asson
- Re: Why you should not use Tcl Rob Savoye
- Re: Why you should not use Tcl Thomas Werthmann-Auzinger
- Re: Why you should not use Tcl John Ousterhout
- Re: Why you should not use Tcl Peter da Silva
- Re: Why you should not use Tcl Wayne Throop
- Re: Why you should not use Tcl Wayne Throop
- Re: Why you should not use Tcl Eduardo Pelegri-Llopart
- Re: Why you should not use Tcl Robert DeLine
- Re: Why you should not use Tcl Mumit Khan
- Re: Why you should not use Tcl Peter da Silva
- Re: Why you should not use Tcl Wayne Throop
- Re: Why you should not use Tcl T. William Wells
- Re: Why you should not use Tcl Wayne Throop
- Re: Why you should not use Tcl Mark Harrison
- Re: Why you should not use Tcl George M. Sipe
- Re: Why you should not use Tcl Wayne Throop
- Re: Why you should not use Tcl Sharon Hopkins
- Re: Why you should not use Tcl Wayne Throop
- Re: Why you should not use Tcl Tom Christiansen
- Re: Why you should not use Tcl Tim Bunce
- Re: Why you should not use Tcl Matthias Neeracher
- Re: Why you should not use Tcl Wayne Throop
- Re: Why you should not use Tcl Glenn Vanderburg
- Re: Why you should not use Tcl Tom Christiansen
- Re: Why you should not use Tcl Wayne Throop
- Re: Why you should not use Tcl Jeff Dalton
- Re: Why you should not use Tcl Barry Merriman
- Re: Why you should not use Tcl Tim Pierce
- Re: Why you should not use Tcl Barry Merriman
- Re: Why you should not use Tcl Glenn Vanderburg
- Re: Comments in Tcl (Was: Why you should not use Tcl) Peter da Silva
- Comments on "Why you should not use Tcl" Adam Sah
- Re: Look into libscheme - was Re: Why you should not use Tcl Tom Christiansen
- Tcl has (has not) got arrays ?!?!?! Tom Lord
- Critical review of Stk [Was: Why you should not use Tcl] Dan Connolly
- Re: extensibility (was: Why you should not use Tcl) Ian Moor
- Re: Tcl/Lisp/Python: A "User" point of view John Ousterhout
- Integration of libscheme and Tcl (announce) Kathi Fisler
- Re: An alternative to Tcl, python, etc... Mario J. Silva
- Re: Why Tcl is a Bad Thing bruce@liverpool.ac.uk
- Re: Why Tcl is a Bad Thing Thomas Funke
- Re: Why Tcl is a Bad Thing Brent Welch
- Re: Why Tcl is a Bad Thing Glenn Vanderburg
- Re: Why Tcl is a Bad Thing Niels P. Mayer
- Re: Why Tcl is a Bad Thing Wayne A. Christopher
- Re: Why Tcl is a Bad Thing Larry W. Virden
- Re: Why Tcl is a Bad Thing Larry W. Virden
- Re: Why Tcl is a Bad Thing Robert Sanders
- Re: Why Tcl is a Bad Thing Tom Tromey
- Re: Why Tcl is a Bad Thing Robert Withrow
- Re: Why Tcl is a Bad Thing Peter da Silva
- Re: Why Tcl is a Bad Thing Steven D. Majewski
- Tcl does not support linked lists- technical commentary. Adam Sah
- linked lists in Tcl, part II. Adam Sah
Last message date: Tue, 18 Oct 1994 01:02:03 GMT
Archived on: Fri Feb 10 1995 - 18:04:38 CST
- Messages sorted by: [ date ][ subject ][ author ]
- Other mail archives: GUILE
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog:
0 comments:
Post a Comment