Next: compiler stack, Previous: compiler freevar refs, Up: compiler [Index]
This compiler pass traverses all the function bodies and, if the body
contains at least one jmpcall
struct or one funcall
struct (in which the operator is not a primref
), it
transforms the ?body into:
(seq (primopcall $do-event ()) ?body)
the call to the primitive operation $do-event
suspends the
execution of Scheme code for the current internal process and enters an
internal subprocess which can take actions asynchronously.
The following bindings are exported by the library (vicare
compiler)
.
Perform code transformation traversing the whole hierarchy in
input, which must be a codes
struct representing
recordised code; build and return a new codes
struct.
Insert calls to the primitive operation $do-event
when
appropriate.