AW: AW: AW: AW: AW: AW: Falcon and Antlr4

2014-07-25 Thread Christofer Dutz
Hi Gordon,

I won't object that Shaoting Cai certainly knew what he was doing, but Antlr4 
is in some respects greatly different from 2 and 3. I bet if Antlr4 had been 
available at the time Falcon was initiate, he would have used that. Not only 
does it seem to allow much simpler grammars, it also generates an interface for 
each grammar in which enterXYZ and exitXYZ callbacks are defined for every 
rule in the grammar. I can hereby create an implementation of that interface 
and construct the FalconAST in here directly. Usually you parse the input and 
get an AntlrAST and use a treewalker in conjunction with that Interface 
implementation, but you can also hook that up as parse-listener and it's used 
by the initial parsing. This way I think I could remove several tree traversals.

I also got closer on the JBurg part. I was actually wrong with the runtime and 
generator part. It's actually all just a Generator. I therefore have create a 
jburg-maven-plugin that I can hook up into the build. The cool thing about that 
ist hat every plugin has it's own classloader and therefore JBurg can use 
whatever it likes without interfering with the rest. I am having one really 
strange classloading error though that I still need to investigage and as soon 
as that's finished I promissed tom to donate the plugin to JBurg. I also had a 
small discussion with tom and he will be willing to update JBurg to update 
JBurg to Antlr4 and Stringtemplate (The external stringtemplate, not the Antlr 
internal version). After that I agreed to make JBurg build with Maven ... so I 
guess we are having some progress on this :-)

Chris

-Ursprüngliche Nachricht-
Von: Gordon Smith [mailto:gsmit...@hotmail.com] 
Gesendet: Freitag, 25. Juli 2014 04:10
An: dev@flex.apache.org
Betreff: RE: AW: AW: AW: AW: AW: Falcon and Antlr4

 I am sort of confused what JBurg is actually working on ... Does it directly 
 work on FalconAST or is there some sort of ReducedFalconAST?
 
The input to the BURM (Bottom-Up Rewrite Machine) that is produced by JBurg 
(Java Bottom-Up Rewrite Generator) is the FalconAST. For example, a BURM 
pattern like
 
Pattern addExpr
Op_AddID(expression l, expression r);
 
in CMCPatterns.jbg, representing a '+' expression, applies to each subtree 
headed by a BinaryOperatorPlusNode, because the getNodeId() method of this node 
class returns Op_AddId.
 
 ABC code (I guess this is the native Flash bytecode?)
 
Right. ABC stands for ActionScript Byte Code, which is the byte code esecuted 
by the ActionScript Virtual Machine (AVM) in the Flash Player and AIR.
 
 CSS... I would like to simplify this to:
 CSS --[CSSLexer]-- TokenStream --[CSSParser]-- [FalconAST] 
 --[JBurg]-- SWF

I won't object, however the CSS implementation was done for Falcon by a former 
Adobe engineer (Shaoting Cai) who was well versed in Antlr, since he had been a 
student of the professor who developed Antlr. (The AS lexer and parser are much 
older, inherited from Flash Builder, and written by engineers who were probably 
not as expert in Antlr, and were using older version of Antlr that didn't have 
tree parsers.) So I tend to think that the Antlr way may be to let Antlr 
create an AntlrAST automatically, and then transform it into a more custom 
FalconAST with a tree parser. On the other hand, if this is slower than having 
the parser produce the FalconAST directly from the token stream, which seems 
likely, then I vote for going for speed.
 
 AS... Here I would like to remove the RawASTTokenizer and replace that 
 with an Antlr4 Lexer AS --[ASLexer]-- TokenStream --[ASParser]-- 
 FalconAST --[JBurg]-- SWF

This is what I had in mind, although again I'm not sure this would be 
considered Antlr best practice. (As before, if Shaoting had done the AS 
implementation, he probably would have produced an AntlrAST and then 
transformed it into a FalconAST with a tree parser.)
 
 Do we even need a dependency to JBurg itself to execute the code generated by 
 JBurg?
 
