[Laszlo-dev] For Review: Change 20080721-dda-7 Summary: Enable -debug options for LFC and applications

Donald Anderson dda at ddanderson.com
Tue Jul 22 14:29:58 PDT 2008


LPP-6705 (cleanup declarations of _dbg_name and _dbg_type).   I put it  
as a P1 on eclair (4.3).

On Jul 22, 2008, at 4:59 PM, P T Withington wrote:

> Yes, please.
>
> On Jul 22, 2008, at 14:49, Donald Anderson <dda at ddanderson.com> wrote:
>
>> If you don't mind, I'll commit and open a separate JIRA to track  
>> this mod.
>> I think the implementation in the changeset is equivalent to  
>> current code
>> for non-swf9 platforms (modulo the bugfix).
>>
>> - Don
>>
>> On Jul 21, 2008, at 3:04 PM, P T Withington wrote:
>>
>>> What about declaring _dbg_name and _dbg_type as `var` (or,  
>>> `prototype var`, which is the JS2 way of saying this is a dynamic  
>>> attribute, not a fixed class attribute)?  Because, as originally  
>>> formulated, _dbg_name and _dbg_type were allowed to be either  
>>> functions _or_ strings and the debugger is supposed to use the  
>>> string if it is a string, or invoke the function if it is a  
>>> function (and use the returned string).  That should solve the  
>>> mixin/override problem too, shouldn't it?  Because these functions  
>>> don't make super calls.
>>>
>>> Thank you to the flex compiler for discovering the bogus call to  
>>> functionName.  :)
>>>
>>> Otherwise, approved!
>>>
>>> On 2008-07-21, at 14:28EDT, Donald Anderson wrote:
>>>
>>>> I would appreciate a close review of the small changes to .lzs  
>>>> files.
>>>>
>>>>
>>>> Change 20080721-dda-7 by dda at lester.local on 2008-07-21 13:55:52  
>>>> EDT
>>>>   in /Users/dda/laszlo/src/svn/openlaszlo/trunk-a
>>>>   for http://svn.openlaszlo.org/openlaszlo/trunk
>>>>
>>>> Summary: Enable -debug options for LFC and applications
>>>>
>>>> New Features:
>>>>
>>>> Bugs Fixed: LPP-6686 (create debug lfc for swf9), LPP-6687 (makes  
>>>> sure lzc works properly for swf 9 w/ and w/out debug)
>>>>
>>>> Technical Reviewer: ptw (pending)
>>>> QA Reviewer: promanik (pending)
>>>> Doc Reviewer: (pending)
>>>>
>>>> Documentation:
>>>>
>>>> Release Notes:
>>>>
>>>> Details:
>>>>   Creates a LFC9-debug.swc during LFC build.  Uses this when
>>>>   lzc is invoked with -g or --options debug=true or
>>>>   when debug attribute used (<canvas debug="true">) or  
>>>> URL ...&debug=true
>>>>
>>>>   Note: The -g/debug option for swf9 means that:
>>>>        a special 'debugSWF9' option is turned on internally - this
>>>>        causes -debug=true to be given to the external compiler.
>>>>        It also turns *off* the sc compiler's typical actions for
>>>>        DEBUG and DEBUG_BACKTRACE (that is, generating inline code  
>>>> to
>>>>        support a debugging window in the browser).  So debugging on
>>>>        SWF9 means using fdb.
>>>>
>>>>   lfc/build.xml:
>>>>        For swf9, build debug LFC in addition to regular LFC.
>>>>        Assume no backtrace library needed for swf9.
>>>>
>>>>   lfc/events/LaszloEvents.lzs:
>>>>        Declared _dbg_* variables, they are used conditionally
>>>>          in this class (when $debug or $profile are on).
>>>>
>>>>   lfc/debugger/LzMemory.lzs:
>>>>         marked _dbg_name as override.
>>>>
>>>>   lfc/data/LzDataElement.lzs:
>>>>         '_dbg_name' in a mixin exposes a problem.  If the usage  
>>>> of the
>>>>         mixin inherits from LzNode, then the method *must* be  
>>>> declared
>>>>         override in the mixin (without some extra compiler  
>>>> smarts).  If
>>>>         the usage does not inherit from LzNode, then the method  
>>>> *cannot*
>>>>         be declared as override in the mixin.  LzDataElementMixin  
>>>> is
>>>>         used in both ways so there is no right way to declare the
>>>>         method.  But in this situation (LzDataSet extends LzNode  
>>>> with
>>>>         LzDataElementMixin), _dbg_name is overridden again.   
>>>> Therefore
>>>>         this method is not currently even being used.  In case it  
>>>> would
>>>>         be used in the future, I renamed it, any user class can  
>>>> override
>>>>         _dbg_name and call the renamed method.
>>>>
>>>>   lfc/compiler/LzFormatter.lzs
>>>>         Changed call from (nonexistent method) this.functionName
>>>>         to Debug.functionName().
>>>>
>>>>   sc/SWF9External.java
>>>>         Use LFC9-debug.swc when appropriate
>>>>
>>>> Tests:
>>>>  0) Regression:
>>>>      smokecheck (swf8,dhtml)
>>>>      weather (swf8,dhtml,swf9,swf9)  also swf9 with debug=true
>>>>      SWF9 hello (with and without &debug=true)
>>>>
>>>>  1) Small test xx.lzx illustrates lzc and debug option (-g), with  
>>>> fdb.  Note the
>>>>  use of -debug=true flag in the external compiler output and the  
>>>> use of LFC9-debug.swc.
>>>>
>>>>   dda at lester$ lzc --runtime=swf9 xx.lzx
>>>>   Compiling: xx.lzx to xx.lzr=swf9.swf
>>>>   Executing compiler: (cd /tmp/lzswf9/lzgen25931; /Users/clients/ 
>>>> laszlo/src/svn/openlaszlo/trunk-a/WEB-INF/bin/mxmlc - 
>>>> compiler.show-actionscript-warnings=false -compiler.source-path+=/ 
>>>> tmp/lzswf9/lzgen25931 -output /tmp/lzswf9/lzgen25931/app.swf - 
>>>> default-size 500 400 -library-path+=/Users/clients/laszlo/src/svn/ 
>>>> openlaszlo/trunk-a/lps/includes/lfc/LFC9.swc /tmp/lzswf9/ 
>>>> lzgen25931/LzApplication.as)
>>>>   compiler output:
>>>>   Loading configuration file /Users/clients/laszlo/src/svn/ 
>>>> openlaszlo/trunk-a/WEB-INF/frameworks/flex-config.xml
>>>>   /tmp/lzswf9/lzgen25931/app.swf (93937 bytes)
>>>>
>>>>   Done executing compiler
>>>>   dda at lester$ lzc -g --runtime=swf9 xx.lzx
>>>>   Compiling: xx.lzx to xx.lzr=swf9.swf
>>>>   Executing compiler: (cd /tmp/lzswf9/lzgen16082; /Users/clients/ 
>>>> laszlo/src/svn/openlaszlo/trunk-a/WEB-INF/bin/mxmlc - 
>>>> compiler.show-actionscript-warnings=false -compiler.source-path+=/ 
>>>> tmp/lzswf9/lzgen16082 -debug=true -output /tmp/lzswf9/lzgen16082/ 
>>>> app.swf -default-size 500 400 -library-path+=/Users/clients/ 
>>>> laszlo/src/svn/openlaszlo/trunk-a/lps/includes/lfc/LFC9- 
>>>> debug.swc /tmp/lzswf9/lzgen16082/LzApplication.as)
>>>>   compiler output:
>>>>   Loading configuration file /Users/clients/laszlo/src/svn/ 
>>>> openlaszlo/trunk-a/WEB-INF/frameworks/flex-config.xml
>>>>   /tmp/lzswf9/lzgen16082/app.swf (157592 bytes)
>>>>
>>>>   Done executing compiler
>>>>   dda at lester$ fdb /tmp/lzswf9/lzgen25931/app.swf
>>>>   Adobe fdb (Flash Player Debugger) [build 3.0.0.477]
>>>>   Copyright (c) 2004-2007 Adobe, Inc. All rights reserved.
>>>>   Attempting to launch and connect to Player using URL
>>>>   /tmp/lzswf9/lzgen25931/app.swf
>>>>     (DEBUGGER HANGS while program runs)
>>>>
>>>>   dda at lester$ fdb /tmp/lzswf9/lzgen16082/app.swf
>>>>   Adobe fdb (Flash Player Debugger) [build 3.0.0.477]
>>>>   Copyright (c) 2004-2007 Adobe, Inc. All rights reserved.
>>>>   Attempting to launch and connect to Player using URL
>>>>   /tmp/lzswf9/lzgen16082/app.swf
>>>>   Player connected; session starting.
>>>>   Set breakpoints and then type 'continue' to resume the session.
>>>>   [SWF] private:tmp:lzswf9:lzgen16082:app.swf - 311,941 bytes  
>>>> after decompression
>>>>   (fdb) break LzNode:construct
>>>>   Breakpoint 1 at 0x24016: file LzNode.as, line 284
>>>>   (fdb) c
>>>>   Breakpoint 1, LzNode.as:284
>>>>    284   }}}}}}function construct ($1_parent, $2_args) {
>>>>   (fdb) n
>>>>    286   this.__LZdelayedSetters = LzNode.__LZdelayedSetters;
>>>>   (fdb) p this
>>>>   $1 = [Object 27603121, class='LzModeManagerService']
>>>>   (fdb) p *this
>>>>   $2 = this = [Object 27603121, class='LzModeManagerService']
>>>>    $cfn = 0 (0x0)
>>>>    $isstate = false
>>>>    $lzc$bind_id = null
>>>>    $lzc$bind_name = null
>>>>    ....
>>>>
>>>>  2) Verified that <canvas debug="true"> also compiles the same way.
>>>>
>>>>  3) In the browser, verified that hello.lzx with &debug=true uses  
>>>> the debug LFC
>>>>     by doing 'ls -lu' on lps/includes/lfc, showing the time of  
>>>> access.
>>>>
>>>>
>>>> Files:
>>>> M      WEB-INF/lps/lfc/debugger/LzMemory.lzs
>>>> M      WEB-INF/lps/lfc/build.xml
>>>> M      WEB-INF/lps/lfc/events/LaszloEvents.lzs
>>>> M      WEB-INF/lps/lfc/data/LzDataElement.lzs
>>>> M      WEB-INF/lps/lfc/compiler/LzFormatter.lzs
>>>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9External.java
>>>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
>>>>
>>>> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20080721-dda-7.tar
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Don Anderson
>>>> Java/C/C++, Berkeley DB, systems consultant
>>>>
>>>> voice: 617-547-7881
>>>> email: dda at ddanderson.com
>>>> www: http://www.ddanderson.com
>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>>
>> Don Anderson
>> Java/C/C++, Berkeley DB, systems consultant
>>
>> voice: 617-547-7881
>> email: dda at ddanderson.com
>> www: http://www.ddanderson.com
>>
>>
>>


--

Don Anderson
Java/C/C++, Berkeley DB, systems consultant

voice: 617-547-7881
email: dda at ddanderson.com
www: http://www.ddanderson.com



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.openlaszlo.org/pipermail/laszlo-dev/attachments/20080722/54f29006/attachment-0001.html


More information about the Laszlo-dev mailing list