You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by Cosma Colanicchia <co...@gmail.com> on 2013/02/06 13:17:18 UTC

[OT] [FALCON] Falcon and IDE/FB integration

Probably OT, but I just read that in FB 4.7 you cannot choose the FDK to
use for pure ActionScript projects (never tried myself yet).

Does this means that Flash Builder is somewhat hardcoded to work only with
the shipped ASC 2.0 SDK? If so, I was thinking about implications of this
when MXML support will be available in Falcon, if it is going to be
supported in future versions of the IDE.

I know that, before ASC 2.0/Falcon, the FB IDE was doing double work to
parse source files in order to provide code assist.. I also read that a
strong point for the architecture behind Falcon is allowing the compiler to
work for the IDE, sharing the AST.

Doing 1+1, I'd say Falcon will improve independence of the IDE from the FDK
versions (as long as these new advanced compiler hook/APIs are keep
compatible), but this FB 4.7 behavior seems to go in the opposite
direction..

Any thoughts?

Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Alex Harui <ah...@adobe.com>.
Hi Alexander,

Glad you know you are interested.  We look forward to working with you in
the future.   I think Falcon needs more MXML work before it is truly ready
for IDE integration, but if you have engineers who want to help work on MXML
in Falcon we could use all the help we can get.

-Alex


On 2/8/13 3:23 AM, "Alexander Doroshko" <al...@jetbrains.com>
wrote:

> Greetings from JetBrains!
> 
> Yes, we are looking forward to Falcon to fully replace legacy
> mxmlc/compc compiler!
> I don't think we'll use it for code highlighting/analysis because
> IntelliJ IDEA platform is based on its own AST parsing mechanism. And
> looks like IntelliJ IDEA already has all features that Falcon may bring
> to other IDEs. So what we are looking forward is:
> - instant background incremental compilation
> - global Problems View
> 
> IntelliJ IDEA already has these features for Java projects and I hope
> will have for ActionScript/Flex as soon as Falcon is released.
> 
> --
> Alexander Doroshko
> IntelliJ IDEA Flash Team Lead
> http://www.jetbrains.com
> "Develop with pleasure!"
> 
> On 07.02.2013 1:52, Michael A. Labriola wrote:
>>> I think the main goal for Falcon is simply to get it to a level where it can
>>> replace MXMLC/COMPC on the command-line.  Right now, no IDE vendor seems to
>>> be asking us if they can integrate Falcon.
>> I bet if we discussed it with JetBrains, they would be game.
>> 
>> Mike
>> 
> 

-- 
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui


Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Justin Mclean <ju...@classsoftware.com>.
Hi,

> We are ready to do everything at our side and introduce a secret option in IntelliJ IDEA that would enable Falcon usage. Can I get Falcon binaries somewhere or I have to build it myself?

There no official release (yet) so you'll need to build yourself.

Falcon source code is here:
https://svn.apache.org/repos/asf/flex/falcon/trunk/

You need check out the develop branch of Apache Flex and build that first.
https://svn.apache.org/repos/asf/flex/sdk/branches/develop/

Look at the README for instructions and any questions just email the list.

Thanks,
Justin


Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Alexander Doroshko <al...@jetbrains.com>.
On 14.02.2013 21:49, Alex Harui wrote:
> OK, so it sounds like you currently just launch MXMLC and COMPC. That should make it relatively easy to call Falcon's MXMLC and COMPC, depending on how you get the error list. Falcon's MXMLC and COMPC classes are in a different package than flex2.tools, but it might even be possible to provide a wrapper for Falcon's MXMLC and COMPC in the flex2.tools package.
We are ready to do everything at our side and introduce a secret option 
in IntelliJ IDEA that would enable Falcon usage. Can I get Falcon 
binaries somewhere or I have to build it myself?

Two questions regarding Falcon integration in IntelliJ IDEA:

1. IntelliJ IDEA has an internal mechanism for tracking dirty files. 
Compilation is not triggered at all if no files within source folders 
were touched. But this mechanism has two drawbacks:
- if some file in a source folder is touched - IDE will force 
recompilation even if this file is actually not used in compilation
- if some asset is updated and it is kept out of source folder - IDE 
doesn't notice this change and doesn't recompile

So the question is: will it be possible to get full list of files used 
to produce resulting swf/swc from Falcon compiler?

2. Second question is about incrementality. What does IDE need to do to 
provide quick compilation of a huge swf/swc if only few source files are 
touched since previous compilation? May be Falcon does all the work 
itself keeping cache files somewhere. Or may be some shell is required 
that would be kept alive between compilations. Or may be IDE is 
responsible to give compiler a list of dirty files.

> In theory, the FlashBuilder code provided faster incremental compiles, but I've never created big projects in FlashBuilder or IntelliJ to know if there was a significant difference.
Yes, Flash Builder advantage is incrementality, IntelliJ IDEA advantage 
is parallel compilation of independent swfs/swcs and out-of-process 
compilation. Who wins - depends on the project structure.

Alexander

RE: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Alex Harui <ah...@adobe.com>.
OK, so it sounds like you currently just launch MXMLC and COMPC.  That should make it relatively easy to call Falcon's MXMLC and COMPC, depending on how you get the error list.  Falcon's MXMLC and COMPC classes are in a different package than flex2.tools, but it might even be possible to provide a wrapper for Falcon's MXMLC and COMPC in the flex2.tools package.

Currently, FlashBuilder uses an entirely different interface to what MXMLC and COMPC eventually call.  If you look in the Apache Flex source under modules/compiler/src/java/flex2/tools/oem and modules/compiler/src/java/flex2/tools/flexbuilder you will see lots of classes in there that seem to build a database of compilation units and try to decide which ones need re-compilation without chasing the dependencies from the main compilation unit like MXMLC and COMPC currently do.

I had never looked at this code before.  It was only when I tried to get FlashBuilder to call Falcon that I realized that FlashBuilder didn't seem to call MXMLC and COMPC directly and found this code.  We may have to implement this stuff for Falcon if we want to try to get Falcon to plug into FlashBuilder.  Or, we might just create our own Eclipse "builder" plug-in.  I experimented a bit with that and it might be easier.  But I think the direction we take can be significantly influenced by what your team would like to do to integrate with Falcon.

I wonder if the FDT guys are watching this thread and can tell us what they want, if anything.

In theory, the FlashBuilder code provided faster incremental compiles, but I've never created big projects in FlashBuilder or IntelliJ to know if there was a significant difference.

Alex Harui
Apache Flex Team
http://blogs.adobe.com/aharui


> -----Original Message-----
> From: Alexander Doroshko [mailto:alexander.doroshko@jetbrains.com]
> Sent: Wednesday, February 13, 2013 11:28 PM
> To: dev@flex.apache.org
> Subject: Re: [OT] [FALCON] Falcon and IDE/FB integration
> 
> On 13.02.2013 21:39, Alex Harui wrote:
> > How does IntelliJ call the current MXMLC compiler?  I'm looking at how
> > FlashBuilder calls MXMLC now and it is pretty complex.
> There are 3 modes:
> 
> 1. If 'Prefer ActionScript Compiler 2.0 for pure AS build configurations'
> option is enabled then a new OS process is launched with the following
> command line (some minor options omitted):
> 
> java -classpath [Flex SDK]/lib/compiler.jar
> com.adobe.flash.compiler.clients.MXMLC
> java -classpath [Flex SDK]/lib/compiler.jar
> com.adobe.flash.compiler.clients.COMPC
> 
> 2. Standard mxmlc/compc process:
> 
> java  -classpath [Flex SDK]/lib/compc.jar flex2.tools.Mxmlc java  -
> classpath [Flex SDK]/lib/compc.jar flex2.tools.Compc
> 
> 3. The option called 'Built-in compiler shell'. That's a single OS process
> that can invoke several compilations in parallel threads. To do this it
> invokes flex2.tools.Mxmlc.mxmlc(args) or flex2.tools.Compc.compc(args).
> 
> Just curious, how Flash Builder does it?

Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Alexander Doroshko <al...@jetbrains.com>.
On 13.02.2013 21:39, Alex Harui wrote:
> How does IntelliJ call the current MXMLC compiler?  I'm looking at how
> FlashBuilder calls MXMLC now and it is pretty complex.
There are 3 modes:

1. If 'Prefer ActionScript Compiler 2.0 for pure AS build 
configurations' option is enabled then a new OS process is launched with 
the following command line (some minor options omitted):

java -classpath [Flex SDK]/lib/compiler.jar 
com.adobe.flash.compiler.clients.MXMLC
java -classpath [Flex SDK]/lib/compiler.jar 
com.adobe.flash.compiler.clients.COMPC

2. Standard mxmlc/compc process:

java  -classpath [Flex SDK]/lib/compc.jar flex2.tools.Mxmlc
java  -classpath [Flex SDK]/lib/compc.jar flex2.tools.Compc

3. The option called 'Built-in compiler shell'. That's a single OS 
process that can invoke several compilations in parallel threads. To do 
this it invokes flex2.tools.Mxmlc.mxmlc(args) or 
flex2.tools.Compc.compc(args).

Just curious, how Flash Builder does it?

Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Alex Harui <ah...@adobe.com>.


On 2/8/13 3:23 AM, "Alexander Doroshko" <al...@jetbrains.com>
wrote:

> Greetings from JetBrains!
> 
> Yes, we are looking forward to Falcon to fully replace legacy
> mxmlc/compc compiler!
> I don't think we'll use it for code highlighting/analysis because
> IntelliJ IDEA platform is based on its own AST parsing mechanism. And
> looks like IntelliJ IDEA already has all features that Falcon may bring
> to other IDEs. So what we are looking forward is:
> - instant background incremental compilation
> - global Problems View
> 
How does IntelliJ call the current MXMLC compiler?  I'm looking at how
FlashBuilder calls MXMLC now and it is pretty complex.

-- 
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui


Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Alexander Doroshko <al...@jetbrains.com>.
Greetings from JetBrains!

Yes, we are looking forward to Falcon to fully replace legacy 
mxmlc/compc compiler!
I don't think we'll use it for code highlighting/analysis because 
IntelliJ IDEA platform is based on its own AST parsing mechanism. And 
looks like IntelliJ IDEA already has all features that Falcon may bring 
to other IDEs. So what we are looking forward is:
- instant background incremental compilation
- global Problems View

IntelliJ IDEA already has these features for Java projects and I hope 
will have for ActionScript/Flex as soon as Falcon is released.

--
Alexander Doroshko
IntelliJ IDEA Flash Team Lead
http://www.jetbrains.com
"Develop with pleasure!"

On 07.02.2013 1:52, Michael A. Labriola wrote:
>> I think the main goal for Falcon is simply to get it to a level where it can replace MXMLC/COMPC on the command-line.  Right now, no IDE vendor seems to be asking us if they can integrate Falcon.
> I bet if we discussed it with JetBrains, they would be game.
>
> Mike
>


RE: [OT] [FALCON] Falcon and IDE/FB integration

Posted by "Michael A. Labriola" <la...@digitalprimates.net>.
>I think the main goal for Falcon is simply to get it to a level where it can replace MXMLC/COMPC on the command-line.  Right now, no IDE vendor seems to be asking us if they can integrate Falcon.

I bet if we discussed it with JetBrains, they would be game.

Mike


Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Alex Harui <ah...@adobe.com>.
I think the main goal for Falcon is simply to get it to a level where it can
replace MXMLC/COMPC on the command-line.  Right now, no IDE vendor seems to
be asking us if they can integrate Falcon.


On 2/6/13 9:06 AM, "Cosma Colanicchia" <co...@gmail.com> wrote:

> Actually, I see that FB currently supports:
> - the legacy MXMLC/COMPC (using Adobe Flex SDKs up to 4.6, and Apache Flex
> SDKs thanks to the installer)
> - the bundled ASC 2.0 for pure ActionScript projects (but it seems
> "hardcoded" in FB)
> 
> As legacy MXMLC/COMPC in Apache Flex are put in "maintenance mode" and
> efforts are focused in advancing Falcon adding full MXML support, I
> thinking about how can we benefit from the new Falcon architecture in an
> IDE (shared AST for code assist and actual compilation, improved error
> detection while typing, faster build when changing a class from a library
> project used by another project, etc).
> 
> Just thinking that, if these points are still considered among Falcon
> goals, and if FB will never properly adopt Falcon, at some point we may
> want to start preparing docs and info about Falcon hooks and APIs to build
> this fantastic and shiny new Falcon-enabled IDE :)
> 
> 
> 
> 
> 2013/2/6 Alex Harui <ah...@adobe.com>
> 
>> 
>> 
>> 
>> On 2/6/13 6:20 AM, "Nicholas Kwiatkowski" <ni...@spoon.as> wrote:
>> 
>>> At this point, it only supports the legacy compiler (that was the only
>> one
>>> available to Adobe when Flash Builder was being developed.  In fact, the
>>> legacy mxml compiler is still the only production one we have available.
>>> 
>>> Adobe has not committed to using the new compiler in future releases of
>>> Flash Builder.  They haven't committed to supporting anything past 4.6.0,
>>> but based on the trends they are making for this latest release I'm sure
>>> support will be there when we have it ready.
>>> 
>> I wouldn't count on changes from FB.  I think it knows to look for and call
>> some jar to compile Flex projects.  When we switch to Falcon, we might have
>> to emulate that jar.
>> 
>> --
>> Alex Harui
>> Flex SDK Team
>> Adobe Systems, Inc.
>> http://blogs.adobe.com/aharui
>> 
>> 

-- 
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui


Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Cosma Colanicchia <co...@gmail.com>.
Actually, I see that FB currently supports:
- the legacy MXMLC/COMPC (using Adobe Flex SDKs up to 4.6, and Apache Flex
SDKs thanks to the installer)
- the bundled ASC 2.0 for pure ActionScript projects (but it seems
"hardcoded" in FB)

As legacy MXMLC/COMPC in Apache Flex are put in "maintenance mode" and
efforts are focused in advancing Falcon adding full MXML support, I
thinking about how can we benefit from the new Falcon architecture in an
IDE (shared AST for code assist and actual compilation, improved error
detection while typing, faster build when changing a class from a library
project used by another project, etc).

Just thinking that, if these points are still considered among Falcon
goals, and if FB will never properly adopt Falcon, at some point we may
want to start preparing docs and info about Falcon hooks and APIs to build
this fantastic and shiny new Falcon-enabled IDE :)




2013/2/6 Alex Harui <ah...@adobe.com>

>
>
>
> On 2/6/13 6:20 AM, "Nicholas Kwiatkowski" <ni...@spoon.as> wrote:
>
> > At this point, it only supports the legacy compiler (that was the only
> one
> > available to Adobe when Flash Builder was being developed.  In fact, the
> > legacy mxml compiler is still the only production one we have available.
> >
> > Adobe has not committed to using the new compiler in future releases of
> > Flash Builder.  They haven't committed to supporting anything past 4.6.0,
> > but based on the trends they are making for this latest release I'm sure
> > support will be there when we have it ready.
> >
> I wouldn't count on changes from FB.  I think it knows to look for and call
> some jar to compile Flex projects.  When we switch to Falcon, we might have
> to emulate that jar.
>
> --
> Alex Harui
> Flex SDK Team
> Adobe Systems, Inc.
> http://blogs.adobe.com/aharui
>
>

Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Alex Harui <ah...@adobe.com>.


On 2/6/13 6:20 AM, "Nicholas Kwiatkowski" <ni...@spoon.as> wrote:

> At this point, it only supports the legacy compiler (that was the only one
> available to Adobe when Flash Builder was being developed.  In fact, the
> legacy mxml compiler is still the only production one we have available.
> 
> Adobe has not committed to using the new compiler in future releases of
> Flash Builder.  They haven't committed to supporting anything past 4.6.0,
> but based on the trends they are making for this latest release I'm sure
> support will be there when we have it ready.
> 
I wouldn't count on changes from FB.  I think it knows to look for and call
some jar to compile Flex projects.  When we switch to Falcon, we might have
to emulate that jar.

-- 
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui


Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Nicholas Kwiatkowski <ni...@spoon.as>.
At this point, it only supports the legacy compiler (that was the only one
available to Adobe when Flash Builder was being developed.  In fact, the
legacy mxml compiler is still the only production one we have available.

Adobe has not committed to using the new compiler in future releases of
Flash Builder.  They haven't committed to supporting anything past 4.6.0,
but based on the trends they are making for this latest release I'm sure
support will be there when we have it ready.

-Nick

On Wed, Feb 6, 2013 at 9:02 AM, Cosma Colanicchia <co...@gmail.com>wrote:

> Thanks for the hint, nice to know.
>
> However, if and when Falcon will be fully able to compile MXML, how will FB
> support Apache Flex SDK if it had to bake-in the support for the Adobe's
> own ASC 2.0 compiler in this way?
>
> Or, maybe, FB will only supports "legacy" MXML compiler when using Apache
> Flex? (hope not, as this could really slow down Falcon adoption).
>
> Just a curiosity, time will tell..
>
>
> 2013/2/6 Lee Burrows <su...@leeburrows.com>
>
> > FB4.7 uses ASC2 by default for pure AS projects but it can be altered by
> > tweaking config files.
> >
> > In .actionScriptProperties file for project, find useFlashSDK="true" and
> > change to "false".
> >
> >
> >
> >
> > On 06/02/2013 12:17, Cosma Colanicchia wrote:
> >
> >> Probably OT, but I just read that in FB 4.7 you cannot choose the FDK to
> >> use for pure ActionScript projects (never tried myself yet).
> >>
> >> Does this means that Flash Builder is somewhat hardcoded to work only
> with
> >> the shipped ASC 2.0 SDK? If so, I was thinking about implications of
> this
> >> when MXML support will be available in Falcon, if it is going to be
> >> supported in future versions of the IDE.
> >>
> >> I know that, before ASC 2.0/Falcon, the FB IDE was doing double work to
> >> parse source files in order to provide code assist.. I also read that a
> >> strong point for the architecture behind Falcon is allowing the compiler
> >> to
> >> work for the IDE, sharing the AST.
> >>
> >> Doing 1+1, I'd say Falcon will improve independence of the IDE from the
> >> FDK
> >> versions (as long as these new advanced compiler hook/APIs are keep
> >> compatible), but this FB 4.7 behavior seems to go in the opposite
> >> direction..
> >>
> >> Any thoughts?
> >>
> >>
> >
> > --
> > Lee Burrows
> > ActionScripter
> >
> >
>

Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Cosma Colanicchia <co...@gmail.com>.
Thanks for the hint, nice to know.

However, if and when Falcon will be fully able to compile MXML, how will FB
support Apache Flex SDK if it had to bake-in the support for the Adobe's
own ASC 2.0 compiler in this way?

Or, maybe, FB will only supports "legacy" MXML compiler when using Apache
Flex? (hope not, as this could really slow down Falcon adoption).

Just a curiosity, time will tell..


2013/2/6 Lee Burrows <su...@leeburrows.com>

> FB4.7 uses ASC2 by default for pure AS projects but it can be altered by
> tweaking config files.
>
> In .actionScriptProperties file for project, find useFlashSDK="true" and
> change to "false".
>
>
>
>
> On 06/02/2013 12:17, Cosma Colanicchia wrote:
>
>> Probably OT, but I just read that in FB 4.7 you cannot choose the FDK to
>> use for pure ActionScript projects (never tried myself yet).
>>
>> Does this means that Flash Builder is somewhat hardcoded to work only with
>> the shipped ASC 2.0 SDK? If so, I was thinking about implications of this
>> when MXML support will be available in Falcon, if it is going to be
>> supported in future versions of the IDE.
>>
>> I know that, before ASC 2.0/Falcon, the FB IDE was doing double work to
>> parse source files in order to provide code assist.. I also read that a
>> strong point for the architecture behind Falcon is allowing the compiler
>> to
>> work for the IDE, sharing the AST.
>>
>> Doing 1+1, I'd say Falcon will improve independence of the IDE from the
>> FDK
>> versions (as long as these new advanced compiler hook/APIs are keep
>> compatible), but this FB 4.7 behavior seems to go in the opposite
>> direction..
>>
>> Any thoughts?
>>
>>
>
> --
> Lee Burrows
> ActionScripter
>
>

Re: [OT] [FALCON] Falcon and IDE/FB integration

Posted by Lee Burrows <su...@leeburrows.com>.
FB4.7 uses ASC2 by default for pure AS projects but it can be altered by 
tweaking config files.

In .actionScriptProperties file for project, find useFlashSDK="true" and 
change to "false".



On 06/02/2013 12:17, Cosma Colanicchia wrote:
> Probably OT, but I just read that in FB 4.7 you cannot choose the FDK to
> use for pure ActionScript projects (never tried myself yet).
>
> Does this means that Flash Builder is somewhat hardcoded to work only with
> the shipped ASC 2.0 SDK? If so, I was thinking about implications of this
> when MXML support will be available in Falcon, if it is going to be
> supported in future versions of the IDE.
>
> I know that, before ASC 2.0/Falcon, the FB IDE was doing double work to
> parse source files in order to provide code assist.. I also read that a
> strong point for the architecture behind Falcon is allowing the compiler to
> work for the IDE, sharing the AST.
>
> Doing 1+1, I'd say Falcon will improve independence of the IDE from the FDK
> versions (as long as these new advanced compiler hook/APIs are keep
> compatible), but this FB 4.7 behavior seems to go in the opposite
> direction..
>
> Any thoughts?
>


-- 
Lee Burrows
ActionScripter