Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
GNU Guile
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==References== {{Reflist|30em|refs= <ref name="GNU coding standards">{{cite web|url=https://www.gnu.org/prep/standards/html_node/Source-Language.html|title=GNU coding standards, Which Languages to Use|publisher=GNU Project}}</ref> <ref name="Manual, API Reference">{{cite web|url=https://www.gnu.org/software/guile/manual/html_node/API-Reference.html|title=Guile Manual, API Reference|publisher=GNU Project}}</ref> <ref name="Manual, Guile Modules">{{cite web|url=https://www.gnu.org/software/guile/manual/html_node/Guile-Modules.html|title=Guile Manual, Guile Modules|publisher=GNU Project}}</ref> <ref name="Blandy quote C integration">"To encourage customization, Guile provides extensive interfaces, allowing C code to interact with the Scheme world. C code can freely create, access, and mutate Scheme objects; C [[Subroutine|functions]] may call Scheme functions and vice versa; C code may add new types to the Scheme world and take advantage of Guile's garbage collection… Most of the standard Scheme procedures are implemented by C functions, visible to Guile clients; for example, applications can call the C function <code>scm_cons</code>, which is the underlying implementation of the Scheme procedures <code>[[cons]]</code>." Blandy 1997, pp. 94, 96.</ref> <ref name="About Guile">{{cite web|url=https://www.gnu.org/software/guile/|title=GNU Guile (About Guile)|publisher=GNU Project|quote=Guile is the GNU Ubiquitous Intelligent Language for Extensions, the official extension language for the GNU operating system.}}</ref> <ref name="Applications using Guile">{{cite web |url=https://www.gnu.org/software/guile/#apps-using-guile |title=Applications using Guile |publisher=GNU Project |url-status=live |archive-url=https://web.archive.org/web/20171124105500/https://www.gnu.org/software/guile/#apps-using-guile |archive-date=2017-11-24 }}</ref> <ref name=R7RS>{{cite web |url=https://www.gnu.org/software/guile/manual/html_node/R7RS-Incompatibilities.html |title=R7RS Incompatibilities (Guile Reference Manual) |publisher=GNU Project |access-date=2020-01-20}}</ref> <ref name="Thomas coin name">"The name Guile was first suggested in a Usenet discussion by Lee Thomas." Guile Scheme 1995.</ref> <ref name="Thomas coins name gnu group">{{cite newsgroup|url=https://groups.google.com/g/gnu.misc.discuss/c/0VtEf1fgEJk/m/IMBs2o-ftrgJ|title=The Name of the Rose|author=Lee Thomas|date=1994-11-04|newsgroup=gnu.misc.discuss}}</ref> <ref name="Thomas promotes GUILE name">{{cite web|url=https://groups.google.com/forum/#!search/%22Integrated$20Measurement$20Systems%22$2BGUILE/gnu.misc.discuss/9pD9yVoRYFw/0z7SLYbx8loJ|title=GUILE - two more reasons to prefer it}}</ref> <ref name="GEL:Important Name Change">{{cite web|url=https://groups.google.com/forum/#!msg/comp.lang.scheme/X5GrLVAvGLU/Xk11xCrbzCcJ;context-place=msg/comp.lang.scheme/pa8qtbJHFgA/PsscMKOkvRcJ|title=GEL:Important Name Change}}</ref> <ref name="Manual, Arrays">{{cite web|url=https://www.gnu.org/software/guile/manual/html_node/Arrays.html|title=Guile Manual, Arrays|publisher=GNU Project}}</ref> <ref name="Manual, SLIB">{{cite web|url=https://www.gnu.org/software/guile/manual/html_node/SLIB.html|title=Guile Manual, SLIB|publisher=GNU Project|quote=SLIB is not included in the Guile distribution, but can be installed separately.}}</ref> <ref name="Blandy quote call/cc">"Because Guile allows foreign functions and Scheme functions to call each other freely, a Guile continuation may include both C and Scheme stack frames. For simplicity, Guile's implementation of <code>call/cc</code> copies the entire C stack into the heap; invoking a continuation copies the stack back from the [https://www.gnu.org/software/guile/manual/guile.html#index-delimited-continuations heap] and uses the <code>longjmp</code> function to reactivate it. This implementation has a number of drawbacks...", Blandy 1997, p. 99.</ref> <ref name="Manual, History">{{cite web|url=https://www.gnu.org/software/guile/manual/html_node/History.html|title=Guile Manual, History}}</ref> <ref name="Bader quote SCM">"It's hard to determine just who designed Guile. A large share of the credit surely belongs to Aubrey Jaffer whose excellent Scheme interpreter, SCM, forms the core of the implementation. The module system was designed and built by Miles Bader…" "An Anatomy of Guile, The Interface to Tcl/Tk", 1995</ref> <ref name="Guile Scheme 1995 quote SIOD">"Here is a very, very brief history of this interpreter. I hope that people involved in its past will contribute more to this document. SIOD: George Carrette wrote SIOD, the earliest version. Although most of this code has been rewritten or replaced over time, the [[Garbage collection (computer science)|garbage collector]] from SIOD is still an important part of Guile. SIOD is still actively developed and freely available. It has a very small footprint." Guile Scheme 1995.</ref> <ref name="2010 improvements">{{cite web|url=http://www.advogato.org/person/wingo/diary.html?start=328|title=Older blog entries for wingo (starting at number 328)|first=Andy|last=Wingo|date=16 July 2023 |publisher=Advogato}}</ref> <ref name="Guile NEWS">{{cite web|url=https://www.gnu.org/software/guile/news.html |title=Guile News |publisher=GNU Project |url-status=dead |archive-url=https://web.archive.org/web/20140328123925/http://www.gnu.org/software/guile/news.html |archive-date=2014-03-28 }}</ref> <ref name="An Anatomy of Guile">{{cite web|last=Lord|first=Thomas|title=An Anatomy of Guile The Interface to Tcl/Tk|url=https://www.usenix.org/publications/library/proceedings/tcl95/full_papers/lord.ps|work=Third Annual Tcl/Tk Workshop|publisher=[[Usenix]]|access-date=23 November 2010|location=Toronto, Ontario, Canada|format=[[PostScript]]|date=July 1995}}</ref> <ref name="Manual, Other Languages">{{cite web|url=https://www.gnu.org/software/guile/manual/html_node/Other-Languages.html|title=Guile Manual, Other Languages|publisher=GNU Project|quote=Guile is still fundamentally a Scheme, but it tries to support a wide variety of language building-blocks, so that other languages can be implemented on top of Guile.}}</ref> <ref name="Manual, Compiler Tower">{{cite web|url=https://www.gnu.org/software/guile/manual/html_node/Compiler-Tower.html|title=Guile Manual, Compiler Tower|publisher=GNU Project|quote=Guile defines a tower of languages, starting at Scheme and progressively simplifying down to languages that resemble the VM instruction set.}}</ref> <ref name=guile_2.2>{{cite web |url=https://lwn.net/Articles/717405/ |title=GNU Guile 2.2.0 released |access-date=2020-01-20 |date=2017-03-16}}</ref> <ref name=guile_3.0_news>{{cite web |url=https://www.gnu.org/software/guile/news/gnu-guile-300-released.html |title=GNU Guile 3.0.0 released |date=2020-01-16 |access-date=2020-01-20}}</ref> <ref name=guile_3.0_announce>{{cite web |url=https://lists.gnu.org/archive/html/guile-devel/2020-01/msg00080.html |title=GNU Guile 3.0.0 released |date=2020-01-16 |access-date=2020-01-20}}</ref> <ref name="BT Templeton Elisp implementation">{{cite web|url=http://lists.gnu.org/archive/html/guile-devel/2011-07/msg00054.html|title=Re. Elisp implementation?|publisher=BT Templeton}}</ref> <ref name="Guile Reference Manual Continuations Section">{{cite web|url=https://www.gnu.org/software/guile/manual/guile.html#Continuations|title=Guile Manual, Continuations|publisher=GNU Project}}</ref> <ref name="Guile Reference Manual Conservative GC Section">{{cite web|url=https://www.gnu.org/software/guile/manual/guile.html#Conservative-GC|title=Guile Manual, Conservative GC|publisher=GNU Project}}</ref> }}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)