- auto-invoke code gc
- fix alien-callback/SEH bug on win32
-- x11: scroll up/down wiggles caret
+- live search: timer delay would be nice
+- help responder has no way to access { "foo" "bar" }
+- httpd search tools
+- polish OS X menu bar code
+- list selection broken
+ ui:
- completion is not ideal: eg, search for "buttons"
-- live search: timer delay would be nice
- some way of intercepting all gestures
- slider needs to be modelized
- better help result ranking
space
- grid slows down with 2000 lines
- see if its possible to only repaint dirty regions
-- polish OS X menu bar code
- structure editor
+ module system:
+ compiler/ffi:
- more compact relocation info
-- cocoa: support real redefinition
- relocation should not cons at all
- stdcall callbacks
- [ [ dup call ] dup call ] infer hangs
+ httpd:
-- help responder has no way to access { "foo" "bar" }
-- httpd search tools
- remaining HTML issues need fixing
dup length dup <empty-method-list> -rot
[ pick method-list@ objc-method-nth init-method ] 2each ;
-: <method-lists> ( methods -- lists )
- <method-list> alien-address
- "void*" <malloc-object> [ 0 set-alien-unsigned-cell ] keep ;
+: define-objc-methods ( class methods -- )
+ <method-list> class_addMethods ;
: <objc-class> ( name info -- class )
"objc-class" <malloc-object>
dup objc-class-super-class objc-class-instance-size
swap set-objc-class-instance-size ;
-: <meta-class> ( methods superclass name -- class )
+: <meta-class> ( superclass name -- class )
CLS_META <objc-class>
[ >r dup objc-class-isa r> set-objc-class-super-class ] keep
[ >r meta-meta-class r> set-objc-class-isa ] keep
- [ >r <method-lists> r> set-objc-class-methodLists ] keep
dup copy-instance-size ;
-: <new-class> ( methods metaclass superclass name -- class )
+: <new-class> ( metaclass superclass name -- class )
CLS_CLASS <objc-class>
[ set-objc-class-super-class ] keep
[ set-objc-class-isa ] keep
- [ >r <method-lists> r> set-objc-class-methodLists ] keep
dup copy-instance-size ;
-: (define-objc-class) ( imeth cmeth superclass name -- )
- >r objc-class r> [ <meta-class> ] 2keep <new-class>
- objc_addClass ;
+: (define-objc-class) ( superclass name imeth -- )
+ >r
+ >r objc-class r>
+ [ <meta-class> ] 2keep <new-class> dup objc_addClass
+ r> <method-list> class_addMethods ;
: encode-types ( return types -- encoding )
>r 1array r> append
: prepare-methods ( methods -- methods )
[ first4 prepare-method 3array ] map ;
-: define-objc-class ( superclass name imeth cmeth -- )
- pick >r
- [ prepare-methods ] 2apply
- [ 2array % 2array % \ (define-objc-class) , ] [ ] make
- r> swap import-objc-class ;
+: redefine-objc-methods ( name imeth -- )
+ >r objc_getClass r> define-objc-methods ;
+
+: define-objc-class ( superclass name imeth -- )
+ prepare-methods
+ over class-exists? [ 2dup redefine-objc-methods ] when
+ over >r [ 3array % \ (define-objc-class) , ] [ ] make r>
+ swap import-objc-class ;