Ah that probably explains why I was having  trouble cutting the components example down to a simpler test case..<br><br><br><div class="gmail_quote">On Thu, Dec 3, 2009 at 8:30 AM, P T Withington <span dir="ltr">&lt;<a href="mailto:ptw@pobox.com">ptw@pobox.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Well crap.<br>
<br>
I think you need to write the remote console for DHTML.  It seems possible that the debugger console is the perturbing factor.  Possibly it causes component classes to be initialized in a different order, and hence changes the application order of constraints within those classes? :(<br>

<br>
FWIW, Max and I are chasing a similar Heisenbug with .lzo&#39;s.  Your favorite large app fails to initialize with .lzo&#39;s, but if we enable debugging, the bug goes away.<br>
<br>
Looks like we need to apply all eyes to how the debugger perturbs constraint application order...<br>
<div><div></div><div class="h5"><br>
On 2009-12-03, at 08:25, Henry Minsky wrote:<br>
<br>
&gt; The bug with layout does not  happen when debug=true, can you think of any<br>
&gt; thing  off the top of your head in that change that might<br>
&gt; be dependent on the debug flag?<br>
&gt;<br>
&gt; I&#39;m going to try to get a minimal test case for the radiobutton drawing bug,<br>
&gt; and then compare the<br>
&gt; debug and non-debug js output code, maybe something obvious will be<br>
&gt; different...<br>
&gt;<br>
&gt; On Thu, Dec 3, 2009 at 8:19 AM, P T Withington &lt;<a href="mailto:ptw@pobox.com">ptw@pobox.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; You should link the two bugs to LPP-8088, but also note the _long_ history<br>
&gt;&gt; of 8088.<br>
&gt;&gt;<br>
&gt;&gt; We _really_ want to keep the set of changes in 8088, because it greatly<br>
&gt;&gt; improves the efficiency of the event system (hugely reduces the number of<br>
&gt;&gt; function calls on startup of your favorite large application).<br>
&gt;&gt;<br>
&gt;&gt; Here&#39;s the $0.05 summary, which may give you some clues:<br>
&gt;&gt;<br>
&gt;&gt; 8088 made it so that events are _not_ sent when you set an attribute to the<br>
&gt;&gt; same value, on the theory if the value does not change, then none of the<br>
&gt;&gt; dependent expressions can change.<br>
&gt;&gt;<br>
&gt;&gt; In order to detect when a value is changed, all constrained values start<br>
&gt;&gt; out as `void 0` (undefined), but we know that will propagate as `NaN` in<br>
&gt;&gt; numeric operations, so, before any constraints are applied, all values that<br>
&gt;&gt; will be constrained are set to `null`.  Finally, while an object is being<br>
&gt;&gt; initialized, events are _always_ sent, because our constraint system<br>
&gt;&gt; (apparently) relies on a superfluity of events to get circular dependencies<br>
&gt;&gt; to settle.  [There is surely a better way to solve this problem, like<br>
&gt;&gt; implement a real constraint-solver, but we&#39;ve gotten by so far...]<br>
&gt;&gt;<br>
&gt;&gt; Bottom line is, you probably need to trace the application of constraints<br>
&gt;&gt; to see where things are going awry...  Probably the layout is looking at the<br>
&gt;&gt; views before their dimensions have settled.<br>
&gt;&gt;<br>
&gt;&gt; On 2009-12-03, at 07:33, Henry Minsky wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Regarding LPP-8639 and LPP-8626, I did a binary search and this change<br>
&gt;&gt; seems<br>
&gt;&gt;&gt; like it is partially responsible.<br>
&gt;&gt;&gt; This change makes the radio buttons render correctly again in the dev<br>
&gt;&gt;&gt; console (you need to explicitly recompile<br>
&gt;&gt;&gt; the dev console to see the change, of course) but doesn&#39;t seem to make<br>
&gt;&gt; any<br>
&gt;&gt;&gt; difference to the layout of the<br>
&gt;&gt;&gt; first list component example.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; But I&#39;ll see if I can see what&#39;s happening to the radio button, and maybe<br>
&gt;&gt;&gt; that will give a clue as to what<br>
&gt;&gt;&gt; might be wrong with the list component.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; r13837 | ptw | 2009-05-08 15:44:23 -0400 (Fri, 08 May 2009) | 25 lines<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Change 20090508-ptw-G by ptw@dueling-banjos.home on 2009-05-08 10:52:53<br>
&gt;&gt; EDT<br>
&gt;&gt;&gt;   in /Users/ptw/OpenLaszlo/trunk-2<br>
&gt;&gt;&gt;   for <a href="http://svn.openlaszlo.org/openlaszlo/trunk" target="_blank">http://svn.openlaszlo.org/openlaszlo/trunk</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Summary: Ensure dynamic properties are created in instances<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Bugs Fixed: LPP-8088  DHTML: many warnings from applyConstraintMethod()<br>
&gt;&gt;&gt; (partial)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Technical Reviewer: max (Message-ID: &lt;<a href="mailto:4A048949.2060200@laszlosystems.com">4A048949.2060200@laszlosystems.com</a><br>
&gt;&gt;&gt; )<br>
&gt;&gt;&gt; QA Reviewer: hminsky (pending)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Details:<br>
&gt;&gt;&gt;   Clean up the code in LzNode that makes sure dynamic properties<br>
&gt;&gt;&gt;   exist by using a cross-platform test:  if accessing the dynamic<br>
&gt;&gt;&gt;   property returns undefined, make sure it exists in the instance by<br>
&gt;&gt;&gt;   setting it to undefined.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;   This does not fix the warning part of the bug, but it does make<br>
&gt;&gt;&gt;   swf9 work again.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Tests:<br>
&gt;&gt;&gt;   <a href="http://localhost:8080/4.2/test/extensions/html.lzx?lzr=swf9" target="_blank">http://localhost:8080/4.2/test/extensions/html.lzx?lzr=swf9</a> No<br>
&gt;&gt;&gt;   longer gets a runtime error.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Henry Minsky<br>
&gt;&gt;&gt; Software Architect<br>
&gt;&gt;&gt; <a href="mailto:hminsky@laszlosystems.com">hminsky@laszlosystems.com</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Henry Minsky<br>
&gt; Software Architect<br>
&gt; <a href="mailto:hminsky@laszlosystems.com">hminsky@laszlosystems.com</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Henry Minsky<br>Software Architect<br><a href="mailto:hminsky@laszlosystems.com">hminsky@laszlosystems.com</a><br><br><br>