: *T ( alien -- z )
T-class memory>struct [ real>> ] [ imaginary>> ] bi rect> ; inline
-T-class c-type
+T-class lookup-c-type
<T> 1quotation >>unboxer-quot
*T 1quotation >>boxer-quot
complex >>boxed-class
} 2cleave ;
M: db-connection query>statement ( query -- tuple )
- [ tuple>> dup class ] keep
+ [ tuple>> dup class-of ] keep
[ <select-by-slots-statement> ] dip make-query* ;
! select ID, NAME, SCORE from EXAM limit 1 offset 3
M: db-connection <count-statement> ( query -- statement )
- [ tuple>> dup class ] keep
+ [ tuple>> dup class-of ] keep
[ [ "select count(*) from " 0% 0% where-clause ] query-make ]
dip make-query* ;
GENERIC: eval-generator ( singleton -- object )
: resulting-tuple ( exemplar-tuple row out-params -- tuple )
- rot class new [
+ rot class-of new [
'[ slot-name>> _ set-slot-named ] 2each
] keep ;
] if ; inline
: insert-db-assigned-statement ( tuple -- )
- dup class
+ dup class-of
db-connection get insert-statements>>
[ <insert-db-assigned-statement> ] cache
[ bind-tuple ] 2keep insert-tuple-set-key ;
: insert-user-assigned-statement ( tuple -- )
- dup class
+ dup class-of
db-connection get insert-statements>>
[ <insert-user-assigned-statement> ] cache
[ bind-tuple ] keep execute-statement ;
: ensure-tables ( classes -- ) [ ensure-table ] each ;
: insert-tuple ( tuple -- )
- dup class ensure-defined-persistent db-assigned?
+ dup class-of ensure-defined-persistent db-assigned?
[ insert-db-assigned-statement ] [ insert-user-assigned-statement ] if ;
: update-tuple ( tuple -- )
- dup class ensure-defined-persistent
+ dup class-of ensure-defined-persistent
db-connection get update-statements>> [ <update-tuple-statement> ] cache
[ bind-tuple ] keep execute-statement ;
: delete-tuples ( tuple -- )
dup
- dup class ensure-defined-persistent
+ dup class-of ensure-defined-persistent
<delete-tuples-statement> [
[ bind-tuple ] keep execute-statement
] with-disposal ;
ERROR: no-slot ;
: offset-of-slot ( string tuple -- n )
- class all-slots slot-named dup [ no-slot ] unless offset>> ;
+ class-of all-slots slot-named dup [ no-slot ] unless offset>> ;
: get-slot-named ( name tuple -- value )
[ nip ] [ offset-of-slot ] 2bi slot ;
: set-primary-key ( value tuple -- )
[
- class db-columns
+ class-of db-columns
find-primary-key first slot-name>>
] keep set-slot-named ;
] recover ;
: random-local-server ( -- server )
- remote-address get class new binary <server> ;
+ remote-address get class-of new binary <server> ;
: port>bytes ( port -- hi lo )
[ -8 shift ] keep [ 8 bits ] bi@ ;
: base-path ( string -- seq )
dup responder-nesting get
- [ second class superclasses [ name>> = ] with any? ] with find nip
+ [ second class-of superclasses [ name>> = ] with any? ] with find nip
[ first ] [ no-such-responder ] ?if ;
: resolve-base-path ( string -- string' )
TYPEDEF: guint32 gunichar
TYPEDEF: void* va_list
-int c-type clone
+int lookup-c-type clone
[ >c-bool ] >>unboxer-quot
[ c-bool> ] >>boxer-quot
object >>boxed-class
qualified-type-name type-infos get-global at ;
:: register-type ( c-type type-info name -- )
- type-info lookup-c-type >>c-type name
+ type-info c-type >>c-type name
type-infos get-global set-at ;
: register-standard-type ( c-type name -- )
\ prepend 1 [ [ ?head assure ] curry ] define-pop-inverse
: assure-same-class ( obj1 obj2 -- )
- [ class ] bi@ = assure ; inline
+ [ class-of ] bi@ = assure ; inline
\ output>sequence 2 [ [undo] '[ dup _ assure-same-class _ input<sequence ] ] define-pop-inverse
\ input<sequence 1 [ [undo] '[ _ { } output>sequence ] ] define-pop-inverse
name>> { [ "glGetError" = not ] [ "gl" head? ] [ third LETTER? ] } 1&& ;
: gl-functions ( -- words )
- "opengl.gl" vocab words [ gl-function? ] filter ;
+ "opengl.gl" lookup-vocab words [ gl-function? ] filter ;
: annotate-gl-functions ( quot -- )
[
M: tuple (serialize) ( obj -- )
[
CHAR: T write1
- [ class (serialize) ]
+ [ class-of (serialize) ]
[ add-object ]
[ tuple>array rest (serialize) ]
tri
ERROR: smtp-error response ;
M: smtp-error error.
- "SMTP error (" write dup class pprint ")" print
+ "SMTP error (" write dup class-of pprint ")" print
response>> messages>> [ print ] each ;
ERROR: smtp-server-busy < smtp-error ;
] when ;
: strip-debugger ( -- )
- strip-debugger? "debugger" vocab and [
+ strip-debugger? "debugger" lookup-vocab and [
"Stripping debugger" show
"vocab:tools/deploy/shaker/strip-debugger.factor"
run-file
] when ;
: strip-ui-error-hook ( -- )
- strip-debugger? deploy-ui? get and "ui" vocab and [
+ strip-debugger? deploy-ui? get and "ui" lookup-vocab and [
"Installing generic UI error hook" show
"vocab:tools/deploy/shaker/strip-ui-error-hook.factor"
run-file
] when ;
: strip-libc ( -- )
- "libc" vocab [
+ "libc" lookup-vocab [
"Stripping manual memory management debug code" show
"vocab:tools/deploy/shaker/strip-libc.factor"
run-file
"vocab:tools/deploy/shaker/strip-call.factor" run-file ;
: strip-cocoa ( -- )
- "cocoa" vocab [
+ "cocoa" lookup-vocab [
"Stripping unused Cocoa methods" show
"vocab:tools/deploy/shaker/strip-cocoa.factor"
run-file
] when ;
: strip-gobject ( -- )
- "gobject-introspection.types" vocab [
+ "gobject-introspection.types" lookup-vocab [
"Stripping GObject type info" show
"vocab:tools/deploy/shaker/strip-gobject.factor"
run-file
] when ;
: strip-gtk-icon ( -- )
- "ui.backend.gtk" vocab [
+ "ui.backend.gtk" lookup-vocab [
"Stripping GTK icon loading code" show
"vocab:tools/deploy/shaker/strip-gtk-icon.factor"
run-file
] when ;
: strip-specialized-arrays ( -- )
- strip-dictionary? "specialized-arrays" vocab and [
+ strip-dictionary? "specialized-arrays" lookup-vocab and [
"Stripping specialized arrays" show
"vocab:tools/deploy/shaker/strip-specialized-arrays.factor"
run-file
"” expected input value of type " %
dup expected-type>> name>> %
" but got " %
- dup value>> class name>> %
+ dup value>> class-of name>> %
drop
] "" make ;
"” expected to output value of type " %
dup expected-type>> name>> %
" but gave " %
- dup value>> class name>> %
+ dup value>> class-of name>> %
drop
] "" make ;
] bi
<article> "annotations" add-article
-"annotations" vocab "annotations" >>help drop
+"annotations" lookup-vocab "annotations" >>help drop
annotation-tags [
{
dup [ deg>rad cos behavior angle-cos<< ] connect
horizontal <slider> { 1 2 } grid-add
- behavior class name>> <labeled-gadget> ;
+ behavior class-of name>> <labeled-gadget> ;
:: set-population ( n boids-gadget -- )
boids-gadget [
: (fuel-word-synopsis) ( word usings -- str/f )
[
- [ vocab ] filter interactive-vocabs [ append ] change
+ [ lookup-vocab ] filter interactive-vocabs [ append ] change
fuel-find-word [ synopsis ] [ f ] if*
] with-scope ;
if ; inline
: build-alien-attrs ( alien attrs -- )
- [ class "slots" word-prop ] [ tuple>array rest ] bi
+ [ class-of "slots" word-prop ] [ tuple>array rest ] bi
[ [ name>> ] dip build-alien-attr ] 2each drop ;
M: graph-attributes (build-alien)
"alien.llvm" create swap
[
dup name>> function-pointer ,
- dup return>> lookup-c-type ,
- dup params>> [ second lookup-c-type ] map ,
+ dup return>> c:lookup-c-type ,
+ dup params>> [ second c:lookup-c-type ] map ,
cdecl , \ alien-indirect ,
] [ ] make swap function-effect [ define-declared ] with-compilation-unit ;
TYPED: load-commands ( macho: mach_header_32/64 -- load-commands )
[
- [ class heap-size ]
+ [ class-of heap-size ]
[ >c-ptr <displaced-alien> ]
[ ncmds>> ] tri iota [
drop read-command
: segment-sections ( segment-command -- sections )
{
- [ class heap-size ]
+ [ class-of heap-size ]
[ >c-ptr <displaced-alien> ]
[ nsects>> ]
[ segment_command_64? ]
class-pool pool-new ;
: free-to-pool ( object -- )
- dup class class-pool pool-free ;
+ dup class-of class-pool pool-free ;
SYNTAX: POOL:
scan-word scan-word '[ _ swap <pool> ] [ swap set-class-pool ] bi ;
PRIVATE>
: >toid ( object -- toid )
- [ id>> ] [ class id-slot ] bi <toid> ;
+ [ id>> ] [ class-of id-slot ] bi <toid> ;
M: mdb-persistent id>> ( object -- id )
- dup class id-slot reader-word execute( object -- id ) ;
+ dup class-of id-slot reader-word execute( object -- id ) ;
M: mdb-persistent id<< ( object value -- )
- over class id-slot writer-word execute( object value -- ) ;
+ over class-of id-slot writer-word execute( object value -- ) ;
(mdb-collection) ;
M: mdb-persistent tuple-collection ( tuple -- mdb-collection )
- class (mdb-collection) ;
+ class-of (mdb-collection) ;
M: mdb-persistent mdb-slot-map ( tuple -- string )
- class (mdb-slot-map) ;
+ class-of (mdb-slot-map) ;
M: tuple-class mdb-slot-map ( class -- assoc )
(mdb-slot-map) ;
classes>> [ mdb-slot-map ] map assoc-combine ;
M: mdb-persistent mdb-index-map
- class (mdb-index-map) ;
+ class-of (mdb-index-map) ;
M: tuple-class mdb-index-map
(mdb-index-map) ;
M: mdb-collection mdb-index-map
PRIVATE>
: <tuple-info> ( tuple -- tuple-info )
- class [ V{ } clone ] dip over
+ class-of [ V{ } clone ] dip over
[ [ name>> ] dip push ]
[ [ vocabulary>> ] dip push ] 2bi ; inline
dup arguments>> short.
nl
"Inputs have signature:" print
- dup arguments>> [ class ] map niceify-method .
+ dup arguments>> [ class-of ] map niceify-method .
nl
"Available methods: " print
generic>> methods canonicalize-specializers drop sort-methods
: define-db ( database class -- ) swap [ [ ensure-table ] with-db ] [ "database" set-word-prop ] 2bi ;
: query>tuple ( tuple/query -- tuple ) dup query? [ tuple>> ] when ;
-: w/db ( query quot -- ) [ dup query>tuple class "database" word-prop ] dip with-db ; inline
+: w/db ( query quot -- ) [ dup query>tuple class-of "database" word-prop ] dip with-db ; inline
: get-tuples ( query -- tuples ) [ select-tuples ] w/db ;
: get-tuple ( query -- tuple ) [ select-tuple ] w/db ;
: store-tuple ( tuple -- ) [ insert-tuple ] w/db ;
: solution-path ( n -- str/f )
number>euler "project-euler." prepend
- vocab where dup [ first <pathname> ] when ;
+ lookup-vocab where dup [ first <pathname> ] when ;
PRIVATE>
DEFER: to-strings
: to-string ( obj -- str )
- dup class
+ dup class-of
{
{ \ string [ ] }
{ \ quotation [ call( -- string ) ] }
over \ unboa [ ] 2sequence prepend ;
: ?class ( object -- class )
- dup word? [ class ] unless ;
+ dup word? [ class-of ] unless ;
MACRO: match ( branches -- )
[ dup callable? [ first2 (match-branch) 2array ] unless ] map