GNU Guile

GNU Guile
FamilyLisp
Designed byAubrey Jaffer, Tom Lord, Miles Bader
DeveloperGNU Project
First appeared1993; 31 years ago (1993)[1]
Stable release
3.0.10[2] / 24 June 2024; 4 months ago (2024-06-24)[2]
PlatformIA-32, x86-64, AArch64, armel, armhf, mips, mips64el, mipsel, ppc64el, s390x
OSLinux, BSD, Windows (through MinGW or Cygwin)
LicenseLGPL-3.0-or-later
Filename extensions.scm .go (Guile object)
Websitegnu.org/software/guile
Influenced by
Lisp, Scheme, SCM

GNU Ubiquitous Intelligent Language for Extensions[3] (GNU Guile) is the preferred extension language system for the GNU Project[4] and features an implementation of the programming language Scheme. Its first version was released in 1993.[1] In addition to large parts of Scheme standards, Guile Scheme includes modularized extensions for many different programming tasks.[5][6]

For extending programs, Guile offers libguile which allows the language to be embedded in other programs, and integrated closely through the C language application programming interface (API); similarly, new data types and subroutines defined through the C API can be made available as extensions to Guile.[7]

Guile is used in many programs under the GNU project umbrella (GDB, Make, Guix, GNU TeXmacs, GnuCash, LilyPond, Lepton-EDA...)[8] but it also sees use outside of that, for example in Google's schism.

  1. ^ a b Blandy 1997, p. 102.
  2. ^ a b "GNU Guile 3.0.10 released". gnu.org.
  3. ^ Cite error: The named reference About Guile was invoked but never defined (see the help page).
  4. ^ Cite error: The named reference GNU coding standards was invoked but never defined (see the help page).
  5. ^ Cite error: The named reference Manual, API Reference was invoked but never defined (see the help page).
  6. ^ Cite error: The named reference Manual, Guile Modules was invoked but never defined (see the help page).
  7. ^ Cite error: The named reference Blandy quote C integration was invoked but never defined (see the help page).
  8. ^ Cite error: The named reference Applications using Guile was invoked but never defined (see the help page).