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:
parent
6b8bc6f8b5
commit
c6e05396dc
2 changed files with 12 additions and 44 deletions
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue