Handbook
Glossary
unbox-tuples* ( node -- node/nodes )
Vocabulary
compiler
.
tree
.
tuple-unboxing
Inputs
node
an
object
Outputs
node/nodes
an
object
Definition
IN:
compiler.tree.tuple-unboxing
GENERIC:
unbox-tuples*
( node -- node/nodes )
Methods
USING:
compiler.tree
compiler.tree.tuple-unboxing
;
M:
#alien-callback
unbox-tuples*
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
kernel
;
M:
#alien-node
unbox-tuples*
dup
in-d>>
assert-not-unboxed
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
kernel
;
M:
#branch
unbox-tuples*
dup
in-d>>
assert-not-unboxed
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
;
M:
#call-recursive
unbox-tuples*
[
flatten-values
]
change-in-d
[
flatten-values
]
change-out-d
;
USING:
accessors
classes.tuple.private
combinators
compiler.tree
compiler.tree.tuple-unboxing
kernel
slots.private
;
M:
#call
unbox-tuples*
dup
word>>
{
{
\
<tuple-boa>
[
unbox-<tuple-boa>
]
}
{
\
slot
[
unbox-slot-access
]
}
[
drop
]
}
case
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
;
M:
#copy
unbox-tuples*
[
flatten-values
]
change-in-d
[
flatten-values
]
change-out-d
;
USING:
compiler.tree
compiler.tree.tuple-unboxing
kernel
;
M:
#declare
unbox-tuples*
drop
f
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
;
M:
#enter-recursive
unbox-tuples*
[
flatten-values
]
change-in-d
[
flatten-values
]
change-out-d
;
USING:
accessors
compiler.tree
compiler.tree.escape-analysis.allocations
compiler.tree.tuple-unboxing
kernel
sequences
;
M:
#introduce
unbox-tuples*
dup
out-d>>
[
unboxed-allocation
]
any?
[
unbox-hairy-introduce
]
when
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
sequences
stack-checker.branches
;
M:
#phi
unbox-tuples*
[
[
flatten-values
]
map
pad-with-bottom
]
change-phi-in-d
[
flatten-values
]
change-out-d
;
USING:
compiler.tree
compiler.tree.tuple-unboxing
kernel
;
M:
#push
unbox-tuples*
dup
unbox-output?
[
expand-#push
]
when
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
kernel
;
M:
#recursive
unbox-tuples*
[
label>>
[
flatten-values
]
change-enter-out
drop
]
[
[
flatten-values
]
change-in-d
]
bi
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
;
M:
#return-recursive
unbox-tuples*
[
flatten-values
]
change-in-d
[
flatten-values
]
change-out-d
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
kernel
;
M:
#return
unbox-tuples*
dup
in-d>>
assert-not-unboxed
;
USING:
accessors
assocs
compiler.tree
compiler.tree.tuple-unboxing
kernel
;
M:
#shuffle
unbox-tuples*
[
flatten-values
]
change-in-d
[
flatten-values
]
change-out-d
[
flatten-values
]
change-in-r
[
flatten-values
]
change-out-r
[
unzip
[
flatten-values
]
bi@
zip
]
change-mapping
;
USING:
accessors
compiler.tree
compiler.tree.tuple-unboxing
;
M:
#terminate
unbox-tuples*
[
flatten-values
]
change-in-d
[
flatten-values
]
change-in-r
;