[Laszlo-dev] [RESENT] Re: Glossary - Gnash Project Wiki
P T Withington
ptw at pobox.com
Mon Jun 30 06:58:54 PDT 2008
[RESENT: Redirecting to Laszlo-dev]
On Jun 28, 2008, at 16:24, David Temkin <temkin at laszlosystems.com>
wrote:
> It would be great if this actually worked. In what way are our SWFs
> malformed?
>
> There was an earlier thread on this....
I thought we had made the gnash guys happy a long time ago. That's my
recollection. I could dredge my mail. But why not just ask them?
My recollection is that we had a bad computation of a byte offset. And
that Phil and I fixed the math.
[Later]
This is the last message I found to/from strk. Reading the thread, we
fixed all the malformed SWF bugs and they were able to compile (with
the LPS) a simple test app and run it, but this test app was nothing
but a call to the Flash trace built-in from a script block (and built
on a stubbed out LFC). Their interpreter was choking trying to
interpret our runtime class structure, and I sent a very basic test
case that they would have to be able to interpret for our class system
to work. I can't find any response to that. If you want to go
forward with this, I suggest someone write to gnash-dev at gnu.org and
see if they would like to try again.
> Begin forwarded message:
>
>> From: P T Withington <ptw at openlaszlo.org>
>> Date: 1 March 2007 10:16:52 EST
>> To: strk <strk at keybit.net>
>> Cc: OpenLaszlo development and bug reporting <laszlo-dev at openlaszlo.org
>> >, Henry Minsky <henry.minsky at gmail.com>, gnash-dev Mailing List <gnash-dev at gnu.org
>> >, mdavis <mdavis at laszlosystems.com>, Don Hopkins <dhopkins at donhopkins.com
>> >
>> Subject: Re: [Gnash-dev] Re: Hello world working with OpenLaszlo
>>
>> This has to work for our classes to work:
>>
>> <script when="immediate">
>> function A () { this.constructor = arguments.callee; };
>> A.prototype.test = function () { return true; }
>>
>> function B () { this.constructor = arguments.callee; };
>>
>> B.prototype = new A();
>>
>> B.prototype.test = function () {
>> if (this.constructor.prototype.constructor.prototype.test()) {
>> _global.trace("it works");
>> }
>> }
>>
>> (new B()).test();
>> </script>
>>
>>
>> On 2007-03-01, at 09:47 EST, strk wrote:
>>
>>> On Thu, Mar 01, 2007 at 09:42:35AM -0500, P T Withington wrote:
>>>> The constructor is the default constructor, which is Instance.make.
>>>> The initialize method is called by the constructor as the last
>>>> thing
>>>> before it returns the new instance.
>>>>
>>>> If you build the LFC for the DHTML runtime, you can look at the
>>>> 'expanded' Javascript, which approximates what is compiled down
>>>> to SWF.
>>>>
>>>> buildlfc --runtime=dhtml ...
>>>>
>>>> That might make it easier to understand the class declarations.
>>>
>>> Could you try providing a simplified version of this inheritance
>>> model to easy debuggin of Gnash instead ?
>>> A self-testing SWF that uses those 'constructor', 'prototype' and
>>> friend hacking and prints PASSED or FAILED if things don't work
>>> as expected ?
>>>
>>> --strk;
>>>
>>>>
>>>> On 2007-03-01, at 09:35 EST, strk wrote:
>>>>
>>>>> I've found at least *one* of the nogo points.
>>>>>
>>>>> Commenting out this line:
>>>>>
>>>>> LzLoadQueue.timeoutDel = new LzDelegate( LzLoadQueue ,
>>>>> "checkTimeout" );
>>>>>
>>>>> In kernel/swf/LzLoadQueue.as, get successfully to my trace.
>>>>>
>>>>> I've changed the code to:
>>>>>
>>>>> _global.trace('initializing LzLoadQueue.timeoutDel');
>>>>> LzLoadQueue.timeoutDel = new LzDelegate( LzLoadQueue ,
>>>>> "checkTimeout" );
>>>>> _global.trace('LzLoadQueue.timeoutDel (not) initialized');
>>>>>
>>>>> The second trace is *never* reached.
>>>>>
>>>>> Now, looking at LzDelegate class definition:
>>>>>
>>>>> ./events/LaszloEvents.lzs
>>>>>
>>>>> Which function is the constructor ? Is it 'initialize' ?
>>>>>
>>>>> --strk;
>>>>>
>>>>>
>>>>> On Thu, Mar 01, 2007 at 09:01:52AM -0500, P T Withington wrote:
>>>>>> Ah. Sorry about the confusion. Not sure why what I wrote does
>>>>>> not
>>>>>> work.
>>>>>>
>>>>>> On 2007-03-01, at 08:59 EST, strk wrote:
>>>>>>
>>>>>>> Found a workaround:
>>>>>>>
>>>>>>> '_global.trace("message");' bypass the surveillance.
>>>>>>>
>>>>>>> --strk;
>>>>>>>
>>>>>>> On Thu, Mar 01, 2007 at 01:53:21PM +0100, strk wrote:
>>>>>>>> On Thu, Mar 01, 2007 at 05:57:03AM -0500, P T Withington wrote:
>>>>>>>>
>>>>>>>>> That looks like a 'feature' in the compiler. It seems that it
>>>>>>>>> intentionally compiles away any `trace` calls. Perhaps this
>>>>>>>>> was to
>>>>>>>>> avoid debug output in production.
>>>>>>>>>
>>>>>>>>> Try building your LFC with:
>>>>>>>>>
>>>>>>>>> buildlfc -DcompileTrace=flash ...
>>>>>>>>
>>>>>>>> No difference, no even additional warnings.
>>>>>>>> Note that the trace() calls I'm adding to .lzs files,
>>>>>>>> LIke:
>>>>>>>>
>>>>>>>> On top of LaszloLibrary.lzs:
>>>>>>>>
>>>>>>>> trace("LaszloLibrary.lzs included");
>>>>>>>>
>>>>>>>> --strk;
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Gnash-dev mailing list
>>>>>>>> Gnash-dev at gnu.org
>>>>>>>> http://lists.gnu.org/mailman/listinfo/gnash-dev
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> () ASCII Ribbon Campaign
>>>>>>> /\ Keep it simple!
>>>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> () ASCII Ribbon Campaign
>>>>> /\ Keep it simple!
>>>>>
>>>
>>> --
>>>
>>> () ASCII Ribbon Campaign
>>> /\ Keep it simple!
>>>
>>
>
More information about the Laszlo-dev
mailing list