6.23.3 Runtime Options

There are a number of runtime options available for parameterizing built-in procedures, like read, and built-in behavior, like what happens on an uncaught error.

For more information on reader options, See Reading Scheme Code.

For more information on print options, See Writing Scheme Values.

Finally, for more information on debugger options, See Debug options.

6.23.3.1 Examples of option use

Here is an example of a session in which some read and debug option handling procedures are used. In this example, the user

  1. Notices that the symbols abc and aBc are not the same
  2. Examines the read-options, and sees that case-insensitive is set to “no”.
  3. Enables case-insensitive
  4. Quits the recursive prompt
  5. Verifies that now aBc and abc are the same
scheme@(guile-user)> (define abc "hello")
scheme@(guile-user)> abc
$1 = "hello"
scheme@(guile-user)> aBc
<unknown-location>: warning: possibly unbound variable `aBc'
ERROR: In procedure module-lookup:
ERROR: Unbound variable: aBc
Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]> (read-options 'help)
copy              no    Copy source code expressions.
positions         yes   Record positions of source code expressions.
case-insensitive  no    Convert symbols to lower case.
keywords          #f    Style of keyword recognition: #f, 'prefix or 'postfix.
r6rs-hex-escapes  no    Use R6RS variable-length character and string hex escapes.
square-brackets   yes   Treat `[' and `]' as parentheses, for R6RS compatibility.
hungry-eol-escapes no   In strings, consume leading whitespace after an
                        escaped end-of-line.
curly-infix       no    Support SRFI-105 curly infix expressions.
scheme@(guile-user) [1]> (read-enable 'case-insensitive)
$2 = (square-brackets keywords #f case-insensitive positions)
scheme@(guile-user) [1]> ,q
scheme@(guile-user)> aBc
$3 = "hello"