Yes. As you discovered, there is a runtime part, which determines which 
sequence of reductions has the lowest 'cost' and therefore gets used for code 
generation.
 
 I will contact the JBurg project and check if it was possible to switch to 
 the new Stringtemplate project (and if it was possible to split up JBurg into 
 two modules generator, and runtime).
 
If Tom doesn't want to decouple JBurg from Antlr, one option would be for us to 
fork JBurg and remove its dependency on the Antlr Stringtemplate. Is another 
option for JBurg to continue using whatever old Antlr it has been using and the 
AS and CSS lexer/parser to use the latest Antlr?
 
- Gordon

 
 From: christofer.d...@c-ware.de
 To: dev@flex.apache.org
 Subject: AW: AW: AW: AW: AW: Falcon and Antlr4
 Date: Thu, 24 Jul 2014 09:08:38 +
 
 Ok ... so I created a JBurg Maven Plugin (Will contact the JBurg 
 project lead for donating that)
 
 But (unfortunateley there's a but):
 - JBurg seems to consist of a Generator and a 

Re: [DRAFT 2] 4.13.0 Announcement

2014-07-25 Thread Alex Harui
Technically, we are good to go, but I've chickened out of pushing the
announcement because I am trying to finish up an AIR app that will at
least monitor the checksums, and maybe even auto-update the config.xml
file.  The worst case scenario is we announce, 500 folks start downloading
and moments after the announce Adobe updates the playerglobal or AIR SDK
and 500 folks fail to install while we are sleeping.  But if folks think
we should just announce then we can go for it.

I've found out how browsers check the last modified time on things in the
cache and am trying to get that to work from AIR.  Then the next step
would be to figure out how to auto-update the config.xml.  Do you know if
there is a way to automate the svnpubsub?


-Alex

On 7/24/14 12:25 PM, OmPrakash Muppirala bigosma...@gmail.com wrote:

Alex, are we good to go?

If there are no more changes to this draft, I will put out a blog post.

Thanks,
Om


On Tue, Jul 22, 2014 at 8:29 AM, Alex Harui aha...@adobe.com wrote:



 On 7/22/14 12:59 AM, Tom Chiverton t...@extravision.com wrote:

 Wil https://issues.apache.org/jira/browse/FLEX-34405 be fixed by then ?
 No, it was reported after we voted to release.  Since we got several
 months into 4.12.1 before it was reported, I don't see it as a reason
not
 to release.  Volunteers are welcome, of course, to fix the bug and push
a
 4.13.1 if they have the time and energy.

 What about adl etc ending up in the wrong place sometimes ? That should
 definitely be called out as a known issue ?
 AFAICT, it has been broken for a long time and only discovered recently,
 so again I wouldn't mess with the release notes and packaging to call it
 out.  Not sure I want to mention known issues that have so far affected
 few people in the announcement: I would rather focus on positive
messages.
  But if others agree with you I will add it.  And again, volunteers are
 welcome to address this issue as well.

 -Alex





Re: ApacheCon

2014-07-25 Thread Alex Harui
Good luck.  Hope you get more folks than we did in Denver.

-Alex

On 7/24/14 6:46 AM, Justin Mclean jus...@classsoftware.com wrote:

Hi,

Well looks like it's now official and public - my talks:
http://apacheconeu2014.sched.org/speaker/justin75#.U9EJ4hZJlqp

Also Chris:
http://apacheconeu2014.sched.org/speaker/christofer.dutz1#.U9ENbRZJlqo

Thanks,
Justin



Re: [DRAFT 2] 4.13.0 Announcement

2014-07-25 Thread Tom Chiverton
Why's this an AIR app ?
Surely a bit of bash that pulls the file once an hour, checks the size
and hash, and then runs the svn commands would be easier ?

Tom

On 25/07/14 08:06, Alex Harui wrote:
 Technically, we are good to go, but I've chickened out of pushing the
 announcement because I am trying to finish up an AIR app that will at
 least monitor the checksums, and maybe even auto-update the config.xml
 file.  The worst case scenario is we announce, 500 folks start downloading
 and moments after the announce Adobe updates the playerglobal or AIR SDK
 and 500 folks fail to install while we are sleeping.  But if folks think
 we should just announce then we can go for it.

 I've found out how browsers check the last modified time on things in the
 cache and am trying to get that to work from AIR.  Then the next step
 would be to figure out how to auto-update the config.xml.  Do you know if
 there is a way to automate the svnpubsub?


 -Alex

 On 7/24/14 12:25 PM, OmPrakash Muppirala bigosma...@gmail.com wrote:

 Alex, are we good to go?

 If there are no more changes to this draft, I will put out a blog post.

 Thanks,
 Om


 On Tue, Jul 22, 2014 at 8:29 AM, Alex Harui aha...@adobe.com wrote:


 On 7/22/14 12:59 AM, Tom Chiverton t...@extravision.com wrote:

 Wil https://issues.apache.org/jira/browse/FLEX-34405 be fixed by then ?
 No, it was reported after we voted to release.  Since we got several
 months into 4.12.1 before it was reported, I don't see it as a reason
 not
 to release.  Volunteers are welcome, of course, to fix the bug and push
 a
 4.13.1 if they have the time and energy.

 What about adl etc ending up in the wrong place sometimes ? That should
 definitely be called out as a known issue ?
 AFAICT, it has been broken for a long time and only discovered recently,
 so again I wouldn't mess with the release notes and packaging to call it
 out.  Not sure I want to mention known issues that have so far affected
 few people in the announcement: I would rather focus on positive
 messages.
  But if others agree with you I will add it.  And again, volunteers are
 welcome to address this issue as well.

 -Alex


 __
 This email has been scanned by the Symantec Email Security.cloud service.
 For more information please visit http://www.symanteccloud.com
 __




RE: [DRAFT 2] 4.13.0 Announcement

2014-07-25 Thread Kessler CTR Mark J
The http request method HEAD should work.  Standard ones you are used to are 
GET and POST.  The HEAD method simply checks the header which can tell it 
things like date modified and size.

 This method can be used for obtaining metainformation about the entity 
implied by the request without transferring the entity-body itself. This method 
is often used for testing hypertext links for validity, accessibility, and 
recent modification.  [1] Section 9.4



[1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html


-Mark

-Original Message-
From: Alex Harui [mailto:aha...@adobe.com]
Sent: Friday, July 25, 2014 9:52 AM
To: dev@flex.apache.org; Tom Chiverton
Subject: Re: [DRAFT 2] 4.13.0 Announcement

Because it adds up to gigs of data.
Sent via the PANTECH Discover, an ATT 4G LTE smartphone.

Tom Chiverton t...@extravision.com wrote:


Why's this an AIR app ?
Surely a bit of bash that pulls the file once an hour, checks the size
and hash, and then runs the svn commands would be easier ?

Tom

On 25/07/14 08:06, Alex Harui wrote:
 Technically, we are good to go, but I've chickened out of pushing the
 announcement because I am trying to finish up an AIR app that will at
 least monitor the checksums, and maybe even auto-update the config.xml
 file.  The worst case scenario is we announce, 500 folks start downloading
 and moments after the announce Adobe updates the playerglobal or AIR SDK
 and 500 folks fail to install while we are sleeping.  But if folks think
 we should just announce then we can go for it.

 I've found out how browsers check the last modified time on things in the
 cache and am trying to get that to work from AIR.  Then the next step
 would be to figure out how to auto-update the config.xml.  Do you know if
 there is a way to automate the svnpubsub?


 -Alex

 On 7/24/14 12:25 PM, OmPrakash Muppirala bigosma...@gmail.com wrote:

 Alex, are we good to go?

 If there are no more changes to this draft, I will put out a blog post.

 Thanks,
 Om


 On Tue, Jul 22, 2014 at 8:29 AM, Alex Harui aha...@adobe.com wrote:


 On 7/22/14 12:59 AM, Tom Chiverton t...@extravision.com wrote:

 Wil https://issues.apache.org/jira/browse/FLEX-34405 be fixed by then ?
 No, it was reported after we voted to release.  Since we got several
 months into 4.12.1 before it was reported, I don't see it as a reason
 not
 to release.  Volunteers are welcome, of course, to fix the bug and push
 a
 4.13.1 if they have the time and energy.

 What about adl etc ending up in the wrong place sometimes ? That should
 definitely be called out as a known issue ?
 AFAICT, it has been broken for a long time and only discovered recently,
 so again I wouldn't mess with the release notes and packaging to call it
 out.  Not sure I want to mention known issues that have so far affected
 few people in the announcement: I would rather focus on positive
 messages.
  But if others agree with you I will add it.  And again, volunteers are
 welcome to address this issue as well.

 -Alex


 __
 This email has been scanned by the Symantec Email Security.cloud service.
 For more information please visit http://www.symanteccloud.com
 __




Re: [DRAFT 2] 4.13.0 Announcement

2014-07-25 Thread Tom Chiverton
I haven't checked the servers in question, but unless they are returning
etag or last-modified that we trust, we still need to fetch the whole
file and then checksum it ?

Not that I understand why having lots of data means it needs anything as
complicated as a AIR application...

Tom

On 25/07/14 15:04, Kessler CTR Mark J wrote:
 The http request method HEAD should work.  Standard ones you are used to 
 are GET and POST.  The HEAD method simply checks the header which can 
 tell it things like date modified and size.

  This method can be used for obtaining metainformation about the entity 
 implied by the request without transferring the entity-body itself. This 
 method is often used for testing hypertext links for validity, accessibility, 
 and recent modification.  [1] Section 9.4



 [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html


 -Mark

 -Original Message-
 From: Alex Harui [mailto:aha...@adobe.com]
 Sent: Friday, July 25, 2014 9:52 AM
 To: dev@flex.apache.org; Tom Chiverton
 Subject: Re: [DRAFT 2] 4.13.0 Announcement

 Because it adds up to gigs of data.
 Sent via the PANTECH Discover, an ATT 4G LTE smartphone.

 Tom Chiverton t...@extravision.com wrote:


 Why's this an AIR app ?
 Surely a bit of bash that pulls the file once an hour, checks the size
 and hash, and then runs the svn commands would be easier ?

 Tom

 On 25/07/14 08:06, Alex Harui wrote:
 Technically, we are good to go, but I've chickened out of pushing the
 announcement because I am trying to finish up an AIR app that will at
 least monitor the checksums, and maybe even auto-update the config.xml
 file.  The worst case scenario is we announce, 500 folks start downloading
 and moments after the announce Adobe updates the playerglobal or AIR SDK
 and 500 folks fail to install while we are sleeping.  But if folks think
 we should just announce then we can go for it.

 I've found out how browsers check the last modified time on things in the
 cache and am trying to get that to work from AIR.  Then the next step
 would be to figure out how to auto-update the config.xml.  Do you know if
 there is a way to automate the svnpubsub?


 -Alex

 On 7/24/14 12:25 PM, OmPrakash Muppirala bigosma...@gmail.com wrote:

 Alex, are we good to go?

 If there are no more changes to this draft, I will put out a blog post.

 Thanks,
 Om


 On Tue, Jul 22, 2014 at 8:29 AM, Alex Harui aha...@adobe.com wrote:

 On 7/22/14 12:59 AM, Tom Chiverton t...@extravision.com wrote:

 Wil https://issues.apache.org/jira/browse/FLEX-34405 be fixed by then ?
 No, it was reported after we voted to release.  Since we got several
 months into 4.12.1 before it was reported, I don't see it as a reason
 not
 to release.  Volunteers are welcome, of course, to fix the bug and push
 a
 4.13.1 if they have the time and energy.

 What about adl etc ending up in the wrong place sometimes ? That should
 definitely be called out as a known issue ?
 AFAICT, it has been broken for a long time and only discovered recently,
 so again I wouldn't mess with the release notes and packaging to call it
 out.  Not sure I want to mention known issues that have so far affected
 few people in the announcement: I would rather focus on positive
 messages.
  But if others agree with you I will add it.  And again, volunteers are
 welcome to address this issue as well.

 -Alex


 __
 This email has been scanned by the Symantec Email Security.cloud service.
 For more information please visit http://www.symanteccloud.com
 __

 __
 This email has been scanned by the Symantec Email Security.cloud service.
 For more information please visit http://www.symanteccloud.com
 __




RE: [DRAFT 2] 4.13.0 Announcement

2014-07-25 Thread Frédéric THOMAS
I do that to check if the size of the file to download has changed since the 
user paused the download (could be a very long pause) and check if the server 
has resume capabilities, if that helps:

protected function onDownloadResponseStatus(event:HTTPStatusEvent):void {   
 urlStream.removeEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, 
onDownloadResponseStatus);var header:URLRequestHeader;
if (event.status == OK || event.status == PARTIAL_CONTENT)
for each (header in event.responseHeaders) {if (header.name == 
Accept-Ranges  header.value == bytes) {
hasResumingCapabilities = true;}else if 
(header.name == Content-Length) {const 
contentLength:Number = parseInt(header.value);
traceInfo(onDownloadResponseStatus, contentLength:  + contentLength);   
 if (fileDescriptor.bytesTotal  0  fileDescriptor.bytesTotal - 
fileDescriptor.bytesLoaded != contentLength) {abort();  
  run([ fileDescriptor ]);return;   
 }}}
dispatcher.dispatchArbitraryEvent(new 
ResumableStatusEvent(hasResumingCapabilities));}

Frédéric THOMAS

 Date: Fri, 25 Jul 2014 15:13:18 +0100
 From: t...@extravision.com
 To: dev@flex.apache.org
 Subject: Re: [DRAFT 2] 4.13.0 Announcement
 
 I haven't checked the servers in question, but unless they are returning
 etag or last-modified that we trust, we still need to fetch the whole
 file and then checksum it ?
 
 Not that I understand why having lots of data means it needs anything as
 complicated as a AIR application...
 
 Tom
 
 On 25/07/14 15:04, Kessler CTR Mark J wrote:
  The http request method HEAD should work.  Standard ones you are used to 
  are GET and POST.  The HEAD method simply checks the header which can 
  tell it things like date modified and size.
 
   This method can be used for obtaining metainformation about the entity 
  implied by the request without transferring the entity-body itself. This 
  method is often used for testing hypertext links for validity, 
  accessibility, and recent modification.  [1] Section 9.4
 
 
 
  [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
 
 
  -Mark
 
  -Original Message-
  From: Alex Harui [mailto:aha...@adobe.com]
  Sent: Friday, July 25, 2014 9:52 AM
  To: dev@flex.apache.org; Tom Chiverton
  Subject: Re: [DRAFT 2] 4.13.0 Announcement
 
  Because it adds up to gigs of data.
  Sent via the PANTECH Discover, an ATT 4G LTE smartphone.
 
  Tom Chiverton t...@extravision.com wrote:
 
 
  Why's this an AIR app ?
  Surely a bit of bash that pulls the file once an hour, checks the size
  and hash, and then runs the svn commands would be easier ?
 
  Tom
 
  On 25/07/14 08:06, Alex Harui wrote:
  Technically, we are good to go, but I've chickened out of pushing the
  announcement because I am trying to finish up an AIR app that will at
  least monitor the checksums, and maybe even auto-update the config.xml
  file.  The worst case scenario is we announce, 500 folks start downloading
  and moments after the announce Adobe updates the playerglobal or AIR SDK
  and 500 folks fail to install while we are sleeping.  But if folks think
  we should just announce then we can go for it.
 
  I've found out how browsers check the last modified time on things in the
  cache and am trying to get that to work from AIR.  Then the next step
  would be to figure out how to auto-update the config.xml.  Do you know if
  there is a way to automate the svnpubsub?
 
 
  -Alex
 
  On 7/24/14 12:25 PM, OmPrakash Muppirala bigosma...@gmail.com wrote:
 
  Alex, are we good to go?
 
  If there are no more changes to this draft, I will put out a blog post.
 
  Thanks,
  Om
 
 
  On Tue, Jul 22, 2014 at 8:29 AM, Alex Harui aha...@adobe.com wrote:
 
  On 7/22/14 12:59 AM, Tom Chiverton t...@extravision.com wrote:
 
  Wil https://issues.apache.org/jira/browse/FLEX-34405 be fixed by then ?
  No, it was reported after we voted to release.  Since we got several
  months into 4.12.1 before it was reported, I don't see it as a reason
  not
  to release.  Volunteers are welcome, of course, to fix the bug and push
  a
  4.13.1 if they have the time and energy.
 
  What about adl etc ending up in the wrong place sometimes ? That should
  definitely be called out as a known issue ?
  AFAICT, it has been broken for a long time and only discovered recently,
  so again I wouldn't mess with the release notes and packaging to call it
  out.  Not sure I want to mention known issues that have so far affected
  few people in the announcement: I would rather focus on positive
  messages.
   But if others agree with you I will add it.  And again, volunteers are
  welcome to address this issue as well.
 
  -Alex
 
 
  __
  This email 

Re: [DRAFT 2] 4.13.0 Announcement

2014-07-25 Thread Alex Harui
Couldn't find a way to use head or last modified header from ant. I'd be happy 
to be wrong. I don't want to tie up my Internet connection downloading this 
much stuff.
Sent via the PANTECH Discover, an ATT 4G LTE smartphone.

Tom Chiverton t...@extravision.com wrote:


I haven't checked the servers in question, but unless they are returning
etag or last-modified that we trust, we still need to fetch the whole
file and then checksum it ?

Not that I understand why having lots of data means it needs anything as
complicated as a AIR application...

Tom

On 25/07/14 15:04, Kessler CTR Mark J wrote:
 The http request method HEAD should work.  Standard ones you are used to 
 are GET and POST.  The HEAD method simply checks the header which can 
 tell it things like date modified and size.

  This method can be used for obtaining metainformation about the entity 
 implied by the request without transferring the entity-body itself. This 
 method is often used for testing hypertext links for validity, accessibility, 
 and recent modification.  [1] Section 9.4



 [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html


 -Mark

 -Original Message-
 From: Alex Harui [mailto:aha...@adobe.com]
 Sent: Friday, July 25, 2014 9:52 AM
 To: dev@flex.apache.org; Tom Chiverton
 Subject: Re: [DRAFT 2] 4.13.0 Announcement

 Because it adds up to gigs of data.
 Sent via the PANTECH Discover, an ATT 4G LTE smartphone.

 Tom Chiverton t...@extravision.com wrote:


 Why's this an AIR app ?
 Surely a bit of bash that pulls the file once an hour, checks the size
 and hash, and then runs the svn commands would be easier ?

 Tom

 On 25/07/14 08:06, Alex Harui wrote:
 Technically, we are good to go, but I've chickened out of pushing the
 announcement because I am trying to finish up an AIR app that will at
 least monitor the checksums, and maybe even auto-update the config.xml
 file.  The worst case scenario is we announce, 500 folks start downloading
 and moments after the announce Adobe updates the playerglobal or AIR SDK
 and 500 folks fail to install while we are sleeping.  But if folks think
 we should just announce then we can go for it.

 I've found out how browsers check the last modified time on things in the
 cache and am trying to get that to work from AIR.  Then the next step
 would be to figure out how to auto-update the config.xml.  Do you know if
 there is a way to automate the svnpubsub?


 -Alex

 On 7/24/14 12:25 PM, OmPrakash Muppirala bigosma...@gmail.com wrote:

 Alex, are we good to go?

 If there are no more changes to this draft, I will put out a blog post.

 Thanks,
 Om


 On Tue, Jul 22, 2014 at 8:29 AM, Alex Harui aha...@adobe.com wrote:

 On 7/22/14 12:59 AM, Tom Chiverton t...@extravision.com wrote:

 Wil https://issues.apache.org/jira/browse/FLEX-34405 be fixed by then ?
 No, it was reported after we voted to release.  Since we got several
 months into 4.12.1 before it was reported, I don't see it as a reason
 not
 to release.  Volunteers are welcome, of course, to fix the bug and push
 a
 4.13.1 if they have the time and energy.

 What about adl etc ending up in the wrong place sometimes ? That should
 definitely be called out as a known issue ?
 AFAICT, it has been broken for a long time and only discovered recently,
 so again I wouldn't mess with the release notes and packaging to call it
 out.  Not sure I want to mention known issues that have so far affected
 few people in the announcement: I would rather focus on positive
 messages.
  But if others agree with you I will add it.  And again, volunteers are
 welcome to address this issue as well.

 -Alex


 __
 This email has been scanned by the Symantec Email Security.cloud service.
 For more information please visit http://www.symanteccloud.com
 __

 __
 This email has been scanned by the Symantec Email Security.cloud service.
 For more information please visit http://www.symanteccloud.com
 __




Re: AW: AW: AW: AW: AW: AW: Falcon and Antlr4

2014-07-25 Thread Gordon Smith
It sounds like you're making good progress. I agree with how you want to use 
the Antlr4 callbacks to construct a FalconAST.

- Gordon

Sent from my iPad

 On Jul 24, 2014, at 11:06 PM, Christofer Dutz christofer.d...@c-ware.de 
 wrote:
 
 Hi Gordon,
 
 I won't object that Shaoting Cai certainly knew what he was doing, but Antlr4 
 is in some respects greatly different from 2 and 3. I bet if Antlr4 had been 
 available at the time Falcon was initiate, he would have used that. Not only 
 does it seem to allow much simpler grammars, it also generates an interface 
 for each grammar in which enterXYZ and exitXYZ callbacks are defined for 
 every rule in the grammar. I can hereby create an implementation of that 
 interface and construct the FalconAST in here directly. Usually you parse the 
 input and get an AntlrAST and use a treewalker in conjunction with that 
 Interface implementation, but you can also hook that up as parse-listener and 
 it's used by the initial parsing. This way I think I could remove several 
 tree traversals.
 
 I also got closer on the JBurg part. I was actually wrong with the runtime 
 and generator part. It's actually all just a Generator. I therefore have 
 create a jburg-maven-plugin that I can hook up into the build. The cool thing 
 about that ist hat every plugin has it's own classloader and therefore JBurg 
 can use whatever it likes without interfering with the rest. I am having one 
 really strange classloading error though that I still need to investigage and 
 as soon as that's finished I promissed tom to donate the plugin to JBurg. I 
 also had a small discussion with tom and he will be willing to update JBurg 
 to update JBurg to Antlr4 and Stringtemplate (The external stringtemplate, 
 not the Antlr internal version). After that I agreed to make JBurg build with 
 Maven ... so I guess we are having some progress on this :-)
 
 Chris
 
 -Ursprüngliche Nachricht-
 Von: Gordon Smith [mailto:gsmit...@hotmail.com] 
 Gesendet: Freitag, 25. Juli 2014 04:10
 An: dev@flex.apache.org
 Betreff: RE: AW: AW: AW: AW: AW: Falcon and Antlr4
 
 I am sort of confused what JBurg is actually working on ... Does it directly 
 work on FalconAST or is there some sort of ReducedFalconAST?
 
 The input to the BURM (Bottom-Up Rewrite Machine) that is produced by JBurg 
 (Java Bottom-Up Rewrite Generator) is the FalconAST. For example, a BURM 
 pattern like
 
 Pattern addExpr
 Op_AddID(expression l, expression r);
 
 in CMCPatterns.jbg, representing a '+' expression, applies to each subtree 
 headed by a BinaryOperatorPlusNode, because the getNodeId() method of this 
 node class returns Op_AddId.
 
 ABC code (I guess this is the native Flash bytecode?)
 
 Right. ABC stands for ActionScript Byte Code, which is the byte code esecuted 
 by the ActionScript Virtual Machine (AVM) in the Flash Player and AIR.
 
 CSS... I would like to simplify this to:
 CSS --[CSSLexer]-- TokenStream --[CSSParser]-- [FalconAST] 
 --[JBurg]-- SWF
 
 I won't object, however the CSS implementation was done for Falcon by a 
 former Adobe engineer (Shaoting Cai) who was well versed in Antlr, since he 
 had been a student of the professor who developed Antlr. (The AS lexer and 
 parser are much older, inherited from Flash Builder, and written by engineers 
 who were probably not as expert in Antlr, and were using older version of 
 Antlr that didn't have tree parsers.) So I tend to think that the Antlr way 
 may be to let Antlr create an AntlrAST automatically, and then transform it 
 into a more custom FalconAST with a tree parser. On the other hand, if this 
 is slower than having the parser produce the FalconAST directly from the 
 token stream, which seems likely, then I vote for going for speed.
 
 AS... Here I would like to remove the RawASTTokenizer and replace that 
 with an Antlr4 Lexer AS --[ASLexer]-- TokenStream --[ASParser]-- 
 FalconAST --[JBurg]-- SWF
 
 This is what I had in mind, although again I'm not sure this would be 
 considered Antlr best practice. (As before, if Shaoting had done the AS 
 implementation, he probably would have produced an AntlrAST and then 
 transformed it into a FalconAST with a tree parser.)
 
 Do we even need a dependency to JBurg itself to execute the code generated 
 by JBurg?
 
 Yes. As you discovered, there is a runtime part, which determines which 
 sequence of reductions has the lowest 'cost' and therefore gets used for code 
 generation.
 
 I will contact the JBurg project and check if it was possible to switch to 
 the new Stringtemplate project (and if it was possible to split up JBurg 
 into two modules generator, and runtime).
 
 If Tom doesn't want to decouple JBurg from Antlr, one option would be for us 
 to fork JBurg and remove its dependency on the Antlr Stringtemplate. Is 
 another option for JBurg to continue using whatever old Antlr it has been 
 using and the AS and CSS lexer/parser to use the latest Antlr?
 
 - Gordon
 
 
 From: 

Re: [LAZY] Enabling Github pull requests in Apache Flex

2014-07-25 Thread Chris Martin
I think this would be very cool.

Chris


On Thu, Jul 24, 2014 at 5:34 PM, OmPrakash Muppirala bigosma...@gmail.com
wrote:

 The INFRA team has started supporting [1] pull requests from github.  If no
 one has objections, I will open a ticket with INFRA to enable this feature
 for Apache Flex.  In particular, these are the benefits we get from opting
 in for the tighter GitHub integration

- Any Pull Request that gets opened, closed, reopened or commented on
now gets recorded on the project's mailing list
- If a project has a JIRA instance, any PRs or comments on PRs that
include a JIRA ticket ID will trigger an update on that specific ticket
- Replying to a GitHub comment on the dev@ mailing list will trigger a
comment being placed on GitHub (yes, it works both ways!)
- GitHub activity can now be relayed to IRC channels on the Freenode
network.

 This means that we can actually accept pull requests from GitHub going
 forward.

 Thanks,
 Om

 [1]

 https://blogs.apache.org/infra/entry/improved_integration_between_apache_and