1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

Remove statements about scripts/* that are no longer true

* doc/ref/tools.texi (Executable Modules): Say "guile-tools modules"
  instead of "executable modules".  Remove obsolete statements about
  not ending in .scm, being executable, and beginning with shell
  script invocation sequence.

* module/scripts/README: Ditto.
This commit is contained in:
Neil Jerram 2011-03-21 09:05:59 +00:00
parent 6b8bc6f8b5
commit c6e05396dc
2 changed files with 12 additions and 44 deletions

View file

@ -303,14 +303,11 @@ is rather byzantine, so for now @emph{NO} doc snarfing programs are installed.
@cindex executable modules @cindex executable modules
@cindex scripts @cindex scripts
When Guile is installed, in addition to the @code{(ice-9 FOO)} modules, When Guile is installed, in addition to the @code{(ice-9 FOO)} modules, a set
a set of @dfn{executable modules} @code{(scripts BAR)} is also installed. of @dfn{guile-tools modules} @code{(scripts BAR)} is also installed. Each is
Each is a regular Scheme module that has some additional packaging so a regular Scheme module that has some additional packaging so that it can be
that it can be called as a program in its own right, from the shell. For this used by guile-tools, from the shell. For this reason, we sometimes use the
reason, we sometimes use the term @dfn{script} in this context to mean the term @dfn{script} in this context to mean the same thing.
same thing.
@c wow look at this hole^! variable-width font users eat your heart out.
As a convenience, the @code{guile-tools} wrapper program is installed along w/ As a convenience, the @code{guile-tools} wrapper program is installed along w/
@code{guile}; it knows where a particular module is installed and calls it @code{guile}; it knows where a particular module is installed and calls it
@ -346,16 +343,10 @@ executable module. Feel free to skip to the next chapter.
See template file @code{PROGRAM} for a quick start. See template file @code{PROGRAM} for a quick start.
Programs must follow the @dfn{executable module} convention, documented here: Programs must follow the @dfn{guile-tools} convention, documented here:
@itemize @itemize
@item
The file name must not end in ".scm".
@item
The file must be executable (chmod +x).
@item @item
The module name must be "(scripts PROGRAM)". A procedure named PROGRAM w/ The module name must be "(scripts PROGRAM)". A procedure named PROGRAM w/
signature "(PROGRAM . args)" must be exported. Basically, use some variant signature "(PROGRAM . args)" must be exported. Basically, use some variant
@ -377,20 +368,10 @@ There must be the alias:
However, `main' must NOT be exported. However, `main' must NOT be exported.
@item
The beginning of the file must use the following invocation sequence:
@example
#!/bin/sh
main='(module-ref (resolve-module '\''(scripts PROGRAM)) '\'main')'
exec $@{GUILE-guile@} -l $0 -c "(apply $main (cdr (command-line)))" "$@@"
!#
@end example
@end itemize @end itemize
Following these conventions allows the program file to be used as module Following these conventions allows the program file to be used as module
@code{(scripts PROGRAM)} in addition to as a standalone executable. Please @code{(scripts PROGRAM)} in addition to being invoked by guile-tools. Please
also include a helpful Commentary section w/ some usage info. also include a helpful Commentary section w/ some usage info.
@c tools.texi ends here @c tools.texi ends here

View file

@ -4,9 +4,9 @@ Overview and Usage
This directory contains Scheme programs, some useful in maintaining Guile. This directory contains Scheme programs, some useful in maintaining Guile.
On "make install", these programs are copied to PKGDATADIR/VERSION/scripts. On "make install", these programs are copied to PKGDATADIR/VERSION/scripts.
You can invoke a program from the shell, or alternatively, load its file You can use guile-tools to invoke a program from the shell, or alternatively,
as a Guile Scheme module, and use its exported procedure(s) from Scheme code. load its file as a Guile Scheme module, and use its exported procedure(s)
Typically for any PROGRAM: from Scheme code. Typically for any PROGRAM:
(use-modules (scripts PROGRAM)) (use-modules (scripts PROGRAM))
(PROGRAM ARG1 ARG2 ...) (PROGRAM ARG1 ARG2 ...)
@ -22,8 +22,6 @@ To see PROGRAM's commentary, which may or may not be helpful:
(help (scripts PROGRAM)) (help (scripts PROGRAM))
To see all commentaries and module dependencies, try: "make overview".
If you want to try the programs before installing Guile, you will probably 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. need to set environment variable GUILE_LOAD_PATH to be the parent directory.
This can be done in Bourne-compatible shells like so: This can be done in Bourne-compatible shells like so:
@ -40,11 +38,7 @@ How to Contribute
See template file PROGRAM for a quick start. See template file PROGRAM for a quick start.
Programs must follow the "executable module" convention, documented here: Programs must follow the "guile-tools" convention, documented here:
- The file name must not end in ".scm".
- The file must be executable (chmod +x).
- The module name must be "(scripts PROGRAM)". A procedure named PROGRAM w/ - The module name must be "(scripts PROGRAM)". A procedure named PROGRAM w/
signature "(PROGRAM . args)" must be exported. Basically, use some variant signature "(PROGRAM . args)" must be exported. Basically, use some variant
@ -61,15 +55,8 @@ Programs must follow the "executable module" convention, documented here:
However, `main' must NOT be exported. However, `main' must NOT be exported.
- The beginning of the file must use the following invocation sequence:
#!/bin/sh
main='(module-ref (resolve-module '\''(scripts PROGRAM)) '\'main')'
exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"
!#
Following these conventions allows the program file to be used as module Following these conventions allows the program file to be used as module
(scripts PROGRAM) in addition to as a standalone executable. Please also (scripts PROGRAM) in addition to being invoked by guile-tools. Please also
include a helpful Commentary section w/ some usage info. include a helpful Commentary section w/ some usage info.