mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-29 19:30:36 +02:00
* module/ice-9/command-line.scm (version-etc): * module/scripts/compile.scm (show-version): * module/system/repl/common.scm (*version*): Bump to 2024. |
||
---|---|---|
.. | ||
api-diff.scm | ||
autofrisk.scm | ||
ChangeLog-2008 | ||
compile.scm | ||
disassemble.scm | ||
display-commentary.scm | ||
doc-snarf.scm | ||
frisk.scm | ||
generate-autoload.scm | ||
help.scm | ||
lint.scm | ||
list.scm | ||
punify.scm | ||
read-rfc822.scm | ||
read-scheme-source.scm | ||
read-text-outline.scm | ||
README | ||
scan-api.scm | ||
snarf-check-and-output-texi.scm | ||
snarf-guile-m4-docs.scm | ||
summarize-guile-TODO.scm | ||
use2dot.scm |
Overview and Usage ------------------ This directory contains Scheme programs, some useful in maintaining Guile. On "make install", these programs are copied to PKGDATADIR/VERSION/scripts. You can use guild to invoke a program from the shell, or alternatively, load its file as a Guile Scheme module, and use its exported procedure(s) from Scheme code. Typically for any PROGRAM: (use-modules (scripts PROGRAM)) (PROGRAM ARG1 ARG2 ...) For programs that write to stdout, you might try, instead: (use-modules (scripts PROGRAM)) (with-output-to-string (lambda () (PROGRAM ARG1 ARG2 ...))) Note that all args must be strings. To see PROGRAM's commentary, which may or may not be helpful: (help (scripts PROGRAM)) If you want to try the programs before installing Guile, you will probably need to set environment variable GUILE_LOAD_PATH to be the parent directory. This can be done in Bourne-compatible shells like so: GUILE_LOAD_PATH=`(cd .. ; pwd)` export GUILE_LOAD_PATH [FIXME: Can someone supply the csh-compatible equivalent?] How to Contribute ----------------- See template file PROGRAM for a quick start. Programs must follow the "guild" convention, documented here: - The module name must be "(scripts PROGRAM)". A procedure named PROGRAM w/ signature "(PROGRAM . args)" must be exported. Basically, use some variant of the form: (define-module (scripts PROGRAM) :export (PROGRAM)) Feel free to export other definitions useful in the module context. - There must be the alias: (define main PROGRAM) However, `main' must NOT be exported. Following these conventions allows the program file to be used as module (scripts PROGRAM) in addition to being invoked by guild. Please also include a helpful Commentary section w/ some usage info. [README ends here]