document compiler/zo-struct
changes for new bytecode form
This commit is contained in:
parent
0480f55f67
commit
27fed2b1ed
|
@ -104,7 +104,10 @@ Many forms in the decompiled code, such as @racket[module],
|
|||
|
||||
@item{A form @racket[(#%apply-values _proc _expr)] is equivalent to
|
||||
@racket[(call-with-values (lambda () _expr) _proc)], but the run-time
|
||||
system avoids allocating a closure for @racket[_expr].}
|
||||
system avoids allocating a closure for @racket[_expr]. Similarly,
|
||||
a @racket[#%call-with-immediate-continuation-mark] call is equivalent to
|
||||
a @racket[call-with-immediate-continuation-mark] call, but avoiding
|
||||
a closure allocation.}
|
||||
|
||||
@item{A @racket[define-values] form may have @racket[(begin
|
||||
'%%inline-variant%% _expr1 _expr2)] for its expression, in which case
|
||||
|
|
|
@ -567,6 +567,22 @@ binding, constructor, etc.}
|
|||
which is handled specially by the run-time system.}
|
||||
|
||||
|
||||
@defstruct+[(with-immed-mark expr)
|
||||
([key (or/c expr? seq? any/c)]
|
||||
[val (or/c expr? seq? any/c)]
|
||||
[body (or/c expr? seq? any/c)])]{
|
||||
|
||||
Represents a @racket[(call-with-immediate-continuation-mark key
|
||||
(lambda (_arg) _body) val)] expression that is handled specially by
|
||||
the run-time system to avoid a closure allocation. One initialized
|
||||
slot is pushed onto the stack after @racket[expr] and @racket[val]
|
||||
are evaluated and before @racket[body] is evaluated.
|
||||
|
||||
After each of @racket[key] and @racket[val] is evaluated, the stack is
|
||||
restored to its depth from before evaluating @racket[key] or
|
||||
@racket[val].}
|
||||
|
||||
|
||||
@defstruct+[(primval expr)
|
||||
([id exact-nonnegative-integer?])]{
|
||||
Represents a direct reference to a variable imported from the run-time
|
||||
|
|
Loading…
Reference in New Issue
Block a user