# GNU Guile

> Scheme implementation intended especially for extensions

**Wikidata**: [Q1486208](https://www.wikidata.org/wiki/Q1486208)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/GNU_Guile)  
**Source**: https://4ort.xyz/entity/gnu-guile

## Summary
GNU Guile is a Scheme implementation designed specifically as an extension language for applications. It is part of the GNU Project and serves as a scripting language interpreter that can be embedded in other programs.

## Key Facts
- Inception: 1993
- Developer: GNU Project
- Latest stable version: 3.0.0 (released January 15, 2020)
- License: GNU Lesser General Public License v3.0 or later
- Operating systems: BSD, macOS, Microsoft Windows (via Cygwin), Unix-like systems
- Website: https://www.gnu.org/software/guile/
- Aliases: Guile, GNU Ubiquitous Intelligent Language for Extensions, GNU Extension Language, GEL, CTAX
- Part of: GNU Project
- Implementation of: Scheme programming language

## FAQs
### Q: What is GNU Guile used for?
A: GNU Guile is primarily used as an extension language that allows developers to embed scripting capabilities into their applications. It's commonly used to make programs extensible and customizable through Scheme code.

### Q: What programming language is Guile based on?
A: Guile is based on Scheme, a functional programming language that is a dialect of Lisp. It implements the Scheme standard and provides a Scheme interpreter.

### Q: Is GNU Guile free software?
A: Yes, GNU Guile is free software released under the GNU Lesser General Public License version 3.0 or later, making it freely available for use, modification, and distribution.

## Why It Matters
GNU Guile matters because it provides a standardized way to add scripting and extension capabilities to software applications. As part of the GNU Project, it embodies the free software philosophy while solving a practical problem: how to make programs extensible without requiring users to recompile or modify the core codebase. Guile's Scheme-based design offers a powerful yet lightweight scripting solution that can be embedded in applications ranging from text editors to game engines. Its cross-platform compatibility and active development ensure that developers can rely on it as a stable foundation for building extensible software. The project has maintained relevance for decades by balancing simplicity with powerful features like first-class continuations and hygienic macros, making it a valuable tool in the software development ecosystem.

## Notable For
- Being the official extension language of the GNU Project
- Providing a Scheme implementation specifically optimized for embedding
- Supporting multiple stable branches (2.0.x, 2.2.x, 3.0.x) for different use cases
- Offering a complete development environment including compiler, debugger, and profiler
- Maintaining backward compatibility while evolving the language features

## Body
### Technical Architecture
GNU Guile implements a virtual machine (VM) that executes Scheme code, providing both an interpreter and a compiler. The system includes a read-eval-print loop (REPL) for interactive development and supports both interpreted and compiled execution modes. Guile's VM is designed to be embeddable, allowing applications to load and execute Scheme code at runtime.

### Version History
The project has maintained multiple stable branches to accommodate different user needs. Version 2.0.x represents the long-term stable branch, while 2.2.x introduced new features and improvements. Version 3.0.0, released in January 2020, represents the current stable release with modern Scheme features and performance optimizations.

### Integration Capabilities
Guile can be integrated into applications written in C, C++, and other languages through its C API. This allows developers to expose application-specific functions and data structures to Scheme code, enabling powerful customization and extension capabilities. The project includes tools for generating bindings automatically.

### Development Tools
The Guile ecosystem includes a comprehensive set of development tools including a debugger, profiler, and documentation generator. The system supports modular development through its module system, allowing code to be organized into reusable components. Guile also provides libraries for common tasks like networking, file I/O, and GUI development.

### Community and Support
GNU Guile maintains active development with contributions from multiple maintainers including Marius Vollmer, Andy Wingo, and Ludovic Courtès. The project provides support through mailing lists (guile-user, guile-devel, bug-guile), IRC channel (#guile on Libera Chat), and issue tracking on debbugs.gnu.org. Source code is available through the GNU Savannah repository.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "GNU Guile",
  "description": "Scheme implementation intended especially for extensions",
  "url": "https://www.gnu.org/software/guile/",
  "sameAs": [
    "https://en.wikipedia.org/wiki/GNU_Guile",
    "https://www.wikidata.org/wiki/Q126897168"
  ],
  "additionalType": "SoftwareApplication"
}

## References

1. Free Software Directory
2. a brief history of guile
3. [Source](https://www.emacswiki.org/emacs/MariusVollmer)
4. [GNU's programming and extension language](https://www.gnu.org/software/guile/)
5. [Source](https://git.savannah.gnu.org/gitweb/?p=guile.git;a=blob;f=LICENSE)
6. [GNU Guile 2.0.9 released. 2013](https://lists.gnu.org/archive/html/guile-devel/2013-04/msg00133.html)
7. [GNU Guile 2.0.12 released](https://lists.gnu.org/archive/html/info-gnu/2016-07/msg00007.html)
8. [GNU Guile 2.0.13 released [security fixes]](http://savannah.gnu.org/forum/forum.php?forum_id=8705)
9. [GNU Guile 2.2.3 released. 2017](https://lists.gnu.org/archive/html/guile-devel/2017-12/msg00000.html)
10. [Source](https://www.gnu.org/software/guile/news/gnu-guile-2.0.14-released.html)
11. [GNU Guile 2.2.0 released](https://lists.gnu.org/archive/html/guile-devel/2017-03/msg00095.html)
12. [GNU Guile 2.2.4 released. 2018](https://lists.gnu.org/archive/html/info-gnu/2018-07/msg00000.html)
13. [GNU Guile 2.2.5 released. 2019](https://lists.gnu.org/archive/html/info-gnu/2019-06/msg00006.html)
14. [GNU Guile 2.2.6 released. 2019](https://lists.gnu.org/archive/html/info-gnu/2019-06/msg00012.html)
15. [GNU Guile 3.0.0 released. 2020](https://lwn.net/Articles/809825/)
16. [GNU Guile 3.0.1 released. 2020](https://www.gnu.org/software/guile/news/gnu-guile-301-released.html)
17. [GNU Guile 3.0.2 released. 2020](https://www.gnu.org/software/guile/news/gnu-guile-302-released.html)
18. [GNU Guile 2.2.7 released. 2020](https://lists.gnu.org/archive/html/info-gnu/2020-03/msg00004.html)
19. [GNU Guile 3.0.3 released. 2020](https://www.gnu.org/software/guile/news/gnu-guile-303-released.html)
20. [GNU Guile 3.0.3 released. 2020](https://lists.gnu.org/archive/html/guile-devel/2020-06/msg00008.html)
21. [GNU Guile 3.0.4 released. 2020](https://www.gnu.org/software/guile/news/gnu-guile-304-released.html)
22. [GNU Guile 3.0.4 released. 2020](https://lists.gnu.org/archive/html/guile-devel/2020-06/msg00019.html)
23. [GNU Guile 3.0.5 released. 2021](https://lists.gnu.org/archive/html/info-gnu/2021-01/msg00005.html)
24. [GNU Guile 1.8.8 released. 2010](https://lists.gnu.org/archive/html/info-gnu/2010-12/msg00013.html)
25. [Guile 1.8.9 release. 2021](https://lists.gnu.org/archive/html/guile-devel/2021-01/msg00006.html)
26. [GNU Guile 1.8.7 released. 2009](https://lists.gnu.org/archive/html/info-gnu/2009-07/msg00006.html)
27. [GNU Guile 1.8.6 released. 2008](https://lists.gnu.org/archive/html/info-gnu/2008-12/msg00005.html)
28. [GNU Guile 1.8.5 released. 2008](https://lists.gnu.org/archive/html/info-gnu/2008-05/msg00004.html)
29. [GNU Guile 1.8.4 released. 2008](https://lists.gnu.org/archive/html/info-gnu/2008-02/msg00011.html)
30. [GNU Guile 1.8.3 released. 2007](https://lists.gnu.org/archive/html/info-gnu/2007-10/msg00003.html)
31. [GNU Guile 1.8.2 released. 2007](https://lists.gnu.org/archive/html/info-gnu/2007-07/msg00012.html)
32. [Guile 1.8.1 has been released. 2006](https://lists.gnu.org/archive/html/info-gnu/2006-10/msg00003.html)
33. [Guile 1.8.0 has been released. 2006](https://lists.gnu.org/archive/html/info-gnu/2006-02/msg00006.html)
34. [Guile 1.6.8 has been released. 2006](https://lists.gnu.org/archive/html/info-gnu/2006-05/msg00013.html)
35. [GNU Guile 3.0.6 released. 2021](https://www.gnu.org/software/guile/news/gnu-guile-306-released.html)
36. [GNU Guile 3.0.7 released. 2021](https://www.gnu.org/software/guile/news/gnu-guile-307-released.html)
37. [GNU Guile 3.0.8 released. 2022](https://www.gnu.org/software/guile/news/gnu-guile-308-released.html)
38. [GNU Guile 3.0.8 released. 2022](https://lists.gnu.org/archive/html/info-gnu/2022-02/msg00010.html)
39. [GNU Guile 3.0.9 released. 2023](https://lists.gnu.org/archive/html/info-gnu/2023-01/msg00010.html)
40. [GNU Guile 3.0.10 released. 2024](https://lists.gnu.org/archive/html/info-gnu/2024-06/msg00008.html)
41. [GNU Guile 3.0.11 released](https://lists.gnu.org/archive/html/info-gnu/2025-12/msg00002.html)
42. Guile: An Interpreter Core for Complete Applications. Handbook of Programming Languages
43. Freebase Data Dumps. 2013
44. [Source](https://www.gnu.org/software/guile/contribute/)
45. [Libraries](https://www.gnu.org/software/guile/libraries/#gui)
46. [Source](https://lists.gnu.org/mailman/listinfo/guile-user)
47. [Source](https://lists.gnu.org/mailman/listinfo/guile-devel)
48. [Source](https://lists.gnu.org/mailman/listinfo/bug-guile)