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.