GUILE(1)

πŸ“¦ version 1.8.8, in fedora 43, fedora 44

πŸ‘‘ guile β€” bestie's guide to the Scheme interpreter πŸ’–

okay so. you found guile(1), the manual page for the one and only GNU Guile, living in the General Commands Manual. she's a Scheme interpreter. she's iconic. let's get into it. ✨


🌸 NAME 🌸

guile β€” a Scheme interpreter. that's it, that's the girl. 🫢


✨ SYNOPSIS ✨

guile [-q] [-ds] [--help] [--version] [--emacs] [--debug] [-l FILE] [-e
FUNCTION] [] [-c EXPR] [-s SCRIPT] [--]

yes bestie, that is a lot of flags. we will go through every single one, don't you worry. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

GNU Guile is an interpreter for the Scheme programming language. she implements R5RS, plus a bunch of extra features that you genuinely need for real-world use, not just for looking cute in a textbook. πŸ“šβœ¨

here's the part that makes her main character energy: it is extremely simple to embed guile into a C program β€” calling C from Scheme, and Scheme from C. so guile's whole design makes her very suitable for use as an "extension" or "glue" language. no cap. but she also works completely fine as a stand-alone scheme development environment, so if you just wanna vibe in a REPL, she's got you. πŸ’–

the guile executable itself provides a stand-alone interpreter for scheme programs, whether you're using it interactively or executing scripts. both. she contains multitudes. 🌈

lowkey important: this manpage only gives you brief instruction in invoking guile from the command line. for the real tea, please consult the guile info documentation β€” just type info guile at a command prompt. there's also a tutorial available at info guile-tut. go read it, i'm begging. 😭🫢

πŸ’… OPTIONS πŸ’…

  • -l β€” load scheme source code from file.
  • -e β€” after reading script, apply FUNCTION to the command-line arguments.
  • -ds β€” do -s SCRIPT at this point. note (fr fr, this matters) that this argument must be used in conjuction with -s. πŸ‘€
  • --help β€” describe the command line options and exit. she's telling you what she can do. queen behavior. πŸ‘‘
  • --debug β€” start guile with the debugging evaluator and backtraces enabled. useful for debugging guile scripts! πŸ”
  • --version β€” display guile version and exit. πŸŽ€
  • --emacs β€” enable the emacs protocol for use from within emacs. (experimental! πŸ§ͺ don't come for me if it acts up)
  • -- β€” stop argument processing, and start guile in interactive mode. πŸ¦‹
  • -c β€” stop argument processing, and evaluate EXPR as a scheme expression.
  • -s β€” load Scheme source from SCRIPT-FILE and execute as a script.

🌿 ENVIRONMENT 🌿

GUILE_LOAD_PATH

if $GUILE_LOAD_PATH is set, its value is used to agument the path she searches for scheme files when loading. πŸ“‚

it should be a colon separated list of directories, and those directories get prepended to the default %load-path. so like, your paths go first. you're the priority bestie. πŸ₯‡


πŸŽ€ FILES πŸŽ€

~/.guile is a guile script that is executed before any other processing occurs. she runs it first, always, no exceptions. πŸ’–

for example, the following .guile activates guile's readline interface:

(use-modules (ice-9 readline))
(activate-readline)

so cute, so useful. put that in your ~/.guile and suddenly your REPL has ✨line editing✨. obsessed. πŸ“


🌈 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. πŸ‘‘

http://www.schemers.org provides a general introduction to the Scheme language, if you're new here and wanna learn the lore. πŸ“–


πŸ’œ AUTHORS πŸ’œ

Robert Merkel <rgmerk@mira.net> wrote this manpage. Rob Browning <rlb@cs.utexas.edu> has added to it. thank you both, legends. 🫢

guile is GNU software. Guile is originally based on Aubrey Jaffer's SCM interpreter, and is the work of many individuals. many hands, one absolutely iconic interpreter. 🌟


🌸 that's the whole page, bestie 🌸

and that's a wrap on the GUILE(1) page from the General Commands Manual β€” she came to you from the GUILE(1) corner of the manual set, and now she's yours. go write some parentheses, go embed her in a C program, go activate your readline. you're gonna slay. periodt. πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from