Fix pane performance regression and add a unit test to catch it

slava 2006-09-29 19:59:06 +00:00
parent af9fd751a9
commit 037b9bac02
4 changed files with 38 additions and 16 deletions

View File

@ -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:
- 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
- variable width word wrap
- needs layout tricks
@ -14,16 +31,11 @@
- ui browser: show currently selected vocab & words
- keyboard-navigatable list gadget of some kind
- tuple= in dataflow view
- hide empty command groups in $commands
- ui quick start doc
- auto-update browser and help when sources reload
- how do we refer to command shortcuts in the docs?
- 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
- 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
- fix top level window positioning
- x11.app has a problem with A+ keys
@ -38,7 +50,6 @@
- more efficient multi-line inserts
- write "foo| " and put caret at | then select word element: selects
space
- slider needs to be modelized
- 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
- support x11's large selections, if needed
@ -53,7 +64,6 @@
- horizontal wheel scrolling
- polish OS X menu bar code
- structure editor
- mouse over for input w/ multiple lines looks stupid
+ module system:
@ -70,7 +80,6 @@
+ compiler/ffi:
- more compact relocation info
- problem if major gc happens during relocation
- in fact relocation should not cons at all
- stdcall callbacks
@ -100,11 +109,6 @@
- signal 4 on datastack underflow on mac intel??
- fix alien-callback/SEH bug on win32
- 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
- swap nappend ==> nappend
- sometimes darcs get fails with the httpd
@ -114,7 +118,6 @@
- incremental GC
- UDP
- slice: if sequence or seq start is changed, abstraction violation
- hashed generic method dispatch
+ httpd:

View File

@ -64,7 +64,7 @@ M: pane stream-flush drop ;
dup pane-scrolls? [ scroll>bottom ] [ drop ] if ;
M: pane stream-terpri
dup pane-current prepare-print
dup pane-current dup unparent prepare-print
over pane-output add-incremental
dup prepare-line
scroll-pane ;

View File

@ -52,4 +52,5 @@ PROVIDE: library/ui {
"test/rectangles.factor"
"test/fields.factor"
"test/commands.factor"
"test/panes.factor"
} ;

View File

@ -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