gauche.parameter
- Parameters (legacy) ¶This module is only provided for the backward compatibility. We strongly discourage using this module.
Parameters are now built-in, so you no longer need to use
this
module for basic parameter functionalities. However, they have
slightly different semantics from the legacy parameters Gauche had.
The parameters provided in this module is backward compatible, so that
you can run legacy code without changes.
When you use this module, those two identifiers are rebound to the backward-compatibility API.
make-parameter
This becomes an alias of make-legacy-parameter
.
parameterize
This becomes an alias of parameterize/dynwind
See Parameters and dynamic states, for the details of the difference.
Legacy parameters also had a feature called observers, a callback procedure to be called when the parameter’s value is modified. You can add/delete observers by the following API.
Note that observers are only attachable to legacy parameters. We plan to remove it eventually, so new code shouldn’t use it.
{gauche.parameter
}
Deprecated.
Adds proc to "observer" procedures of a parameter p.
Observer procedures are called either (1) just before
a new value is set to the parameter, or (2) just after the new value
is set to the parameter. In case of (1), a filter procedure is
already applied before a callback is called.
In either case, observer procedures are called with two arguments,
the old value and the new value. The return value(s) of observer
procedures are discarded.
The optional when argument must be either a symbol before
or after
, to specify whether proc should be called
before or after the value is changed. If omitted, after
is
assumed.
The optional where argument must be either a symbol
append
or prepend
, to specify whether proc should
be prepended or appended to the existing observer procedure list.
If omitted, append
is assumed.
Note: Although the parameter value itself is thread-local, the observer list is shared by all threads.
{gauche.parameter
}
Deprecated.
Deletes proc from observer procedure list of a parameter p.
If proc is not in the list, nothing happens.
You can give either a symbol before
or after
to
when argument to specify from which list proc should be
deleted. If when argument is omitted, proc is deleted
from both lists.
{gauche.parameter
}
Deprecated.
Returns a hook object (see gauche.hook
- Hooks) that keeps
"before" or "after" observers, respectively.
Note: Although the parameter value itself is thread-local, these hook objects are shared by all threads.