GUILE(1)
π GUILE(1) β the GNU Guile era π
okay bestie, sit DOWN, because we're talking about guile, the GNU Project Extension Language, and honestly? she's iconic. this is the page for GNU Guile 3.0, and it's giving "ancient scroll but make it slay." πβ¨
πΈ NAME πΈ
guile β The GNU Project Extension Language
β¨ SYNOPSIS β¨
guile [-L DIRECTORY] [-l FILE] [-e FUNCTION] [\] [-c EXPR] [-s SCRIPT]
[--] [SCRIPT [ARGs for SCRIPT]]
and like, that's just the most useful options, bestie β the rest of them are down below, we get to ALL of them, no skipping, we're thorough in this house. π
π¦ DESCRIPTION π¦
GNU Guile is an implementation of the Scheme programming language. periodt. but she's not just any Scheme β she extends the R5RS and R6RS language standards, adding all the extra features you actually need for real-world use. the standards said "here's a foundation" and Guile said "and I'm gonna build a whole house on it." π
Guile works well for interactive use, basic scripting, and extension of larger applications β and also for stand-alone Scheme application development. like, she does it ALL. main character energy fr fr. π
The guile executable itself is a stand-alone interactive compiler and run-time for Scheme programs, both for interactive use and for executing Scheme scripts or programs. she's self-sufficient, she doesn't need anybody. π«Ά
this manual page provides only brief instruction in invokingguilefrom the command line. for the full lore, please consult the Guile info documentation β typeinfo "(guile)Invoking Guile"at a command prompt. iykyk. π
π OPTIONS π
-L DIRECTORYβ addsDIRECTORYto the front of Guile's module load path. the directories you give are searched in the order you gave them on the command line, and they come before any directories in theGUILE_LOAD_PATHenvironment variable. important caveat bestie: paths added here are not in effect during execution of the user's~/.guilefile. π-C DIRECTORYβ like-L, but it adjusts the load path for compiled files. same energy, different target. π-l FILEβ loads Scheme source code fromFILE, then keeps processing the command line. she's not done talking yet. β¨-e FUNCTIONβ after readingSCRIPT, appliesFUNCTIONto the command-line arguments. note thatFUNCTIONis evaluated, so like, for example,(@ (my-module) my-proc)is valid here. fancy, right? π\β the "meta switch", used to work around limitations in#!scripts. see "The Meta Switch" in the texinfo documentation for more details. yes, that's a literal backslash. she's mysterious. π¦--β stop argument processing, and startguilein interactive mode. that's it, that's the whole vibe. β-c EXPRβ stop argument processing, and evaluateEXPRas a Scheme expression. π₯-s SCRIPT-FILEβ loads Scheme source fromSCRIPT-FILEand executes it as a script. but ngl, in many cases it is not necessary to use-s; you can just invokeguilesimply asguile SCRIPT-FILE ARG.... she's flexible like that. π-dsβ carries out-s SCRIPTat this point in the option sequence. note that this argument must be used in conjunction with-s. they're a package deal, bestie. π«Ά--debugβ startsguilewith the debugging VM. by default, debugging is on whenguileis invoked interactively; it's off otherwise. π--no-debugβ startsguilewithout the debugging VM, even ifguileis being run interactively. sometimes you just wanna be left alone. π--auto-compileβ compiles source files automatically. this is the default behavior, so like, she's already doing this. π--fresh-auto-compileβ treats the auto-compilation cache as invalid, forcing recompilation. out with the old, in with the fresh. π§--no-auto-compileβ disables automatic source file compilation. no compiling today, thank you. π--language LANGβ for the remainder of the command line arguments, assume that files mentioned with-land expressions passed with-care written inLANG, which must be the name of one of the languages supported by the compiler. when run interactively, it sets the REPL's language toLANG. bilingual queen. π--listen[=P]β listen on a port or socket for remote REPL connections. see the manual for more details. remote, but make it cozy. π°οΈ--use-srfi=N,M...β loads SRFI extensionsN,M, etc. for example,--use-srfi=8,13. look at her, loading them in bulk. π¦--r6rs,--r7rsβ adapts Guile's initial environment to better support R6RS or R7RS. see "R6RS Incompatibilities" and "R7RS Incompatibilities" in the info pages for some caveats β so like, read those before you get surprised, bestie. β οΈ-x EXTENSIONβ addsEXTENSIONto theguileload extension list. β¨-h,--helpβ describes command-line options and exits. she's helping! π«Ά-v,--versionβ displaysguileversion and exits. π-qβ in interactive mode, suppresses loading the user's initialization file,~/.guile. sometimes you need a fresh start, no baggage. πΈ
π ENVIRONMENT π
GUILE_LOAD_PATHβ if$GUILE_LOAD_PATHis set beforeguileis started, its value is used to augment the path to search for Scheme files when loading. it should be a colon-separated list of directories, which will be prefixed to the default%load-path. ποΈGUILE_LOAD_COMPILED_PATHβ if$GUILE_LOAD_COMPILED_PATHis set beforeguileis started, its value is used to augment the path to search for compiled Scheme files (.gofiles) when loading. it should be a colon-separated list of directories, which will be prefixed to the default%load-compiled-path. ποΈβ¨
π§ FILES π§
~/.guileβ a Guile script that is executed before any other processing occurs. for example, the following.guileactivates guile's readline interface:
(use-modules (ice-9 readline))
(activate-readline)
look at her, setting up her little environment before anything else even happens. self-care. π
π SEE ALSO π
The full documentation for Guile is maintained as a Texinfo manual. if the info and guile programs are properly installed at your site, the command
info guile
should give you access to the complete manual. go read it, bestie, it's a whole world. π
http://www.schemers.org provides a general introduction to the Scheme language. π
π REPORTING BUGS π
There is a mailing list, bug-guile@gnu.org, for reporting Guile bugs and fixes. π¬
but before reporting something as a bug, please try to be sure that it really is a bug, and not a misunderstanding or a deliberate feature. we ask you to read the section ``Reporting Bugs'' in the Guile reference manual (or Info system) for hints on how and when to report bugs. also, include the version number of the Guile you are running in every bug report that you send in. π
Bugs tend actually to get fixed if they can be isolated, so it is in your interest to report them in such a way that they can be easily reproduced. like, help them help you. it's giving mutual aid. π«Ά
π COPYING π
Copyright (C) 2010, 2011, 2025 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation.
π AUTHORS π
Robert Merkel <rgmerk@mira.net> wrote this manpage. Rob Browning <rlb@defaultvalue.org> has added to it. π«Ά
guile is GNU software. Guile is originally based on Aubrey Jaffer's SCM interpreter, and is the work of many individuals. a whole community, a whole legacy. π
and that's the whole page, bestie!! GNU Guile 3.0, from the GNU project, dated 2017-05-22 πβ¨ go forth and write some Scheme, you absolute icon. ππ¦π
π¦ where this page comes from
- ubuntu resolute: guile-3.0 3.0.11-2 Β· LicenseRef-public-domain
- ubuntu stonking: guile-3.0 3.0.11-2 Β· LicenseRef-public-domain
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms