The integration of the worker code itself which requires, in order to be total, 
to modify the Ant script that build FDB in order to link the Falcon sources 
(AST classes used to evaluate the expression), at the moment I didn't do this 
part and then still use the old code which required some integration code to 
work, I would like to commit that but once the build script modified and 
everything is working, I will commit. Is it fine for you like that ?

Bugs: I finally been able to reproduce the ones mentioned by Alexander but I'm 
not sure the back and forth discussion have some big interess, anyway, that's 
something that will go soon in JIRA

Frédéric THOMAS

> From: aha...@adobe.com
> To: dev@flex.apache.org
> Subject: Re: [FDB] Integration
> Date: Tue, 29 Apr 2014 16:23:38 +0000
> 
> IMO, unless the discussion is going to cover proprietary aspects of
> IntelliJ, it might be more like the "Apache Way" to share the code in a
> git branch and continue to discuss on the list.
> 
> On 4/29/14 8:03 AM, "Alexander Doroshko"
> <alexander.doros...@jetbrains.com> wrote:
> 
> >Yes, I'd gladly try it. We can switch to personal emails in order not to
> >spam the list.
> >
> >On 29.04.2014 18:34, Frédéric THOMAS wrote:
> >> Hi Alexander,
> >>
> >> I downloaded the files you indicated me + some missing files (UI,
> >>ShineMP3, metallica.wav), created an IntelliJ project, build and run
> >>successfully the application with Apache Flex SDK 4.12 / AIR 4.0 + my
> >>version of FDB and was unable to reproduce both of the issues, it worked
> >>as expected, so, that's a good news.
> >>
> >> Also, not on this test app but on another one [1], I've been able to
> >>set a BP on the worker using IntelliJ once the worker has been loaded
> >>but the variables was not readable and futur stops to the BP didn't
> >>work, IJ shows up the SystemManager class instead.
> >>
> >> If you are interested to test my version, just tell me and I will send
> >>it to you.
> >>
> >> Unfortunately, I haven't been able to work on it yesterday but will
> >>continue tonight.
> >>
> >> Frédéric THOMAS
> >>
> >> [1] https://github.com/doublefx/downloadFileWorker
> >>
> >>
> >>> Date: Tue, 29 Apr 2014 15:25:23 +0400
> >>> From: alexander.doros...@jetbrains.com
> >>> To: dev@flex.apache.org
> >>> Subject: Re: [FDB] Integration
> >>>
> >>> Hi Frédéric,
> >>> that's great that you are ready to put the effort into fdb with workers
> >>> support!
> >>>
> >>> I have to say that IntelliJ IDEA still doesn't support debugging apps
> >>> with workers. I spent some time on it but faced some bugs in fdb that
> >>> were not that easy to workaround. That's not an excuse for me and I
> >>>hope
> >>> to finally support workers debug in the next version. Luckily fdb is
> >>>not
> >>> a black box for me any more.
> >>>
> >>> Below are some of the bugs that I faced. I played with this project:
> >>> http://gotoandlearn.com/play.php?id=169. 'Download files' link contains
> >>> already compiled MP3Worker.swf which is the main app.
> >>>
> >>> 1. When the worker is loaded it is impossible to switch to main thread
> >>> using 'worker 0' command. Fdb says that active worker has changed but
> >>> asking 'info workers' again says that actually it hasn't. See listing
> >>>[1].
> >>>
> >>> 2. More important bug for the IDE integration is inability to set
> >>> breakpoint without knowing file id. Files that belong to different
> >>> workers may have the same id. When I ask to set a breakpoint in a file
> >>> with given name but current active worker doesn't have file with this
> >>> name then fdb sets the breakpoint inside completely different file that
> >>> does belong to the current worker and has the same id as the file where
> >>> I asked to set breakpoint. See listing [2].
> >>>
> >>> Alexander
> >>>
> >>> [1]
> >>>
> >>> C:\flex\air_sdk_13.0_asc_2.0\bin>fdb
> >>> C:\flex\air_sdk_13.0_asc_2.0\bin>java -Dsun.io.useCanonCaches=false
> >>>-Xms32m -Xmx512m
> >>>-Dapplication.home="C:\flex\air_sdk_13.0_asc_2.0\bin\.." -jar
> >>>"C:\flex\air_sdk_13.0_asc_2.0\bin\../lib/legacy/fdb.jar"
> >>> Adobe fdb (Flash Player Debugger) [build development]
> >>> Copyright (c) 2004-2007 Adobe, Inc. All rights reserved.
> >>> (fdb) run
> >>> Waiting for Player to connect
> >>> Player connected; session starting.
> >>> Set breakpoints and then type 'continue' to resume the session.
> >>> [SWF] C:\work\flex_projects\MP3Worker\bin-debug\MP3Worker.swf -
> >>>175?169 bytes after decompression
> >>> (fdb) c
> >>> [WorkerCreate] 1
> >>> Additional ActionScript code has been loaded from a SWF or a frame.
> >>> To see all currently loaded files, type 'info files'.
> >>> Active worker has changed to worker 1
> >>> Set additional breakpoints as desired, and then type 'continue'.
> >>> (fdb) info workers
> >>> Main Thread 0 - Running
> >>> Worker 1 - Suspended (Active)
> >>> [SWF] C:\work\flex_projects\MP3Worker\bin-debug\MP3Worker.swf -
> >>>493?264 bytes after decompression
> >>> Set additional breakpoints as desired, and then type 'continue'.
> >>> (fdb) worker 0
> >>> *Active worker has changed to worker Main Thread*
> >>> Set additional breakpoints as desired, and then type 'continue'.
> >>> (fdb) info workers
> >>> *Main Thread 0 - Running*
> >>> *Worker 1 - Suspended (Active)**
> >>> *Set additional breakpoints as desired, and then type 'continue'.
> >>> (fdb)
> >>>
> >>> [2]
> >>>
> >>> ...
> >>> (fdb) info workers
> >>> Main Thread 0 - Suspended (Active)
> >>> Worker 1 - Suspended
> >>> (fdb) show files
> >>> 1 /Users/leebrimelow/Documents/Adobe Flash Builder
> >>>4.6/MP3Worker/src/MP3Worker.as, MP3Worker.as (Main Thread)
> >>> 2 /Users/leebrimelow/Documents/Adobe Flash Builder
> >>>4.6/MP3Worker/src/Workers.as, Workers.as (Main Thread)
> >>> 1 /Users/leebrimelow/Documents/Adobe Flash Builder
> >>>4.6/MP3Worker/src/BackWorker.as, BackWorker.as (Worker 1)
> >>> 2 
> >>>/Users/kikko/work/tests/shineMP3_alchemy/src/fr/kikko/lab/ShineMP3Encode
> >>>r.as, ShineMP3Encoder.as (Worker 1)
> >>> *(fdb) break BackWorker.as:26**
> >>> **Breakpoint 2: file MP3Worker.as, line 26**
> >>> *(fdb)
> >>>
> >>>
> >>> On 27.04.2014 4:01, Frédéric THOMAS wrote:
> >>>> Hi,
> >>>>
> >>>> To resume a bit what I did and discover today:
> >>>>
> >>>> 1- I merged the donated code to the the current FDB, keeping the
> >>>>existing fixes and the current ExpressionEvaluator (I guess It is
> >>>>possible to use the new Falcon based implementation modifying the ANT
> >>>>script which builds it, in order to link the Falcon sources).
> >>>>
> >>>> 2- The new commands are "worker <workerID>" used to select a
> >>>>parlicular worker by its ID and "info workers", this is an example of
> >>>>what gives a break inside a worker and what displays the 2 commands :
> >>>>
> >>>> (fdb) info workers
> >>>> !mainThread! 0 - !workerRunning!
> >>>> !inWorker! {worker=1} - !workerSuspended! !workerSelected!
> >>>>
> >>>> (fdb) worker 0
> >>>> !workerChanged! !mainThread!
> >>>>
> >>>> (fdb) info workers
> >>>> !mainThread! 0 - !workerRunning! !workerSelected!
> >>>> !inWorker! {worker=1} - !workerSuspended!
> >>>>
> >>>> (fdb) worker 1
> >>>> !workerChanged! 1
> >>>>
> >>>> (fdb) info workers
> >>>> !mainThread! 0 - !workerRunning!
> >>>> !inWorker! {worker=1} - !workerSuspended! !workerSelected!
> >>>>
> >>>> Note for IDE integration:
> >>>>
> >>>> 1- At the moment, watch, displays and breakpoints are set for 1
> >>>>particular worker, it means, they need to be defined again when a
> >>>>worker starts.
> >>>> 2- "info breakpoints" does well display the breakpoints for the same
> >>>>line and on different worker of the same class but without the
> >>>>relative worker ID (I guess it could be easily fixed)
> >>>>
> >>>> I'll be back on it on Monday.
> >>>>
> >>>> Frédéric THOMAS                                  
> >>                                    
> >
> 
                                          

Reply via email to