diff --git a/libguile/options.c b/libguile/options.c index 9f3eeb676..393115f41 100644 --- a/libguile/options.c +++ b/libguile/options.c @@ -53,43 +53,116 @@ * This is the basic interface for low-level configuration of the * Guile library. It is used for configuring the reader, evaluator, * printer and debugger. + * + * Motivation: + * + * 1. Altering option settings can have side effects. + * 2. Option values can be stored in native format. + * (Important for efficiency in, e. g., the evaluator.) + * 3. Doesn't use up name space. + * 4. Options can be naturally grouped => ease of use. */ +/* scm_options is the core of all options interface procedures. + * + * Some definitions: + * + * Run time options in Guile are arranged in groups. Each group + * affects a certain aspect of the behaviour of the library. + * + * An "options interface procedure" manages one group of options. It + * can be used to check or set options, or to get documentation for + * all options of a group. The options interface procedure is not + * intended to be called directly by the user. The user should + * instead call + * + * (-options) + * (-options 'help) + * (-options 'full) + * + * to display current option settings (The second version also + * displays documentation. The third version also displays + * information about programmer's options.), and + * + * (-enable ') + * (-disable ') + * (-set! ) + * (-options