Fix pane performance regression and add a unit test to catch it
parent
af9fd751a9
commit
037b9bac02
|
@ -1,6 +1,23 @@
|
||||||
|
- auto-invoke code gc
|
||||||
|
- cocoa: support real redefinition
|
||||||
|
- fix this:
|
||||||
|
[ 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 11 11 11 113 ] .
|
||||||
|
[ 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 11 11 11 113
|
||||||
|
]
|
||||||
|
- prettier printing of hashtable literals, alists, cond, ...
|
||||||
|
- the editor should fill up the interior of the scroller completely
|
||||||
|
- hide empty command groups in $commands
|
||||||
|
- ui quick start doc
|
||||||
|
- page scrolling should be timer-based too
|
||||||
|
- x11: scroll up/down wiggles caret
|
||||||
|
- slider needs to be modelized
|
||||||
|
- mouse over for input w/ multiple lines looks stupid
|
||||||
|
- more compact relocation info
|
||||||
|
- hashed generic method dispatch
|
||||||
|
|
||||||
+ ui:
|
+ ui:
|
||||||
|
|
||||||
- the editor should fill up the interior of the scroller completely
|
- some way of intercepting all gestures
|
||||||
- pane output in UI should use less memory
|
- pane output in UI should use less memory
|
||||||
- variable width word wrap
|
- variable width word wrap
|
||||||
- needs layout tricks
|
- needs layout tricks
|
||||||
|
@ -14,16 +31,11 @@
|
||||||
- ui browser: show currently selected vocab & words
|
- ui browser: show currently selected vocab & words
|
||||||
- keyboard-navigatable list gadget of some kind
|
- keyboard-navigatable list gadget of some kind
|
||||||
- tuple= in dataflow view
|
- tuple= in dataflow view
|
||||||
- hide empty command groups in $commands
|
|
||||||
- ui quick start doc
|
|
||||||
- auto-update browser and help when sources reload
|
- auto-update browser and help when sources reload
|
||||||
- how do we refer to command shortcuts in the docs?
|
- how do we refer to command shortcuts in the docs?
|
||||||
- figure out if we need both set-model and set-model*
|
- figure out if we need both set-model and set-model*
|
||||||
- if i do 10000 [ . ] each and then clear, the listener window is slow
|
|
||||||
- full-height nodes should really be full height
|
- full-height nodes should really be full height
|
||||||
- better help result ranking
|
- better help result ranking
|
||||||
- page scrolling should be timer-based too
|
|
||||||
- x11: scroll up/down wiggles caret
|
|
||||||
- roundoff is still not quite right with tracks
|
- roundoff is still not quite right with tracks
|
||||||
- fix top level window positioning
|
- fix top level window positioning
|
||||||
- x11.app has a problem with A+ keys
|
- x11.app has a problem with A+ keys
|
||||||
|
@ -38,7 +50,6 @@
|
||||||
- more efficient multi-line inserts
|
- more efficient multi-line inserts
|
||||||
- write "foo| " and put caret at | then select word element: selects
|
- write "foo| " and put caret at | then select word element: selects
|
||||||
space
|
space
|
||||||
- slider needs to be modelized
|
|
||||||
- fonts/ should go inside the .app -- we need multi-tier resource-path
|
- fonts/ should go inside the .app -- we need multi-tier resource-path
|
||||||
- should be possible to drop an image file on the .app to run it
|
- should be possible to drop an image file on the .app to run it
|
||||||
- support x11's large selections, if needed
|
- support x11's large selections, if needed
|
||||||
|
@ -53,7 +64,6 @@
|
||||||
- horizontal wheel scrolling
|
- horizontal wheel scrolling
|
||||||
- polish OS X menu bar code
|
- polish OS X menu bar code
|
||||||
- structure editor
|
- structure editor
|
||||||
- mouse over for input w/ multiple lines looks stupid
|
|
||||||
|
|
||||||
+ module system:
|
+ module system:
|
||||||
|
|
||||||
|
@ -70,7 +80,6 @@
|
||||||
|
|
||||||
+ compiler/ffi:
|
+ compiler/ffi:
|
||||||
|
|
||||||
- more compact relocation info
|
|
||||||
- problem if major gc happens during relocation
|
- problem if major gc happens during relocation
|
||||||
- in fact relocation should not cons at all
|
- in fact relocation should not cons at all
|
||||||
- stdcall callbacks
|
- stdcall callbacks
|
||||||
|
@ -100,11 +109,6 @@
|
||||||
- signal 4 on datastack underflow on mac intel??
|
- signal 4 on datastack underflow on mac intel??
|
||||||
- fix alien-callback/SEH bug on win32
|
- fix alien-callback/SEH bug on win32
|
||||||
- minor GC takes too long now, we should card mark code heap
|
- minor GC takes too long now, we should card mark code heap
|
||||||
- fix this:
|
|
||||||
[ 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 11 11 11 113 ] .
|
|
||||||
[ 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 11 11 11 113
|
|
||||||
]
|
|
||||||
- prettier printing of hashtable literals, alists, cond, ...
|
|
||||||
- buffer-ptr should be an alien
|
- buffer-ptr should be an alien
|
||||||
- swap nappend ==> nappend
|
- swap nappend ==> nappend
|
||||||
- sometimes darcs get fails with the httpd
|
- sometimes darcs get fails with the httpd
|
||||||
|
@ -114,7 +118,6 @@
|
||||||
- incremental GC
|
- incremental GC
|
||||||
- UDP
|
- UDP
|
||||||
- slice: if sequence or seq start is changed, abstraction violation
|
- slice: if sequence or seq start is changed, abstraction violation
|
||||||
- hashed generic method dispatch
|
|
||||||
|
|
||||||
+ httpd:
|
+ httpd:
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ M: pane stream-flush drop ;
|
||||||
dup pane-scrolls? [ scroll>bottom ] [ drop ] if ;
|
dup pane-scrolls? [ scroll>bottom ] [ drop ] if ;
|
||||||
|
|
||||||
M: pane stream-terpri
|
M: pane stream-terpri
|
||||||
dup pane-current prepare-print
|
dup pane-current dup unparent prepare-print
|
||||||
over pane-output add-incremental
|
over pane-output add-incremental
|
||||||
dup prepare-line
|
dup prepare-line
|
||||||
scroll-pane ;
|
scroll-pane ;
|
||||||
|
|
|
@ -52,4 +52,5 @@ PROVIDE: library/ui {
|
||||||
"test/rectangles.factor"
|
"test/rectangles.factor"
|
||||||
"test/fields.factor"
|
"test/fields.factor"
|
||||||
"test/commands.factor"
|
"test/commands.factor"
|
||||||
|
"test/panes.factor"
|
||||||
} ;
|
} ;
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
IN: temporary
|
||||||
|
USING: gadgets-panes gadgets freetype namespaces kernel
|
||||||
|
sequences io test prettyprint ;
|
||||||
|
|
||||||
|
: maybe-with-freetype
|
||||||
|
freetype get [ call ] [ with-freetype ] if ; inline
|
||||||
|
|
||||||
|
: #children "pane" get gadget-children length ;
|
||||||
|
|
||||||
|
[
|
||||||
|
<pane> "pane" set
|
||||||
|
|
||||||
|
#children "num-children" set
|
||||||
|
|
||||||
|
"pane" get [ 10000 [ . ] each ] with-stream*
|
||||||
|
|
||||||
|
[ t ] [ #children "num-children" get = ] unit-test
|
||||||
|
] maybe-with-freetype
|
Loading…
Reference in New Issue