1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 20:00:19 +02:00
guile/module/scripts
Andy Wingo 3932bdb3af remove a number of debug options
* libguile/private-options.h (SCM_BREAKPOINTS_P, SCM_TRACE_P)
  (SCM_REC_PROCNAMES_P, SCM_BACKTRACE_INDENT, SCM_N_FRAMES)
  (SCM_BACKTRACE_MAXDEPTH, SCM_DEVAL_P): Remove these internal names.

* libguile/eval.c (scm_debug_opts): Remove the corresponding debug
  options -- breakpoints, trace, procnames, indent, frames, maxdepth,
  and debug.

* libguile/debug.c (scm_debug_options): Remove SCM_N_FRAMES check.

* test-suite/lib.scm (with-debugging-evaluator*):
* module/scripts/summarize-guile-TODO.scm:
* module/statprof.scm (statprof-reset):
* module/ice-9/boot-9.scm (turn-on-debugging): Remove useless
  debug-enable 'debug calls.

* module/ice-9/deprecated.scm (debug-enable): As it seems that 'debug is
  a particulatly common option that we just removed, add a deprecation
  shim.

* doc/ref/api-options.texi (Debugger options): Update the set of debug
  options.
2010-09-24 20:57:01 +02:00
..
api-diff.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
autofrisk.scm Remove unused variables in ice-9/goops/srfi/scripts. 2009-09-21 00:24:08 +02:00
ChangeLog-2008 guile-tools is a scheme script that loads scheme modules 2009-04-17 11:19:42 +02:00
compile.scm Provide Guile-friendly `coding:' meta-data. 2010-01-11 01:21:13 +01:00
disassemble.scm Fix "guile-tools disassemble". 2009-06-19 21:54:51 +02:00
display-commentary.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
doc-snarf.scm [maint] Remove unused script guile-doc-snarf. 2010-07-22 21:10:38 +02:00
frisk.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
generate-autoload.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
lint.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
PROGRAM.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
punify.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
read-rfc822.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
read-scheme-source.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
read-text-outline.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
README guile-tools is a scheme script that loads scheme modules 2009-04-17 11:19:42 +02:00
scan-api.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
snarf-check-and-output-texi.scm fix doc snarfing with fedora 12 2010-01-17 18:22:51 +01:00
snarf-guile-m4-docs.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
summarize-guile-TODO.scm remove a number of debug options 2010-09-24 20:57:01 +02:00
use2dot.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00

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 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))

To see all commentaries and module dependencies, try: "make overview".

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 "executable module" 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/
  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.

- 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
(scripts PROGRAM) in addition to as a standalone executable.  Please also
include a helpful Commentary section w/ some usage info.


[README ends here]