Major Section: NOTE-4-0
Here we describe how to convert an ``old-style'' call of wormhole --
that is, a call suitable for ACL2 versions preceding 4.0 -- in which the
pseudo-flag was t. In order to convert such a call
(wormhole t 'name input form ...)to a new-style call, the following steps must be carried out. Note that the wormhole name must always be quoted now.
First, eliminate the first argument, t, and add a new second argument
that is the quoted lambda expression
'(lambda (whs) (set-wormhole-entry-code whs :ENTER))Setting the entry code to
:ENTER is not necessary if you maintain the
invariant (after initialization) that it is always :ENTER. In that case,
the simpler quoted lambda will suffice:
'(lambda (whs) whs)
Second, change the form argument so that instead of talking about the
state-global variable wormhole-output it talks about the state-global
variable wormhole-status. Look for
(@ wormhole-output), (assign wormhole-output ...),
(f-get-global 'wormhole-output ...) and
(f-put-global 'wormhole-output ...) in form and replace them with
expressions involving wormhole-status.
However, remember that the old data stored in wormhole-output is now
in the wormhole-data component of the wormhole-status. Thus, for
example, an old use of (@ wormhole-output) will typically be replaced
by (wormhole-data (@ wormhole-status)) and an old use of
(assign wormhole-output ...) will typically be replaced by
(assign wormhole-status (set-wormhole-data (@ wormhole-status) ...))
In summary, an old-style call like
(wormhole t 'name
input
'(...1 (@ wormhole-output) ...2
...3 (assign wormhole-output ...4) ...5)
...6)
can become
(wormhole 'name
'(lambda (whs) (set-wormhole-entry-code whs :ENTER))
input
'(...1 (wormhole-data (@ wormhole-status)) ...2
...3 (assign wormhole-status
(set-wormhole-data (@ wormhole-status)
...4) ...5)
...6)
In any case, and especially if your wormhole call had a pseudo-flag
other than t, we recommend that you see wormhole.