[Laszlo-dev] For Review: Change 20080922-dda-B Summary: Force all functions and vars in classes to be public when compiling in debug

Henry Minsky henry.minsky at gmail.com
Mon Sep 22 16:41:04 PDT 2008


I just sent a small changeset to Tucker for the debug eval, not sure why it
won't work withouthaving debug flag set.


On Mon, Sep 22, 2008 at 7:29 PM, P T Withington <ptw at laszlosystems.com>wrote:

> Fabulous.  Approved.
>
> You will have to amend swf9/LzDebug as I added another passthrough
> override.
>
> Please file as an improvement the following idea:
>
> 1) Go through the LFC and declare all properties that are not marked
> @access private as public.
> 2) Improve the public-for-debug mechanism to only work on LZX code, and
> leave the LFC alone (i.e., don't public-ify non-public in the LFC)
> 3) Add an optional LFC developer build of the LFC that marks everything in
> the LFC as public, for debugging the LFC.
>
>
> On 2008-09-22, at 16:28EDT, Donald Anderson wrote:
>
>  Change 20080922-dda-B by dda at lester.local on 2008-09-22 15:42:21 EDT
>>   in /Users/dda/laszlo/src/svn/openlaszlo/trunk-a
>>   for http://svn.openlaszlo.org/openlaszlo/trunk
>>
>> Summary: Force all functions and vars in classes to be public when
>> compiling in debug
>>
>> New Features:
>>
>> Bugs Fixed: LPP-6996
>>
>> Technical Reviewer: ptw (pending)
>> QA Reviewer: (pending)
>> Doc Reviewer: (pending)
>>
>> Documentation:
>>
>> Release Notes:
>>
>> Details:
>>  The new 'publicizing' behavior triggers on the "DEBUG" option (which is
>> converted internally to "DEBUG_SWF9"
>>  internally) and is specifically disabled by the
>> "DISABLE_PUBLIC_FOR_DEBUG" option.
>>  Thus, compiling via lzc with the -g turns 'publicizing' on, and the SWF9
>> debug LFC is compiled
>>  with 'publicized' methods. and vars.
>>
>>  When publicizing, a method/var is publicized no matter how it is declared
>> (public/private/protected or nothing),
>>  so long as it is a child of a 'class' definition.
>>
>>  Part of the change was to modify ParseTreePrinter and
>> SWF9ParseTreePrinter to not have
>>  increasingly complex constructors for every little option, but each now
>> has a Config class
>>  that is used for constructor options.  Considered using
>> Compiler.OptionMap, but it's nice
>>  for *ParseTreePrinter to be more self contained and encapsulated.
>>
>>  JavascriptGenerator.java:
>>   Use the new Config object
>>
>>  SWF9Generator.java:
>>   Use the new Config object
>>   get the new 'forcePublicMembers' config entry from DEBUG (overridden via
>> DISABLE_PUBLIC_FOR_DEBUG)
>>
>>  ParseTreePrinter.java:
>>   Add/use new Config class
>>
>>  SWF9ParseTreePrinter.java:
>>   Add/use new Config class
>>   Pass forcePublicMembers for children of a class definition
>>
>>  Compiler.java:
>>   Add -DdisablePublicForDebug
>>
>>  parser/SimpleNode.java
>>   expose parent as a SimpleNode.
>>
>>  parser/ASTModifiedDefinition
>>   override access to print 'public' as appropriate.
>>
>>  lfc/debugger/platform/swf9/LzDebug.as:
>>   LzAS3DebugService.objectOwnProperties needs to be declared public since
>> it is overriding a function
>>   that is now public (not private).  Normally this is handled by the
>> mechanism above, but
>>   this function declaration is in a #passthrough entry, so everything is
>> passed verbatim.
>>
>> Tests:
>>  Regression: SWF8,DHTML smokecheck  (SWF8 currently has 3 errors, as it
>> does without this changeset).
>>  weather SWF8,DHTML,SWF9  debug/non-debug
>>
>>  compiled weather.lzx from command line (lzc -g) and (lzc -g
>> -DdisablePublicForDebug) to
>>  confirm that one forces public and the other does not -- by looking at
>> output files.
>>  lzc -g -DdisablePublicForDebug has many errors because of overrides that
>> do not
>>  match public access in LFC9-debug.swc .  We'd need to make a special
>> library
>>  built the same way to make this a useful option.
>>
>> Files:
>> M      WEB-INF/lps/lfc/debugger/platform/swf9/LzDebug.as
>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java
>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9ParseTreePrinter.java
>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/ParseTreePrinter.java
>> M      WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/SimpleNode.java
>> M
>>  WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTModifiedDefinition.java
>>
>> Changeset:
>> http://svn.openlaszlo.org/openlaszlo/patches/20080922-dda-B.tar
>>
>>
>>
>> --
>>
>> Don Anderson
>> Java/C/C++, Berkeley DB, systems consultant
>>
>> voice: 617-547-7881
>> email: dda at ddanderson.com
>> www: http://www.ddanderson.com
>>
>>
>>
>>
>


-- 
Henry Minsky
Software Architect
hminsky at laszlosystems.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.openlaszlo.org/pipermail/laszlo-dev/attachments/20080922/f845104d/attachment-0001.html


More information about the Laszlo-dev mailing list