GUILE(1)

πŸ“¦
version 3.0.11 Β· 2 versions
, in epel 10

πŸ’– 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 invoking guile from the command line. for the full lore, please consult the Guile info documentation β€” type info "(guile)Invoking Guile" at a command prompt. iykyk. πŸ“–

🌈 OPTIONS 🌈

  • -L DIRECTORY β€” adds DIRECTORY to 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 the GUILE_LOAD_PATH environment variable. important caveat bestie: paths added here are not in effect during execution of the user's ~/.guile file. πŸ™ˆ
  • -C DIRECTORY β€” like -L, but it adjusts the load path for compiled files. same energy, different target. πŸ’…
  • -l FILE β€” loads Scheme source code from FILE, then keeps processing the command line. she's not done talking yet. ✨
  • -e FUNCTION β€” after reading SCRIPT, applies FUNCTION to the command-line arguments. note that FUNCTION is 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 start guile in interactive mode. that's it, that's the whole vibe. βœ‹
  • -c EXPR β€” stop argument processing, and evaluate EXPR as a Scheme expression. πŸ”₯
  • -s SCRIPT-FILE β€” loads Scheme source from SCRIPT-FILE and executes it as a script. but ngl, in many cases it is not necessary to use -s; you can just invoke guile simply as guile SCRIPT-FILE ARG.... she's flexible like that. πŸ’œ
  • -ds β€” carries out -s SCRIPT at this point in the option sequence. note that this argument must be used in conjunction with -s. they're a package deal, bestie. 🫢
  • --debug β€” starts guile with the debugging VM. by default, debugging is on when guile is invoked interactively; it's off otherwise. πŸ”
  • --no-debug β€” starts guile without the debugging VM, even if guile is 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 -l and expressions passed with -c are written in LANG, which must be the name of one of the languages supported by the compiler. when run interactively, it sets the REPL's language to LANG. 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 extensions N, 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 β€” adds EXTENSION to the guile load extension list. ✨
  • -h, --help β€” describes command-line options and exits. she's helping! 🫢
  • -v, --version β€” displays guile version 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_PATH is set before guile is 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_PATH is set before guile is started, its value is used to augment the path to search for compiled Scheme files (.go files) 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 .guile activates 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
  • epel 10: guile30 3.0.11-1.el10_2 Β· LGPL-3.0-or-later AND LicenseRef-Callaway-MIT AND LicenseRef-Callaway-Public-Domain AND GPL-1.0-or-later AND GPL-3.0-or-later
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms