gauche.interactive- Utilities for interactive session
Provides useful utilities for the interactive session.
This module is automatically loaded when you run
This module also sets autoloads for functions defined in
(see Reloading modules), so that
those functions can be used by default in interactive development.
Show a list of defined variables whose name matches pattern. If you give a module or a module name module, only the variables defined in that module are listed. Without module, the variables "visible" from the current module are listed.
pattern may be a symbol or a regexp object. If it is a symbol, the variables whose name contains the substring that matches the symbol’s name are listed. If it is a regexp object, the variables whose name matches the regexp are listed.
;; List variables that contains "string" in their name (apropos 'string) ;; Search in srfi-14 module (apropos 'char 'srfi-14)
Prints the detail information about a Scheme object obj. The default method shows obj’s class, and if it has any slots, the list of slot names and their values. You can specialize this method for customized display. Some built-in types has specialized methods (see how an integer is described in the example below).
If obj is omitted, the last evaluation result bound to
*1 in REPL
is used. (see Working in REPL)
gosh> (sys-stat "Makefile") #<<sys-stat> 0x1e7de60> gosh> (d) #<<sys-stat> 0x1e7de60> is an instance of class <sys-stat> slots: type : regular perm : 436 mode : 33204 ino : 3242280 dev : 2097 rdev : 0 nlink : 1 uid : 500 gid : 500 size : 19894 atime : 1435379061 mtime : 1432954340 ctime : 1432954340 gosh> (d 1432954340) 1432954340 is an instance of class <integer> (#x556925e4, ~ 1.4Gi, 2015-05-30T02:52:20Z as unix-time)
Displays a page of Gauche’s info file that contains definition of
the function or syntax specified by symbol.
If an environment variable
INFOPATH is defined,
this function searches for the info file from the directories in it.
Otherwise, this function guesses info file location from the
gosh’s library directory. If the info file can’t be
found, an error is signaled. If the info file is found,
but symbol is not in its index, an error is signaled as well.
So this function doesn’t work if you haven’t installed info file.
If the current output port is a tty, the info page is displayed by
a paging software. If an environment variable
PAGER is defined,
it is used as a paging software. Otherwise, this function looks for
more in this order from the directories in
PATH. If none of them is found, or the output port is not
a tty, this function just displays the page.
The first invocation of this function in a session takes some time to parse the info file.
NB: When you use
less as a pager, make sure you set
it to handle utf-8 characters (e.g. setting
environment variable to
UTF-8), or you’ll see some escaped sequences on the screen.
Invoke an external editor to open the named file, or the file containing
the definition of the given procedure (if it can be known).
For the latter, it uses
source-location procedure to find out
the source code location (see Debugging aid).
The name of the editor to invoke is determined as follows:
usermodule, if defined. This is handy that you can set this in your
If none of the above is defined or
#f, the procedure prompts the user
to type in the name of the editor.
Once the editor name is obtained, it is invoked as a subprocess, with the following format:
EDITOR +lineno filename
The lineno is an integer line number, 1 being the first line. The editor is expected to locate the cursor on the specified line.
Once the editor process exits, the procedure checks if the name file is updated. If so, it may load the file, according to the value of the load-after keyword argument. It may take one of the following values:
Load the file automatically if it’s updated.
Do not load the file.
ask cause the procedure to prompt the user
whether it should load the file. This is the default.