<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><p style="margin: 0.0px 0.0px 0.0px 0.0px">Change 20080922-dda-B by <a href="mailto:dda@lester.local">dda@lester.local</a> on 2008-09-22 15:42:21 EDT</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>in /Users/dda/laszlo/src/svn/openlaszlo/trunk-a</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>for <a href="http://svn.openlaszlo.org/openlaszlo/trunk">http://svn.openlaszlo.org/openlaszlo/trunk</a></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Summary: Force all functions and vars in classes to be public when compiling in debug</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">New Features:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Bugs Fixed: LPP-6996</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Technical Reviewer: ptw (pending)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">QA Reviewer: (pending)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Doc Reviewer: (pending)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Documentation:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Release Notes:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Details:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>The new 'publicizing' behavior triggers on the "DEBUG" option (which is converted internally to "DEBUG_SWF9"</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>internally) and is specifically disabled by the "DISABLE_PUBLIC_FOR_DEBUG" option.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>Thus, compiling via lzc with the -g turns 'publicizing' on, and the SWF9 debug LFC is compiled<span class="Apple-converted-space">&nbsp;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>with 'publicized' methods. and vars.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>When publicizing, a method/var is publicized no matter how it is declared (public/private/protected or nothing),</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>so long as it is a child of a 'class' definition.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><span class="Apple-converted-space">&nbsp;&nbsp;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>Part of the change was to modify ParseTreePrinter and SWF9ParseTreePrinter to not have</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>increasingly complex constructors for every little option, but each now has a Config class</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>that is used for constructor options.<span class="Apple-converted-space">&nbsp; </span>Considered using Compiler.OptionMap, but it's nice</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>for *ParseTreePrinter to be more self contained and encapsulated.<span class="Apple-converted-space">&nbsp;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>JavascriptGenerator.java:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>Use the new Config object</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>SWF9Generator.java:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>Use the new Config object</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>get the new 'forcePublicMembers' config entry from DEBUG (overridden via DISABLE_PUBLIC_FOR_DEBUG)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>ParseTreePrinter.java:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>Add/use new Config class</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>SWF9ParseTreePrinter.java:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>Add/use new Config class</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>Pass forcePublicMembers for children of a class definition</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>Compiler.java:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>Add -DdisablePublicForDebug</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>parser/SimpleNode.java</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>expose parent as a SimpleNode.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>parser/ASTModifiedDefinition</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>override access to print 'public' as appropriate.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; </span>lfc/debugger/platform/swf9/LzDebug.as:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>LzAS3DebugService.objectOwnProperties needs to be declared public since it is overriding a function</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>that is now public (not private).<span class="Apple-converted-space">&nbsp; </span>Normally this is handled by the mechanism above, but</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp; &nbsp; </span>this function declaration is in a #passthrough entry, so everything is passed verbatim.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Tests:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp;&nbsp; </span>Regression: SWF8,DHTML smokecheck<span class="Apple-converted-space">&nbsp; </span>(SWF8 currently has 3 errors, as it does without this changeset).</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp;&nbsp; </span>weather SWF8,DHTML,SWF9<span class="Apple-converted-space">&nbsp; </span>debug/non-debug</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp;&nbsp; </span>compiled weather.lzx from command line (lzc -g) and (lzc -g -DdisablePublicForDebug) to</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp;&nbsp; </span>confirm that one forces public and the other does not -- by looking at output files.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp;&nbsp; </span>lzc -g -DdisablePublicForDebug has many errors because of overrides that do not</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp;&nbsp; </span>match public access in LFC9-debug.swc .<span class="Apple-converted-space">&nbsp; </span>We'd need to make a special library</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px"><span class="Apple-converted-space">&nbsp;&nbsp; </span>built the same way to make this a useful option.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Files:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">M<span class="Apple-converted-space">&nbsp; &nbsp; &nbsp; </span>WEB-INF/lps/lfc/debugger/platform/swf9/LzDebug.as</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">M<span class="Apple-converted-space">&nbsp; &nbsp; &nbsp; </span>WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">M<span class="Apple-converted-space">&nbsp; &nbsp; &nbsp; </span>WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">M<span class="Apple-converted-space">&nbsp; &nbsp; &nbsp; </span>WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9ParseTreePrinter.java</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">M<span class="Apple-converted-space">&nbsp; &nbsp; &nbsp; </span>WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">M<span class="Apple-converted-space">&nbsp; &nbsp; &nbsp; </span>WEB-INF/lps/server/src/org/openlaszlo/sc/ParseTreePrinter.java</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">M<span class="Apple-converted-space">&nbsp; &nbsp; &nbsp; </span>WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/SimpleNode.java</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">M<span class="Apple-converted-space">&nbsp; &nbsp; &nbsp; </span>WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTModifiedDefinition.java</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><br></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px">Changeset: <a href="http://svn.openlaszlo.org/openlaszlo/patches/20080922-dda-B.tar">http://svn.openlaszlo.org/openlaszlo/patches/20080922-dda-B.tar</a></p>
<br><br><div> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br class="Apple-interchange-newline">--</div><div><br>Don Anderson<br>Java/C/C++, Berkeley DB, systems consultant<br><br>voice: 617-547-7881<br>email:&nbsp;<a href="mailto:dda@ddanderson.com">dda@ddanderson.com</a><br>www:&nbsp;<a href="http://www.ddanderson.com/">http://www.ddanderson.com</a><br></div></div></span></span><br class="Apple-interchange-newline"></div></span></div></span><br class="Apple-interchange-newline"> </div><br></body></html>