mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-29 19:30:36 +02:00
* NEWS: * README: * doc/r5rs/r5rs.texi: * doc/ref/api-data.texi: * doc/ref/api-debug.texi: * doc/ref/api-evaluation.texi: * doc/ref/api-io.texi: * doc/ref/api-macros.texi: * doc/ref/api-procedures.texi: * doc/ref/api-scheduling.texi: * doc/ref/api-undocumented.texi: * doc/ref/libguile-concepts.texi: * doc/ref/posix.texi: * doc/ref/srfi-modules.texi: * doc/ref/vm.texi: * doc/ref/web.texi: * examples/box-dynamic-module/box.c: * examples/box-dynamic/box.c: * examples/box-module/box.c: * examples/box/box.c: * examples/safe/safe: * examples/scripts/README: * examples/scripts/hello: * gc-benchmarks/larceny/twobit-input-long.sch: * gc-benchmarks/larceny/twobit-smaller.sch: * gc-benchmarks/larceny/twobit.sch: * libguile/expand.c: * libguile/load.c: * libguile/net_db.c: * libguile/scmsigs.c: * libguile/srfi-14.c: * libguile/threads.c: * meta/guile.m4: * module/ice-9/match.upstream.scm: * module/ice-9/ports.scm: * module/language/cps/graphs.scm: * module/scripts/doc-snarf.scm: * module/srfi/srfi-19.scm: * module/system/repl/command.scm: * test-suite/tests/srfi-18.test: Fix typos. Signed-off-by: Ludovic Courtès <ludo@gnu.org> |
||
---|---|---|
.. | ||
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]