libera/#clim - IRC Chatlog
Search
7:02:49
mrcom
beach: Aha. Profiler shows RECOMPUTE-EXTENT-FOR-CHANGED-CHILD is being called for every PO I'm creating, and it calls %TREE-RECOMPUTE-EXTENT each time.
7:05:18
jackdaniel
mrcom: when you debug repaint, print data to *debug-io*, this stream is not bound by the frame loop
7:06:15
mrcom
Is there some canonical way to avoid recomputing extents when adding presentation objects to a long list?
7:08:59
jackdaniel
repaint has planned™ improvements, my proof of concept worked wonderfully for me
7:10:18
jackdaniel
regarding recomputing extent after adding elements, currently we eagerly call tree-recompute-extent after we add elements, but that's arguably not correct; I recall that there is a hint in the spec that it is the programmer who is responsible for that
7:11:12
jackdaniel
but generally this requires further investigation whether this intuit is right, and of course implementation (if it is), or eventually whether we can do something else to postpone things (i.e lazy evaluation)
7:12:36
jackdaniel
if you fill a ticket on the issue tracker with description and simple code to reproduce then I won't forget about this issue
7:12:39
mrcom
It's nice having a 12k-item list to scroll in (scrolling is quick), but maybe a query would be better.
7:13:24
mrcom
OK, but let me ask first--is a >10k item long list pane a reasonable thing for you to support?
7:16:30
mrcom
(Talking to myself) Probably not good UI. However, a very large graph would be very nice to scroll and zoom in.
7:33:00
jackdaniel
perhaps it should not work flawlessly for naive implementations, but we should advertise (and document) a way to have such a list
17:12:33
mrcom
Was building a FORMATTING-ITEM-LIST (just one column), which was updating the extents for each item.
17:14:25
mrcom
I switched to plain write-string/terpri and UPDATING-OUTPUT and its *much* *much* faster.
17:15:21
mrcom
Oh, and :DISPLAY-TIME NIL for the panes fixed the redisplay-each-command-loop problem. :/
17:18:16
mrcom
Formatting-item-list calls (setf (position-something-or-other child)) for each element, and that's what was calling RECOMPUTE-EXTENT.
17:54:10
beach
Yes, I think I mentioned that if you do a redisplay every time, then you will rebuild the output history.