update old slot accessors to new accessors
parent
c231faf6d8
commit
9760f3dc58
|
@ -1,13 +1,13 @@
|
||||||
IN: alien.structs
|
IN: alien.structs
|
||||||
USING: alien.c-types strings help.markup help.syntax
|
USING: alien.c-types strings help.markup help.syntax
|
||||||
alien.syntax sequences io arrays slots.deprecated
|
alien.syntax sequences io arrays slots.deprecated
|
||||||
kernel words slots assocs namespaces ;
|
kernel words slots assocs namespaces accessors ;
|
||||||
|
|
||||||
! Deprecated code
|
! Deprecated code
|
||||||
: ($spec-reader-values) ( slot-spec class -- element )
|
: ($spec-reader-values) ( slot-spec class -- element )
|
||||||
dup ?word-name swap 2array
|
dup ?word-name swap 2array
|
||||||
over slot-spec-name
|
over name>>
|
||||||
rot slot-spec-class 2array 2array
|
rot class>> 2array 2array
|
||||||
[ { $instance } swap suffix ] assoc-map ;
|
[ { $instance } swap suffix ] assoc-map ;
|
||||||
|
|
||||||
: $spec-reader-values ( slot-spec class -- )
|
: $spec-reader-values ( slot-spec class -- )
|
||||||
|
@ -16,14 +16,14 @@ kernel words slots assocs namespaces ;
|
||||||
: $spec-reader-description ( slot-spec class -- )
|
: $spec-reader-description ( slot-spec class -- )
|
||||||
[
|
[
|
||||||
"Outputs the value stored in the " ,
|
"Outputs the value stored in the " ,
|
||||||
{ $snippet } rot slot-spec-name suffix ,
|
{ $snippet } rot name>> suffix ,
|
||||||
" slot of " ,
|
" slot of " ,
|
||||||
{ $instance } swap suffix ,
|
{ $instance } swap suffix ,
|
||||||
" instance." ,
|
" instance." ,
|
||||||
] { } make $description ;
|
] { } make $description ;
|
||||||
|
|
||||||
: slot-of-reader ( reader specs -- spec/f )
|
: slot-of-reader ( reader specs -- spec/f )
|
||||||
[ slot-spec-reader eq? ] with find nip ;
|
[ reader>> eq? ] with find nip ;
|
||||||
|
|
||||||
: $spec-reader ( reader slot-specs class -- )
|
: $spec-reader ( reader slot-specs class -- )
|
||||||
>r slot-of-reader r>
|
>r slot-of-reader r>
|
||||||
|
@ -46,14 +46,14 @@ M: word slot-specs "slots" word-prop ;
|
||||||
: $spec-writer-description ( slot-spec class -- )
|
: $spec-writer-description ( slot-spec class -- )
|
||||||
[
|
[
|
||||||
"Stores a new value to the " ,
|
"Stores a new value to the " ,
|
||||||
{ $snippet } rot slot-spec-name suffix ,
|
{ $snippet } rot name>> suffix ,
|
||||||
" slot of " ,
|
" slot of " ,
|
||||||
{ $instance } swap suffix ,
|
{ $instance } swap suffix ,
|
||||||
" instance." ,
|
" instance." ,
|
||||||
] { } make $description ;
|
] { } make $description ;
|
||||||
|
|
||||||
: slot-of-writer ( writer specs -- spec/f )
|
: slot-of-writer ( writer specs -- spec/f )
|
||||||
[ slot-spec-writer eq? ] with find nip ;
|
[ writer>> eq? ] with find nip ;
|
||||||
|
|
||||||
: $spec-writer ( writer slot-specs class -- )
|
: $spec-writer ( writer slot-specs class -- )
|
||||||
>r slot-of-writer r>
|
>r slot-of-writer r>
|
||||||
|
|
|
@ -11,17 +11,17 @@ IN: alien.structs
|
||||||
: struct-offsets ( specs -- size )
|
: struct-offsets ( specs -- size )
|
||||||
0 [
|
0 [
|
||||||
[ class>> align-offset ] keep
|
[ class>> align-offset ] keep
|
||||||
[ set-slot-spec-offset ] 2keep
|
[ (>>offset) ] 2keep
|
||||||
class>> heap-size +
|
class>> heap-size +
|
||||||
] reduce ;
|
] reduce ;
|
||||||
|
|
||||||
: define-struct-slot-word ( spec word quot -- )
|
: define-struct-slot-word ( spec word quot -- )
|
||||||
rot slot-spec-offset prefix define-inline ;
|
rot offset>> prefix define-inline ;
|
||||||
|
|
||||||
: define-getter ( type spec -- )
|
: define-getter ( type spec -- )
|
||||||
[ set-reader-props ] keep
|
[ set-reader-props ] keep
|
||||||
[ ]
|
[ ]
|
||||||
[ slot-spec-reader ]
|
[ reader>> ]
|
||||||
[
|
[
|
||||||
class>>
|
class>>
|
||||||
[ c-getter ] [ c-type c-type-boxer-quot ] bi append
|
[ c-getter ] [ c-type c-type-boxer-quot ] bi append
|
||||||
|
@ -31,7 +31,7 @@ IN: alien.structs
|
||||||
: define-setter ( type spec -- )
|
: define-setter ( type spec -- )
|
||||||
[ set-writer-props ] keep
|
[ set-writer-props ] keep
|
||||||
[ ]
|
[ ]
|
||||||
[ slot-spec-writer ]
|
[ writer>> ]
|
||||||
[ class>> c-setter ] tri
|
[ class>> c-setter ] tri
|
||||||
define-struct-slot-word ;
|
define-struct-slot-word ;
|
||||||
|
|
||||||
|
|
|
@ -6,15 +6,15 @@ classes slots.private combinators slots ;
|
||||||
IN: slots.deprecated
|
IN: slots.deprecated
|
||||||
|
|
||||||
: reader-effect ( class spec -- effect )
|
: reader-effect ( class spec -- effect )
|
||||||
>r ?word-name 1array r> slot-spec-name 1array <effect> ;
|
>r ?word-name 1array r> name>> 1array <effect> ;
|
||||||
|
|
||||||
PREDICATE: slot-reader < word "reading" word-prop >boolean ;
|
PREDICATE: slot-reader < word "reading" word-prop >boolean ;
|
||||||
|
|
||||||
: set-reader-props ( class spec -- )
|
: set-reader-props ( class spec -- )
|
||||||
2dup reader-effect
|
2dup reader-effect
|
||||||
over slot-spec-reader
|
over reader>>
|
||||||
swap "declared-effect" set-word-prop
|
swap "declared-effect" set-word-prop
|
||||||
slot-spec-reader swap "reading" set-word-prop ;
|
reader>> swap "reading" set-word-prop ;
|
||||||
|
|
||||||
: define-slot-word ( class word quot -- )
|
: define-slot-word ( class word quot -- )
|
||||||
[
|
[
|
||||||
|
@ -23,9 +23,9 @@ PREDICATE: slot-reader < word "reading" word-prop >boolean ;
|
||||||
] dip define ;
|
] dip define ;
|
||||||
|
|
||||||
: define-reader ( class spec -- )
|
: define-reader ( class spec -- )
|
||||||
dup slot-spec-reader [
|
dup reader>> [
|
||||||
[ set-reader-props ] 2keep
|
[ set-reader-props ] 2keep
|
||||||
dup slot-spec-reader
|
dup reader>>
|
||||||
swap reader-quot
|
swap reader-quot
|
||||||
define-slot-word
|
define-slot-word
|
||||||
] [
|
] [
|
||||||
|
@ -33,20 +33,20 @@ PREDICATE: slot-reader < word "reading" word-prop >boolean ;
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
: writer-effect ( class spec -- effect )
|
: writer-effect ( class spec -- effect )
|
||||||
slot-spec-name swap ?word-name 2array 0 <effect> ;
|
name>> swap ?word-name 2array 0 <effect> ;
|
||||||
|
|
||||||
PREDICATE: slot-writer < word "writing" word-prop >boolean ;
|
PREDICATE: slot-writer < word "writing" word-prop >boolean ;
|
||||||
|
|
||||||
: set-writer-props ( class spec -- )
|
: set-writer-props ( class spec -- )
|
||||||
2dup writer-effect
|
2dup writer-effect
|
||||||
over slot-spec-writer
|
over writer>>
|
||||||
swap "declared-effect" set-word-prop
|
swap "declared-effect" set-word-prop
|
||||||
slot-spec-writer swap "writing" set-word-prop ;
|
writer>> swap "writing" set-word-prop ;
|
||||||
|
|
||||||
: define-writer ( class spec -- )
|
: define-writer ( class spec -- )
|
||||||
dup slot-spec-writer [
|
dup writer>> [
|
||||||
[ set-writer-props ] 2keep
|
[ set-writer-props ] 2keep
|
||||||
dup slot-spec-writer
|
dup writer>>
|
||||||
swap writer-quot
|
swap writer-quot
|
||||||
define-slot-word
|
define-slot-word
|
||||||
] [
|
] [
|
||||||
|
|
Loading…
Reference in New Issue