Handbook
Glossary
homogeneous-aggregate-members ( type -- members/f )
Vocabulary
cpu
.
arm
.
64
.
abi
Inputs
type
an
object
Outputs
members/f
an
object
Definition
IN:
cpu.arm.64.abi
GENERIC:
homogeneous-aggregate-members
( type -- members/f )
Methods
USING:
alien.arrays
alien.c-types
arrays
cpu.arm.64.abi
kernel
math
sequences
;
M::
array
homogeneous-aggregate-members
( type -- members/f )
type
unclip
[
array-length
]
[
lookup-c-type
]
bi*
:>
( count element ) element
homogeneous-aggregate-members
:>
members members
[
count
<iota>
[
members
swap
element
heap-size
*
offset-homogeneous-members
]
map
concat
type
heap-size
dense-homogeneous-members
]
[
f
]
if
;
USING:
alien.c-types
arrays
cpu.architecture
cpu.arm.64.abi
kernel
;
M:
object
homogeneous-aggregate-members
c-type-rep
dup
homogeneous-rep?
[
homogeneous-rep
[
drop
0
]
[
rep-size
]
[
]
tri
3array
1array
]
[
drop
f
]
if
;
USING:
alien.arrays
cpu.arm.64.abi
kernel
;
M:
string-type
homogeneous-aggregate-members
drop
f
;
USING:
accessors
alien.c-types
classes.struct
cpu.arm.64.abi
kernel
sequences
;
M::
struct-c-type
homogeneous-aggregate-members
( type -- members/f )
type
fields>>
[|
field |
field
type>>
lookup-c-type
homogeneous-aggregate-members
[
field
offset>>
offset-homogeneous-members
]
[
f
]
if*
]
map
:>
fields fields
[
]
all?
[
fields
concat
type
heap-size
dense-homogeneous-members
]
[
f
]
if
;