Andy Wingo f169be9fc8 Wire up `guild compile -O0 foo.scm' il y a 9 ans
..
ChangeLog-2008 6d66647d5b guile-tools is a scheme script that loads scheme modules il y a 15 ans
README b8b0659879 rename `guile-tools' to `guild' il y a 13 ans
api-diff.scm a1a2ed5342 more work on "guild list" il y a 13 ans
autofrisk.scm a1a2ed5342 more work on "guild list" il y a 13 ans
compile.scm f169be9fc8 Wire up `guild compile -O0 foo.scm' il y a 9 ans
disassemble.scm 93009a7aca ,xx for RTL images il y a 11 ans
display-commentary.scm a1a2ed5342 more work on "guild list" il y a 13 ans
doc-snarf.scm a1a2ed5342 more work on "guild list" il y a 13 ans
frisk.scm a1a2ed5342 more work on "guild list" il y a 13 ans
generate-autoload.scm a1a2ed5342 more work on "guild list" il y a 13 ans
help.scm b8287e8823 better guild help FOO il y a 13 ans
lint.scm a1a2ed5342 more work on "guild list" il y a 13 ans
list.scm f5e772b2ba Fix a couple of warnings. il y a 13 ans
punify.scm a1a2ed5342 more work on "guild list" il y a 13 ans
read-rfc822.scm a1a2ed5342 more work on "guild list" il y a 13 ans
read-scheme-source.scm a1a2ed5342 more work on "guild list" il y a 13 ans
read-text-outline.scm a1a2ed5342 more work on "guild list" il y a 13 ans
scan-api.scm a1a2ed5342 more work on "guild list" il y a 13 ans
snarf-check-and-output-texi.scm c3c3032608 Make snarfing tools more robust to varied C preprocessor behavior. il y a 10 ans
snarf-guile-m4-docs.scm a1a2ed5342 more work on "guild list" il y a 13 ans
summarize-guile-TODO.scm a1a2ed5342 more work on "guild list" il y a 13 ans
use2dot.scm a1a2ed5342 more work on "guild list" il y a 13 ans

README

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]