Merge remote-tracking branch 'origin/stable-2.0'
[bpt/guile.git] / doc / ref / guile-invoke.texi
index 9379a8b..90922f2 100644 (file)
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Guile Reference Manual.
-@c Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2010, 2011
+@c Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2010, 2011, 2013
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
@@ -71,9 +71,12 @@ before any directories in the @env{GUILE_LOAD_PATH} environment
 variable.  Paths added here are @emph{not} in effect during execution of
 the user's @file{.guile} file.
 
+@item -C @var{directory}
+Like @option{-L}, but adjusts the load path for @emph{compiled} files.
+
 @item -x @var{extension}
 Add @var{extension} to the front of Guile's load extension list
-(@pxref{Loading, @code{%load-extensions}}).  The specified extensions
+(@pxref{Load Paths, @code{%load-extensions}}).  The specified extensions
 are tried in the order given on the command line, and before the default
 load extensions.  Extensions added here are @emph{not} in effect during
 execution of the user's @file{.guile} file.
@@ -156,6 +159,12 @@ interactive session.  When executing a script with @option{-s} or
 Do not use the debugging VM engine, even when entering an interactive
 session.
 
+Note that, despite the name, Guile running with @option{--no-debug}
+@emph{does} support the usual debugging facilities, such as printing a
+detailed backtrace upon error.  The only difference with
+@option{--debug} is lack of support for VM hooks and the facilities that
+build upon it (see above).
+
 @item -q
 @cindex init file, not loading
 @cindex @file{.guile} file, not loading
@@ -285,12 +294,40 @@ This variable names the file that holds the Guile REPL command history.
 You can specify a different history file by setting this environment
 variable.  By default, the history file is @file{$HOME/.guile_history}.
 
+@item GUILE_INSTALL_LOCALE
+@vindex GUILE_INSTALL_LOCALE
+This is a flag that can be used to tell Guile whether or not to install
+the current locale at startup, via a call to @code{(setlocale LC_ALL
+"")}.  @xref{Locales}, for more information on locales.
+
+You may explicitly indicate that you do not want to install
+the locale by setting @env{GUILE_INSTALL_LOCALE} to @code{0}, or
+explicitly enable it by setting the variable to @code{1}.
+
+Usually, installing the current locale is the right thing to do.  It
+allows Guile to correctly parse and print strings with non-ASCII
+characters.  Therefore, this option is on by default.
+
+@item GUILE_STACK_SIZE
+@vindex GUILE_STACK_SIZE
+Guile currently has a limited stack size for Scheme computations.
+Attempting to call too many nested functions will signal an error.  This
+is good to detect infinite recursion, but sometimes the limit is reached
+for normal computations.  This environment variable, if set to a
+positive integer, specifies the number of Scheme value slots to allocate
+for the stack.
+
+In the future we will implement stacks that can grow and shrink, but for
+now this hack will have to do.
+
 @item GUILE_LOAD_COMPILED_PATH
 @vindex GUILE_LOAD_COMPILED_PATH
 This variable may be used to augment the path that is searched for
 compiled Scheme files (@file{.go} files) when loading.  Its value should
-be a colon-separated list of directories, which will be prefixed to the
-value of the default search path stored in @code{%load-compiled-path}.
+be a colon-separated list of directories.  If it contains the special
+path component @code{...} (ellipsis), then the default path is put in
+place of the ellipsis, otherwise the default path is placed at the end.
+The result is stored in @code{%load-compiled-path} (@pxref{Load Paths}).
 
 Here is an example using the Bash shell that adds the current directory,
 @file{.}, and the relative directory @file{../my-library} to
@@ -306,18 +343,23 @@ $ guile -c '(display %load-compiled-path) (newline)'
 @vindex GUILE_LOAD_PATH
 This variable may be used to augment the path that is searched for
 Scheme files when loading.  Its value should be a colon-separated list
-of directories, which will be prefixed to the value of the default
-search path stored in @code{%load-path}.
+of directories.  If it contains the special path component @code{...}
+(ellipsis), then the default path is put in place of the ellipsis,
+otherwise the default path is placed at the end.  The result is stored
+in @code{%load-path} (@pxref{Load Paths}).
 
-Here is an example using the Bash shell that adds the current directory
-and the parent of the current directory to @code{%load-path}:
+Here is an example using the Bash shell that prepends the current
+directory to @code{%load-path}, and adds the relative directory
+@file{../srfi} to the end:
 
 @example
-$ env GUILE_LOAD_PATH=".:.." \
+$ env GUILE_LOAD_PATH=".:...:../srfi" \
 guile -c '(display %load-path) (newline)'
-(. .. /usr/local/share/guile/2.0 \
+(. /usr/local/share/guile/2.0 \
 /usr/local/share/guile/site/2.0 \
-/usr/local/share/guile/site /usr/local/share/guile)
+/usr/local/share/guile/site \
+/usr/local/share/guile \
+../srfi)
 @end example
 
 (Note: The line breaks, above, are for documentation purposes only, and