save-blackboard-repositorySaving and Sendingwith-saving/sending-blockwith-reading-saved/sent-objects-blockGoTo Top

with-reading-saved/sent-objects-block   (stream &key class-name-translations coalesce-strings estimated-peak-forward-references readtable read-eval) form* => result*[Macro]

Purpose
Bind reader and GBBopen reading-saved/sent-objects control variables) to values that produce standard GBBopen reading-saved/sent-objects behavior when evaluating forms.

Package   :gbbopen-tools

Module   :gbbopen-tools

Arguments and values

stream     A stream
class-name-translations     An association list (default is nil)
coalesce-strings     A generalized boolean (default is nil)
estimated-peak-forward-references     An integer (default is *default-estimated-peak-forward-references*)
readtable     A readtable (default is *reading-saved/sent-objects-readtable*)
read-eval     A generalized boolean (default is nil)
forms     An implicit progn of forms to be evaluated
results     The values returned by evaluating the last form

Returns
The values returned by evaluating the last form.

Description
Within the dynamic extent of the body of forms, all Common Lisp reader control variables (including any implementation-defined ones) and GBBopen reading-saved/sent-objects control variables are bound to values that produce standard GBBopen reading-saved/sent-objects behavior. The function load-blackboard-repository establishes a with-reading-saved/sent-objects-block when loading the blackboard repository, and this macro can be used in constructing specialized reading-saved/sent-objects operations.

The class-name-translations association list, if specified, should contain conses of the form:
        (class-name . new-class-name)
for any class translations that should occur during reading.

If coalesce-strings is true, strings read within the dynamic extent of the body of forms that are equal become shared (eq). This coalescing is performed using a temporary hash-table whose initial size can be specified by providing an integer value for coalesce-strings. If a hash table is provided as the value for coalesce-strings, it is used in place of the temporary hash table.

Unit instances that are referenced before they are defined are recorded using a temporary hash table whose initial size can be specified by providing an integer value for estimated-peak-forward-references.

See also
    *block-saved/sent-time*
    *block-saved/sent-value*
    load-blackboard-repository
    with-saving/sending-block


The GBBopen Project


save-blackboard-repositorySaving and Sendingwith-saving/sending-blockwith-reading-saved/sent-objects-blockGoTo Top