You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by Michael Schmalle <ap...@teotigraphix.com> on 2013/02/04 10:26:41 UTC

[FalconJx] AMD implementation

Hey Frank,

Just wanted you to know that I am feeling a lot better and going to  
spend the week on AMD and your approach. While I was sick last week I  
has some time to get into a bit of JS.

I'm looking forward to getting this working so we can see how it  
works, mainly so "I" can understand your approach. :)

There has been SO MUCH volume about this stuff, can you kindly paste  
in a couple references you had posted in the last 100 emails for me to  
check out now that my mind is working again. ;-)

Thanks,
Mike

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


Re: [FalconJx] AMD implementation

Posted by Michael Schmalle <ap...@teotigraphix.com>.
Quoting Frank Wienberg <fr...@jangaroo.net>:

> Hi Mike,
>
> great to hear you are well again and have some time to spend on the AMD
> approach!
>

My plan is by Friday the compiler will be outputting the exact code  
you have in the github repo.

>
> On Mon, Feb 4, 2013 at 12:56 PM, Michael Schmalle
> <ap...@teotigraphix.com>wrote:
>
>> Frank,
>>
>> I am starting on this and you have confused me starting off. The wiki
>> entry under the header of "Implementation Solution" does NOT look at all
>> the same as your A.js production in the 'as-js-runtime-prototype' source
>> code.
>>
>> What am I missing? Which is the correct way you want this output. I
>> thought you put the GIT repo up so I could see an implementation using
>> classes and interfaces together.
>>
>
> I set up the as-js-runtime-prototype first, before I started implementing
> this solution in the Jangaroo compiler. As always, when I implement (even
> my own) specifications, I find flaws and missing aspects or things you
> could do more cleverly.

I work like this to, just look at the commits and changed to FalconJx  
up to this point. :)

> So *after* implementing the AMD approach with Jangaroo 3, I wrote down the
> final design on the Wiki page. I tried to include sufficient concrete code
> examples, but I can totally see that an updated and Wiki-page-consistent
> as-js-runtime-prototype would help, too.
> Please stand by for the latest code, and please for the time being, use the
> Wiki page as reference.
>
> Sorry for the confusion!


No that is fine, I actually read the whole wiki page this morning and  
understood it, my brain wasn't working the last 2 weeks.

Until you get that updated code up, I will just work in the more  
"expression" type emitting for now.

>
>
>> I will be honest, when we were talking about line numbers, I thought you
>>> were talking about MATCHING AS Exactly but, in your example you are just
>>> referencing them on the expression statements correct?
>>>
>>
> Yes, the source line number references in the generated code are a way to
> get around some indirections Jangaroo needs to get each line of generated
> code into exactly the same line as the source code. This is the difference
> between the solution I implemented for Jangaroo and the solution I propose
> for FalconJx. If you take Jangaroo 3 compilation results like the ones from
> the Open Flash Chart
> demo<http://jangaron.net/ofc5/data-files/joo.html#joo.debug> (for
> example charts.Area) and "inline" all member functions declared in the
> upper part into the "Jangaroo part" at the end of the file, you'd end up
> with my FalconJx proposition. What you save is to give all method functions
> a name, which could clash with other identifiers.
>
> I guess that's how I am gonna re-create the as-js-runtime-prototype
> JavaScript code: Compile the original AS3 sources with Jangaroo 3 and
> inline the member functions and initializers.
>
> If you need more / other examples of how the JS output of some AS input
> should look like, I can thus create it for you in no time. You could even
> do that yourself (if you prefer), by checking out the "jangaroo-3" branch
> of jangaroo-tools <https://github.com/CoreMedia/jangaroo-tools/> and
> building it via Maven. For the compiler integration tests, there are *.as
> files that are automatically compiled.
>
> If you have any more questions, I am here, listening!

Like I said, once you get the updated code, I should be good to go,  
then we can hit the edge cases.

Mike


>
> Greetings,
> -Frank-
>

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


RE: HTTPService Response Headers

Posted by Kessler CTR Mark J <ma...@usmc.mil>.
   We use HTTPService for all of our server data calls.  There were a few modifications we used.  We use E4X for the data format, having the server side send all responses in XML.  When a response is sent back from the server we have a success message that is stored in  a status node.

So the client side checks a few things...

A.  Is the response empty.
B.  Does it contain the status node.
C.  Does it have any faults.

   If it fails to get a status it can assume an error.  The Fault events  have a "FaultEvent.fault.faultString" that can show some information about what happened and the " FaultEvent.message.headers.DSStatusCode" can sometimes return the exact server code.

-Mark 

-----Original Message-----
From: Dan Nailor [mailto:dNailor@emarketinginc.com] 
Sent: Tuesday, February 05, 2013 12:23 PM
To: dev@flex.apache.org
Subject: HTTPService Response Headers

Hello,
I am looking to find out if there is anything in the works to allow the HTTPService response headers to be interrogated beyond successful and unsuccessful calls? From what I understand this is not possible with the current class and may be a limitation of some browsers.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/HTTPService.html
http://blogs.adobe.com/kiwi/2006/07/making_http_calls_in_actionscr.html (Response Headers)

Thanks!

Dan

This transmission may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is STRICTLY PROHIBITED. If you received this transmission in error, please immediately contact the sender and destroy the material in its entirety, whether in electronic or hard copy format.

Re: HTTPService Response Headers

Posted by Om <bi...@gmail.com>.
I've had pretty good success using the AS3HttpClient library [1], [2]

[1] http://code.google.com/p/as3httpclient/
[2]
http://www.abdulqabiz.com/blog/archives/2006/03/03/http-authentication-for-httpget-requests-using-actionscript-3/

On Tue, Feb 5, 2013 at 10:14 AM, David Coleman <
david_coleman_007@hotmail.com> wrote:

> I also ment to say (but i hit send by accident instead of "save draft").
>  that a creative solution that i have used before is to return custom 500
> errors when you have "http success but data fail" style errors.   From the
> server you send a 500, triggering the flex IOError, then you include in the
> text some JSON or other info that describes the error condition.  This
> allows you to know that a 200 is ONLY good data (short of a total server
> meltdown).
>
> From: david_coleman_007@hotmail.com
> To: dev@flex.apache.org
> Subject: RE: HTTPService Response Headers
> Date: Tue, 5 Feb 2013 15:10:53 -0300
>
>
>
>
> Hi, I have had to modify the HTTPService in the past to work around the
> lack of persistent cookie support.  if you want I could share this.
>  HTTPService does not play well with cookies (or any kind of useful headers
> for that matter).  I'd be willing to share my work if anyone is interested.
>  (it may not be a perfect patch, and to meet Apache standards it probably
> should be polished, BUT it works and is used by thousands of ppl in an air
> app running on sdk 4.6.0).
>
> > Date: Tue, 5 Feb 2013 12:57:42 -0500
> > From: rick.winscot@gmail.com
> > To: dev@flex.apache.org
> > Subject: Re: HTTPService Response Headers
> >
> > Dan.
> >
> > If you are not using a proxy service like BlazeDS... anything other than
> an HTTP200 is going to cause your Flex application fits. If you are looking
> for the notion of a 'successful failure' where an operation completed (e.g.
> a partial save) but had errors. You'll need to implement the semantics of
> that condition yourself - Flex is relegated to either a result or fault.
> >
> > If you've considered pushing elements into HTTP headers... remember that
> custom HTTP request headers are only supported for POST requests, not for
> GET requests.
> >
> > http://verveguy.blogspot.com/2008/07/truth-about-flex-httpservice.html
> >
> > Additionally, heavy restrictions have been placed on HTTP headers in
> Flash Player 9.0+ and may get worse. So... your mileage will depend on
> which headers you want to touch.
> >
> >
> http://helpx.adobe.com/flash-player/kb/authorization-header-request-flash-player.html
> >
> > If you have a concrete use-case, we might be able to hammer out an
> approach that works reliably. What exactly did you have in mind?
> >
> > Cheers,
> >
> > Rick Winscot
> >
> >
> >
> > On Tuesday, February 5, 2013 at 12:22 PM, Dan Nailor wrote:
> >
> > > Hello,
> > > I am looking to find out if there is anything in the works to allow
> the HTTPService response headers to be interrogated beyond successful and
> unsuccessful calls? From what I understand this is not possible with the
> current class and may be a limitation of some browsers.
> > >
> > >
> http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/HTTPService.html
> > >
> http://blogs.adobe.com/kiwi/2006/07/making_http_calls_in_actionscr.html(Response Headers)
> > >
> > > Thanks!
> > >
> > > Dan
> > >
> > > This transmission may contain information that is privileged,
> confidential, and/or exempt from disclosure under applicable law. If you
> are not the intended recipient, you are hereby notified that any
> disclosure, copying, distribution, or use of the information contained
> herein (including any reliance thereon) is STRICTLY PROHIBITED. If you
> received this transmission in error, please immediately contact the sender
> and destroy the material in its entirety, whether in electronic or hard
> copy format.
> >
>
>
>

RE: HTTPService Response Headers

Posted by David Coleman <da...@hotmail.com>.
I also ment to say (but i hit send by accident instead of "save draft").  that a creative solution that i have used before is to return custom 500 errors when you have "http success but data fail" style errors.   From the server you send a 500, triggering the flex IOError, then you include in the text some JSON or other info that describes the error condition.  This allows you to know that a 200 is ONLY good data (short of a total server meltdown).

From: david_coleman_007@hotmail.com
To: dev@flex.apache.org
Subject: RE: HTTPService Response Headers
Date: Tue, 5 Feb 2013 15:10:53 -0300




Hi, I have had to modify the HTTPService in the past to work around the lack of persistent cookie support.  if you want I could share this.  HTTPService does not play well with cookies (or any kind of useful headers for that matter).  I'd be willing to share my work if anyone is interested.  (it may not be a perfect patch, and to meet Apache standards it probably should be polished, BUT it works and is used by thousands of ppl in an air app running on sdk 4.6.0).

> Date: Tue, 5 Feb 2013 12:57:42 -0500
> From: rick.winscot@gmail.com
> To: dev@flex.apache.org
> Subject: Re: HTTPService Response Headers
> 
> Dan.
> 
> If you are not using a proxy service like BlazeDS... anything other than an HTTP200 is going to cause your Flex application fits. If you are looking for the notion of a 'successful failure' where an operation completed (e.g. a partial save) but had errors. You'll need to implement the semantics of that condition yourself - Flex is relegated to either a result or fault.
> 
> If you've considered pushing elements into HTTP headers... remember that custom HTTP request headers are only supported for POST requests, not for GET requests. 
> 
> http://verveguy.blogspot.com/2008/07/truth-about-flex-httpservice.html
> 
> Additionally, heavy restrictions have been placed on HTTP headers in Flash Player 9.0+ and may get worse. So... your mileage will depend on which headers you want to touch.
> 
> http://helpx.adobe.com/flash-player/kb/authorization-header-request-flash-player.html
> 
> If you have a concrete use-case, we might be able to hammer out an approach that works reliably. What exactly did you have in mind?
> 
> Cheers,
> 
> Rick Winscot
> 
> 
> 
> On Tuesday, February 5, 2013 at 12:22 PM, Dan Nailor wrote:
> 
> > Hello,
> > I am looking to find out if there is anything in the works to allow the HTTPService response headers to be interrogated beyond successful and unsuccessful calls? From what I understand this is not possible with the current class and may be a limitation of some browsers.
> > 
> > http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/HTTPService.html
> > http://blogs.adobe.com/kiwi/2006/07/making_http_calls_in_actionscr.html (Response Headers)
> > 
> > Thanks!
> > 
> > Dan
> > 
> > This transmission may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is STRICTLY PROHIBITED. If you received this transmission in error, please immediately contact the sender and destroy the material in its entirety, whether in electronic or hard copy format. 
> 
 		 	   		   		 	   		  

RE: HTTPService Response Headers

Posted by David Coleman <da...@hotmail.com>.
Hi, I have had to modify the HTTPService in the past to work around the lack of persistent cookie support.  if you want I could share this.  HTTPService does not play well with cookies (or any kind of useful headers for that matter).  I'd be willing to share my work if anyone is interested.  (it may not be a perfect patch, and to meet Apache standards it probably should be polished, BUT it works and is used by thousands of ppl in an air app running on sdk 4.6.0).

> Date: Tue, 5 Feb 2013 12:57:42 -0500
> From: rick.winscot@gmail.com
> To: dev@flex.apache.org
> Subject: Re: HTTPService Response Headers
> 
> Dan.
> 
> If you are not using a proxy service like BlazeDS... anything other than an HTTP200 is going to cause your Flex application fits. If you are looking for the notion of a 'successful failure' where an operation completed (e.g. a partial save) but had errors. You'll need to implement the semantics of that condition yourself - Flex is relegated to either a result or fault.
> 
> If you've considered pushing elements into HTTP headers... remember that custom HTTP request headers are only supported for POST requests, not for GET requests. 
> 
> http://verveguy.blogspot.com/2008/07/truth-about-flex-httpservice.html
> 
> Additionally, heavy restrictions have been placed on HTTP headers in Flash Player 9.0+ and may get worse. So... your mileage will depend on which headers you want to touch.
> 
> http://helpx.adobe.com/flash-player/kb/authorization-header-request-flash-player.html
> 
> If you have a concrete use-case, we might be able to hammer out an approach that works reliably. What exactly did you have in mind?
> 
> Cheers,
> 
> Rick Winscot
> 
> 
> 
> On Tuesday, February 5, 2013 at 12:22 PM, Dan Nailor wrote:
> 
> > Hello,
> > I am looking to find out if there is anything in the works to allow the HTTPService response headers to be interrogated beyond successful and unsuccessful calls? From what I understand this is not possible with the current class and may be a limitation of some browsers.
> > 
> > http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/HTTPService.html
> > http://blogs.adobe.com/kiwi/2006/07/making_http_calls_in_actionscr.html (Response Headers)
> > 
> > Thanks!
> > 
> > Dan
> > 
> > This transmission may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is STRICTLY PROHIBITED. If you received this transmission in error, please immediately contact the sender and destroy the material in its entirety, whether in electronic or hard copy format. 
> 
 		 	   		  

RE: HTTPService Response Headers

Posted by David Coleman <da...@hotmail.com>.
try this:


in the flex sdk, in file \frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as change the code as shown in my gist[1] starting at line 182:


to use this, here is a class that I constructed from the air app that i mentioned, which utilizes the now patched cookie functionality.


I had to develop this functionality to allow me to correctly use HTTPService for CakePHP's cookie based authentication system.  This allowed me to actually "login" to my server, and then use that cookie for each subsequent call, essentially creating a web session in my AIR app.  CakePHP typically uses all GET based REST and maps most data via routing.  Of course you can POST data too, but having custom headers and COOKIES via GET was a MUST for my application.  So I started hacking away at it, and eventually found a way to make it work.  The only catch was that I had to change the rpc package of the flex sdk.


hope that this is useful to someone!


[1] https://gist.github.com/davidcoleman007/4717928


Cheers!
-Dave



> From: dNailor@emarketinginc.com
> To: dev@flex.apache.org
> Date: Tue, 5 Feb 2013 14:16:54 -0700
> Subject: RE: HTTPService Response Headers
> 
> Thanks Rick,
> 
> I am in the process of developing API to integrate with the .NET RESTful servicing and there are two things I am would like to do.
> 1) On all GET and POST calls to RESTful endpoints attached an "authentication" header with two name value pairs, i.e. a key and token.
> 2) I want to be able to handle a 400 Bad Request error (and other 400 errors) and parse through a JSON payload to allow Flex to determine how to proceed. In the past we have forced a 200 status with a JSON payload but would like to if possible handle 400 errors...
> 
> Dan
> 
> -----Original Message-----
> From: Rick Winscot [mailto:rick.winscot@gmail.com] 
> Sent: Tuesday, February 05, 2013 10:58 AM
> To: dev@flex.apache.org
> Subject: Re: HTTPService Response Headers
> 
> Dan.
> 
> If you are not using a proxy service like BlazeDS... anything other than an HTTP200 is going to cause your Flex application fits. If you are looking for the notion of a 'successful failure' where an operation completed (e.g. a partial save) but had errors. You'll need to implement the semantics of that condition yourself - Flex is relegated to either a result or fault.
> 
> If you've considered pushing elements into HTTP headers... remember that custom HTTP request headers are only supported for POST requests, not for GET requests. 
> 
> http://verveguy.blogspot.com/2008/07/truth-about-flex-httpservice.html
> 
> Additionally, heavy restrictions have been placed on HTTP headers in Flash Player 9.0+ and may get worse. So... your mileage will depend on which headers you want to touch.
> 
> http://helpx.adobe.com/flash-player/kb/authorization-header-request-flash-player.html
> 
> If you have a concrete use-case, we might be able to hammer out an approach that works reliably. What exactly did you have in mind?
> 
> Cheers,
> 
> Rick Winscot
> 
> 
> 
> On Tuesday, February 5, 2013 at 12:22 PM, Dan Nailor wrote:
> 
> > Hello,
> > I am looking to find out if there is anything in the works to allow the HTTPService response headers to be interrogated beyond successful and unsuccessful calls? From what I understand this is not possible with the current class and may be a limitation of some browsers.
> > 
> > http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/
> > rpc/http/HTTPService.html 
> > http://blogs.adobe.com/kiwi/2006/07/making_http_calls_in_actionscr.htm
> > l (Response Headers)
> > 
> > Thanks!
> > 
> > Dan
> > 
> > This transmission may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is STRICTLY PROHIBITED. If you received this transmission in error, please immediately contact the sender and destroy the material in its entirety, whether in electronic or hard copy format. 
> 
 		 	   		  

RE: HTTPService Response Headers

Posted by Dan Nailor <dN...@emarketinginc.com>.
Thanks Rick,

I am in the process of developing API to integrate with the .NET RESTful servicing and there are two things I am would like to do.
1) On all GET and POST calls to RESTful endpoints attached an "authentication" header with two name value pairs, i.e. a key and token.
2) I want to be able to handle a 400 Bad Request error (and other 400 errors) and parse through a JSON payload to allow Flex to determine how to proceed. In the past we have forced a 200 status with a JSON payload but would like to if possible handle 400 errors...

Dan

-----Original Message-----
From: Rick Winscot [mailto:rick.winscot@gmail.com] 
Sent: Tuesday, February 05, 2013 10:58 AM
To: dev@flex.apache.org
Subject: Re: HTTPService Response Headers

Dan.

If you are not using a proxy service like BlazeDS... anything other than an HTTP200 is going to cause your Flex application fits. If you are looking for the notion of a 'successful failure' where an operation completed (e.g. a partial save) but had errors. You'll need to implement the semantics of that condition yourself - Flex is relegated to either a result or fault.

If you've considered pushing elements into HTTP headers... remember that custom HTTP request headers are only supported for POST requests, not for GET requests. 

http://verveguy.blogspot.com/2008/07/truth-about-flex-httpservice.html

Additionally, heavy restrictions have been placed on HTTP headers in Flash Player 9.0+ and may get worse. So... your mileage will depend on which headers you want to touch.

http://helpx.adobe.com/flash-player/kb/authorization-header-request-flash-player.html

If you have a concrete use-case, we might be able to hammer out an approach that works reliably. What exactly did you have in mind?

Cheers,

Rick Winscot



On Tuesday, February 5, 2013 at 12:22 PM, Dan Nailor wrote:

> Hello,
> I am looking to find out if there is anything in the works to allow the HTTPService response headers to be interrogated beyond successful and unsuccessful calls? From what I understand this is not possible with the current class and may be a limitation of some browsers.
> 
> http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/
> rpc/http/HTTPService.html 
> http://blogs.adobe.com/kiwi/2006/07/making_http_calls_in_actionscr.htm
> l (Response Headers)
> 
> Thanks!
> 
> Dan
> 
> This transmission may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is STRICTLY PROHIBITED. If you received this transmission in error, please immediately contact the sender and destroy the material in its entirety, whether in electronic or hard copy format. 


Re: HTTPService Response Headers

Posted by Rick Winscot <ri...@gmail.com>.
Dan.

If you are not using a proxy service like BlazeDS... anything other than an HTTP200 is going to cause your Flex application fits. If you are looking for the notion of a 'successful failure' where an operation completed (e.g. a partial save) but had errors. You'll need to implement the semantics of that condition yourself - Flex is relegated to either a result or fault.

If you've considered pushing elements into HTTP headers... remember that custom HTTP request headers are only supported for POST requests, not for GET requests. 

http://verveguy.blogspot.com/2008/07/truth-about-flex-httpservice.html

Additionally, heavy restrictions have been placed on HTTP headers in Flash Player 9.0+ and may get worse. So... your mileage will depend on which headers you want to touch.

http://helpx.adobe.com/flash-player/kb/authorization-header-request-flash-player.html

If you have a concrete use-case, we might be able to hammer out an approach that works reliably. What exactly did you have in mind?

Cheers,

Rick Winscot



On Tuesday, February 5, 2013 at 12:22 PM, Dan Nailor wrote:

> Hello,
> I am looking to find out if there is anything in the works to allow the HTTPService response headers to be interrogated beyond successful and unsuccessful calls? From what I understand this is not possible with the current class and may be a limitation of some browsers.
> 
> http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/HTTPService.html
> http://blogs.adobe.com/kiwi/2006/07/making_http_calls_in_actionscr.html (Response Headers)
> 
> Thanks!
> 
> Dan
> 
> This transmission may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is STRICTLY PROHIBITED. If you received this transmission in error, please immediately contact the sender and destroy the material in its entirety, whether in electronic or hard copy format. 


HTTPService Response Headers

Posted by Dan Nailor <dN...@emarketinginc.com>.
Hello,
I am looking to find out if there is anything in the works to allow the HTTPService response headers to be interrogated beyond successful and unsuccessful calls? From what I understand this is not possible with the current class and may be a limitation of some browsers.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/HTTPService.html
http://blogs.adobe.com/kiwi/2006/07/making_http_calls_in_actionscr.html (Response Headers)

Thanks!

Dan

This transmission may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is STRICTLY PROHIBITED. If you received this transmission in error, please immediately contact the sender and destroy the material in its entirety, whether in electronic or hard copy format.

Re: [FalconJx] AMD implementation

Posted by Frank Wienberg <fr...@jangaroo.net>.
>  I am going to change that in Jangaroo and in the as-js-runtime-prototype
accordingly.

I just pushed the changes to "master" of as-js-runtime-prototype.

Re: [FalconJx] AMD implementation

Posted by Frank Wienberg <fr...@jangaroo.net>.
Mike, too bad our different time zones slow down communication so much...

Ah yes, this is about the [Native] annotation we discussed in this other
thread.
Jangaroo needs the ActionScript API of all the built-in classes (JavaScript
globals), so when using String, it actually parses String.as and finds the
[Native] annotation. It then uses a different AMD module name, using the
"native" plugin that, instead of loading a script, just retrieves the
global JavaScript object.

In the meantime, [Native] can do even more:

   - Using [Native(amd="path/library")] on a class com.acme.Foo, you tell
   the compiler to not generate any code for this class, but whenever it is
   used, load the AMD module "path/library". This allows to implement an
   ActionScript API "natively" in JavaScript. The corresponding "native!"
   notation would be "native!com.acme.Foo@path/library". If you just write
   [Native(amd)], the module name is derived from the class name as usual, in
   this case the generated code would require "classes/com/acme/Foo" (*no*
   native! plugin!).
   - Using [Native(global="Ext.Panel")] on a class ext.Panel allows to
   define a mapping from ActionScript identifier (ext.Panel) to JavaScript
   global name (upper-case "package" Ext.Panel). If no "global" is given, the
   ActionScript name must be exactly the same as the JavaScript name.
   - You can even combine "amd" and "global", to integrate with non-AMD
   libraries and to define a fine-grained API for a library that ships as one
   big script. For example, the ActionScript class ext.Panel which represents
   Ext JS's Ext.Panel would be annotated as [Native(amd="ext-js/ext-all",
   global="Ext.Panel")] (notation: "native!Ext.Panel@ext-js/ext-all"), and
   Ext.form.TextField  would be defined as class ext.form.TextField and
   annotated as [Native(amd="ext-js/ext-all", global="Ext.form.TextField")]
   (notation: "native!Ext.form.TextField@ext-js/ext-all"). The script is
   only loaded once, but the "native!" plugin retrieves different global
   objects.


What all [Native] classes have in common is that there is no "_" property,
i.e. no indirection to allow for static code in the compilation unit. If we
stumble across a native JavaScript library that needs lazy initialization,
we can still add another annotation like [Lazy(init="<init-method-name>")].

We really should optimize the special case you asked for, where a
non-aliased, non-namespaced global like "String" or "parseInt" is assigned
to a parameter via the "native!" plugin. While it does speed up access to
"String" and "parseInt" a tiny bit, it produces unnecessary code overhead.
I am going to change that in Jangaroo and in the as-js-runtime-prototype
accordingly.

Oh, I did it again, concise question, lengthy response, so here comes...

*tl;dr*: if a referenced class is [Native] and top-level, access it as a
global JavaScript object. If it is [Native] but not top-level, use
define(["native!<qualified-name>"], function(<short-name>) { ... }) similar
to non-native classes. There are some advanced usages ("amd", "global") we
can care about later. For reference, you can use the ActionScript standard
classes defined in branch "jangaroo-3" of the
jangaroo-runtime<https://github.com/CoreMedia/jangaroo-tools/tree/jangaroo-3/jangaroo/jangaroo-runtime/src/main/joo>
.

Greetings
-Frank-

Re: [FalconJx] AMD implementation

Posted by Michael Schmalle <ap...@teotigraphix.com>.
Frank,

Are you using any majic on your end to figure out what is  
native!String, native!parseInt etc?

Or are you just looping through imports? Just curious as how you are  
doing it before I implement something.

Mike


Quoting Frank Wienberg <fr...@jangaroo.net>:

>> Ok, I know git pretty well but, this makes no sense to me, what does "but
> pull" mean when I see no updated source code?
>
> Ooops, sorry, I pushed not to "master", but to a branch called "less-files".
> I just merged that branch into master, so you should now see the updated
> sources there.
>
> -Frank-
>

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


Re: [FalconJx] AMD implementation

Posted by Michael Schmalle <ap...@teotigraphix.com>.
Right On!

Now were in business. I was thinking to myself, wow this Frank guy is  
pretty flaky... ;-) Just kidding!

Mike

Quoting Frank Wienberg <fr...@jangaroo.net>:

>> Ok, I know git pretty well but, this makes no sense to me, what does "but
> pull" mean when I see no updated source code?
>
> Ooops, sorry, I pushed not to "master", but to a branch called "less-files".
> I just merged that branch into master, so you should now see the updated
> sources there.
>
> -Frank-
>

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


Re: [FalconJx] AMD implementation

Posted by Frank Wienberg <fr...@jangaroo.net>.
> Ok, I know git pretty well but, this makes no sense to me, what does "but
pull" mean when I see no updated source code?

Ooops, sorry, I pushed not to "master", but to a branch called "less-files".
I just merged that branch into master, so you should now see the updated
sources there.

-Frank-

Re: [FalconJx] AMD implementation

Posted by Michael Schmalle <ap...@teotigraphix.com>.
Quoting Frank Wienberg <fr...@jangaroo.net>:

> Okay, I just pushed to the as-js-runtime-prototype repository (I just
> noticed I didn't update the Github pages yet, so please do not use the
> online version but pull).


Ok, I know git pretty well but, this makes no sense to me, what does  
"but pull" mean when I see no updated source code?

I mainly understand what you have written below, will use it for reference.

Also, I did look at AS3.js yesterday so I understand what you are  
doing with that.

Mike


> All JavaScript files are updated to the latest and greatest code layout.
> Because now I know you'll notice every detail, anyway, I rather tell you in
> advance there are still some minor differences between the Wiki page and
> the example code:
>
>    - To get the code to define a class more concise (avoid having to
>    write/generate Object.defineProperties(...) over and over), I introduced
>    utility functions in the AS3 library. They don't do any great magic, after
>    all, AS3.js is less than 200 lines of code.
>       - AS3.compilationUnit($exports, function($primaryDeclaration){ ... })
>       -- helps defining a compilation unit with "lazy static code
> execution", as
>       discussed on the Wiki page. You have to hand in the $exports  
> object that
>       defines the module output, and compilationUnit() takes care of
> defining the
>       "_" property. The second argument is a function that contains  
> the actual
>       compilation unit code and receives a callback
>       function $primaryDeclaration() to use for handing the module  
> value (= the
>       primary declaration) back to compilationUnit(). Yes, sounds  
> complicated,
>       but believe me, especially when dealing with static cyclic references
>       between compilation unit, the order in which all this happens  
> is crucial
>       and this is the way it works best and leads to the smallest  
> client code.
>       - AS3.class_({ /* class declaration */ }) -- a helper to use a more
>       concise, declarative definition of the package, name, members,  
> and static
>       members of a class. For example, the standard case of a method
> or any other
>       read-only, non-enumerable, non-configurable property that, for
>       Object.defineProperty() has to be specified as { value: foo } can be
>       abbreviated to just foo.
>       - AS3.interface_({ /* interface declaration */ }) --
>       the analogous helper for an interface. As interfaces do not contain any
>       executable code, this is *not* wrapped inside an
> AS3.compilationUnit() (see
>       Wiki page).
>       - AS3 also provides the built-in operators "as" and "is" as well as
>       the helpers for casts ("cast") and method binding ("bind").
>    - In contrast to the Wiki page, private non-static methods are not yet
>    converted to private static methods and called via method.call(this,
>    arguments...). Instead, like private non-static fields, they are renamed
>    using $<inheritance-level> (e.g. in class A: secret$1). This makes code
>    generation a bit easier, as this pattern has to be implemented for private
>    non-static fields and bound methods, anyway. The conversion to  
> static leads
>    to better optimization results, so we should add it later.
>    - The Wiki page does not yet discuss super method calls. Class B
>    contains an example, method "foo": the super method is "backed up" using
>    the private-name-pattern, here "foo$2", by assigning "super$.foo", so in
>    "foo", "super.foo(x + 2)" is translated to "this.foo$2(x + 2)". Like
>    private non-static methods, this could be optimized to a local variable
>    "var super$foo = super$.foo" and the translation "super$.foo.call(this, x
>    +2)" later.
>    - I completely left out the commented ActionScript source line numbers
>    in the JavaScript code for now. You got the idea; if you feel like it, you
>    can of course add them in.
>
> Well, this is all that comes to my mind now. If you find more unclear
> aspects (either on the Wiki page or in the code), please let me know and
> I'll do my best to resolve them.
> If there is anything that is not straight-forward to generate with
> FalconJx, also please let me know and we'll surely find a simpler way to
> have a "spike" solution soon!
>
> Greetings
> -Frank-
>

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


Re: [FalconJx] AMD implementation

Posted by Frank Wienberg <fr...@jangaroo.net>.
Okay, I just pushed to the as-js-runtime-prototype repository (I just
noticed I didn't update the Github pages yet, so please do not use the
online version but pull).
All JavaScript files are updated to the latest and greatest code layout.
Because now I know you'll notice every detail, anyway, I rather tell you in
advance there are still some minor differences between the Wiki page and
the example code:

   - To get the code to define a class more concise (avoid having to
   write/generate Object.defineProperties(...) over and over), I introduced
   utility functions in the AS3 library. They don't do any great magic, after
   all, AS3.js is less than 200 lines of code.
      - AS3.compilationUnit($exports, function($primaryDeclaration){ ... })
      -- helps defining a compilation unit with "lazy static code
execution", as
      discussed on the Wiki page. You have to hand in the $exports object that
      defines the module output, and compilationUnit() takes care of
defining the
      "_" property. The second argument is a function that contains the actual
      compilation unit code and receives a callback
      function $primaryDeclaration() to use for handing the module value (= the
      primary declaration) back to compilationUnit(). Yes, sounds complicated,
      but believe me, especially when dealing with static cyclic references
      between compilation unit, the order in which all this happens is crucial
      and this is the way it works best and leads to the smallest client code.
      - AS3.class_({ /* class declaration */ }) -- a helper to use a more
      concise, declarative definition of the package, name, members, and static
      members of a class. For example, the standard case of a method
or any other
      read-only, non-enumerable, non-configurable property that, for
      Object.defineProperty() has to be specified as { value: foo } can be
      abbreviated to just foo.
      - AS3.interface_({ /* interface declaration */ }) --
      the analogous helper for an interface. As interfaces do not contain any
      executable code, this is *not* wrapped inside an
AS3.compilationUnit() (see
      Wiki page).
      - AS3 also provides the built-in operators "as" and "is" as well as
      the helpers for casts ("cast") and method binding ("bind").
   - In contrast to the Wiki page, private non-static methods are not yet
   converted to private static methods and called via method.call(this,
   arguments...). Instead, like private non-static fields, they are renamed
   using $<inheritance-level> (e.g. in class A: secret$1). This makes code
   generation a bit easier, as this pattern has to be implemented for private
   non-static fields and bound methods, anyway. The conversion to static leads
   to better optimization results, so we should add it later.
   - The Wiki page does not yet discuss super method calls. Class B
   contains an example, method "foo": the super method is "backed up" using
   the private-name-pattern, here "foo$2", by assigning "super$.foo", so in
   "foo", "super.foo(x + 2)" is translated to "this.foo$2(x + 2)". Like
   private non-static methods, this could be optimized to a local variable
   "var super$foo = super$.foo" and the translation "super$.foo.call(this, x
   +2)" later.
   - I completely left out the commented ActionScript source line numbers
   in the JavaScript code for now. You got the idea; if you feel like it, you
   can of course add them in.

Well, this is all that comes to my mind now. If you find more unclear
aspects (either on the Wiki page or in the code), please let me know and
I'll do my best to resolve them.
If there is anything that is not straight-forward to generate with
FalconJx, also please let me know and we'll surely find a simpler way to
have a "spike" solution soon!

Greetings
-Frank-

Re: [FalconJx] AMD implementation

Posted by Frank Wienberg <fr...@jangaroo.net>.
Almost there... hold on...


On Mon, Feb 4, 2013 at 6:37 PM, Michael Schmalle <ap...@teotigraphix.com>wrote:

> Hmm..
>
> Now that I looked back at the wiki you are using Object.defineProperty()
> but you don't use that in your charts code. You wrapped it with AS3.class_
> correct? Is that what you plan on using?
>
> Am I missing something here?
>
> I think I'm going to hold off until you have the current production
> correct in the github repository.
>
>
> Mike
>
>
> Quoting Michael Schmalle <ap...@teotigraphix.com>:
>
>  Ok Frank,
>>
>> This is what I have so far;
>>
>> - How do you want to handle the parent directory such as "runtime" and
>> "classes"? Are those going to be hardcoded or dynamic? I know they need to
>> be in the paths, just asking before I implement it.
>>
>> - Does the two super lines need to be there if the class extends Object?
>>
>> I'm at the members defs now, do you see any glaring mistakes?
>>
>> ------------------------------**--
>> AS3
>>
>> package {
>> public class A {
>> }
>> }
>>
>> ------------------------------**--
>> JS
>>
>> define(["exports", "AS3"], function($exports, AS3) {
>>         "use strict"; AS3.class_($exports,
>>         function() {
>>                 var Super=Object._;
>>                 var super$=Super.prototype;
>>                 return {
>>                         class_: "A",
>>                         extends_: Super,
>>                         members: {
>>                                 constructor: A,
>>
>>                         };
>>                 };
>>         });
>> });
>>
>>
>>
>> Mike
>>
>>
>>
>> --
>> Michael Schmalle - Teoti Graphix, LLC
>> http://www.teotigraphix.com
>> http://blog.teotigraphix.com
>>
>>
>>
> --
> Michael Schmalle - Teoti Graphix, LLC
> http://www.teotigraphix.com
> http://blog.teotigraphix.com
>
>

Re: [FalconJx] AMD implementation

Posted by Michael Schmalle <ap...@teotigraphix.com>.
Hmm..

Now that I looked back at the wiki you are using  
Object.defineProperty() but you don't use that in your charts code.  
You wrapped it with AS3.class_ correct? Is that what you plan on using?

Am I missing something here?

I think I'm going to hold off until you have the current production  
correct in the github repository.

Mike


Quoting Michael Schmalle <ap...@teotigraphix.com>:

> Ok Frank,
>
> This is what I have so far;
>
> - How do you want to handle the parent directory such as "runtime"  
> and "classes"? Are those going to be hardcoded or dynamic? I know  
> they need to be in the paths, just asking before I implement it.
>
> - Does the two super lines need to be there if the class extends Object?
>
> I'm at the members defs now, do you see any glaring mistakes?
>
> --------------------------------
> AS3
>
> package {
> public class A {
> }
> }
>
> --------------------------------
> JS
>
> define(["exports", "AS3"], function($exports, AS3) {
> 	"use strict"; AS3.class_($exports,
> 	function() {
> 		var Super=Object._;
> 		var super$=Super.prototype;
> 		return {
> 			class_: "A",
> 			extends_: Super,
> 			members: {
> 				constructor: A,
>
> 			};
> 		};
> 	});
> });
>
>
>
> Mike
>
>
>
> -- 
> Michael Schmalle - Teoti Graphix, LLC
> http://www.teotigraphix.com
> http://blog.teotigraphix.com
>
>

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


Re: [FalconJx] AMD implementation

Posted by Michael Schmalle <ap...@teotigraphix.com>.
Ok Frank,

This is what I have so far;

- How do you want to handle the parent directory such as "runtime" and  
"classes"? Are those going to be hardcoded or dynamic? I know they  
need to be in the paths, just asking before I implement it.

- Does the two super lines need to be there if the class extends Object?

I'm at the members defs now, do you see any glaring mistakes?

--------------------------------
AS3

package {
public class A {
}
}

--------------------------------
JS

define(["exports", "AS3"], function($exports, AS3) {
	"use strict"; AS3.class_($exports,
	function() {
		var Super=Object._;
		var super$=Super.prototype;
		return {
			class_: "A",
			extends_: Super,
			members: {
				constructor: A,

			};
		};
	});
});



Mike



-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


Re: [FalconJx] AMD implementation

Posted by Frank Wienberg <fr...@jangaroo.net>.
On Mon, Feb 4, 2013 at 3:21 PM, Michael Schmalle <ap...@teotigraphix.com>wrote:

> Oh yeah,
>
> As far as the "AS3" output you have in the graph example, that will not be
> possible with the current incarnation with Falcon. Unfortunately, the the
> parser does not keep the whitespace tokens or really any token information
> at all.
>

Well that's fine and not necessary for the proposed solution. As said
above, I think if we keep the original line numbers as comments and later
produce JavaScript source maps, we're really good. That Jangaroo produces
such output is nice, but seeing JavaScript source maps coming up probably a
heritage no longer needed for a new compiler.


>
> When a parser node is created the line and column numbers are saved from
> the token but the token is discarded and there is no real way I can update
> the parser to keep the original code. I mentioned this to Gordon a while
> ago and he did say that eventually he wanted to have Falcon be able to
> saved the tokens and white space tokens.
>
> I did have a radical thought that there could be a two pass parse with the
> tokenizer that would save the tokens into a map with location and some type
> of logic within the traverse could extract the correct tokens in between
> parser nodes using the line and column information. But this is not at all
> a priority for me but  would like to experiment sometime, maybe that is
> something you could try someday when you understand the parser abit more! :)
>

Sure, but I honestly agree that this is not a priority right now. I'd
rather contribute source maps support (later)!

-Frank-

Re: [FalconJx] AMD implementation

Posted by Michael Schmalle <ap...@teotigraphix.com>.
Oh yeah,

As far as the "AS3" output you have in the graph example, that will  
not be possible with the current incarnation with Falcon.  
Unfortunately, the the parser does not keep the whitespace tokens or  
really any token information at all.

When a parser node is created the line and column numbers are saved  
from the token but the token is discarded and there is no real way I  
can update the parser to keep the original code. I mentioned this to  
Gordon a while ago and he did say that eventually he wanted to have  
Falcon be able to saved the tokens and white space tokens.

I did have a radical thought that there could be a two pass parse with  
the tokenizer that would save the tokens into a map with location and  
some type of logic within the traverse could extract the correct  
tokens in between parser nodes using the line and column information.  
But this is not at all a priority for me but  would like to experiment  
sometime, maybe that is something you could try someday when you  
understand the parser abit more! :)

Mike

Quoting Frank Wienberg <fr...@jangaroo.net>:

> Hi Mike,
>
> great to hear you are well again and have some time to spend on the AMD
> approach!
>
>
> On Mon, Feb 4, 2013 at 12:56 PM, Michael Schmalle
> <ap...@teotigraphix.com>wrote:
>
>> Frank,
>>
>> I am starting on this and you have confused me starting off. The wiki
>> entry under the header of "Implementation Solution" does NOT look at all
>> the same as your A.js production in the 'as-js-runtime-prototype' source
>> code.
>>
>> What am I missing? Which is the correct way you want this output. I
>> thought you put the GIT repo up so I could see an implementation using
>> classes and interfaces together.
>>
>
> I set up the as-js-runtime-prototype first, before I started implementing
> this solution in the Jangaroo compiler. As always, when I implement (even
> my own) specifications, I find flaws and missing aspects or things you
> could do more cleverly.
> So *after* implementing the AMD approach with Jangaroo 3, I wrote down the
> final design on the Wiki page. I tried to include sufficient concrete code
> examples, but I can totally see that an updated and Wiki-page-consistent
> as-js-runtime-prototype would help, too.
> Please stand by for the latest code, and please for the time being, use the
> Wiki page as reference.
>
> Sorry for the confusion!
>
>
>
>> I will be honest, when we were talking about line numbers, I thought you
>>> were talking about MATCHING AS Exactly but, in your example you are just
>>> referencing them on the expression statements correct?
>>>
>>
> Yes, the source line number references in the generated code are a way to
> get around some indirections Jangaroo needs to get each line of generated
> code into exactly the same line as the source code. This is the difference
> between the solution I implemented for Jangaroo and the solution I propose
> for FalconJx. If you take Jangaroo 3 compilation results like the ones from
> the Open Flash Chart
> demo<http://jangaron.net/ofc5/data-files/joo.html#joo.debug> (for
> example charts.Area) and "inline" all member functions declared in the
> upper part into the "Jangaroo part" at the end of the file, you'd end up
> with my FalconJx proposition. What you save is to give all method functions
> a name, which could clash with other identifiers.
>
> I guess that's how I am gonna re-create the as-js-runtime-prototype
> JavaScript code: Compile the original AS3 sources with Jangaroo 3 and
> inline the member functions and initializers.
>
> If you need more / other examples of how the JS output of some AS input
> should look like, I can thus create it for you in no time. You could even
> do that yourself (if you prefer), by checking out the "jangaroo-3" branch
> of jangaroo-tools <https://github.com/CoreMedia/jangaroo-tools/> and
> building it via Maven. For the compiler integration tests, there are *.as
> files that are automatically compiled.
>
> If you have any more questions, I am here, listening!
>
> Greetings,
> -Frank-
>

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


Re: [FalconJx] AMD implementation

Posted by Frank Wienberg <fr...@jangaroo.net>.
Hi Mike,

great to hear you are well again and have some time to spend on the AMD
approach!


On Mon, Feb 4, 2013 at 12:56 PM, Michael Schmalle
<ap...@teotigraphix.com>wrote:

> Frank,
>
> I am starting on this and you have confused me starting off. The wiki
> entry under the header of "Implementation Solution" does NOT look at all
> the same as your A.js production in the 'as-js-runtime-prototype' source
> code.
>
> What am I missing? Which is the correct way you want this output. I
> thought you put the GIT repo up so I could see an implementation using
> classes and interfaces together.
>

I set up the as-js-runtime-prototype first, before I started implementing
this solution in the Jangaroo compiler. As always, when I implement (even
my own) specifications, I find flaws and missing aspects or things you
could do more cleverly.
So *after* implementing the AMD approach with Jangaroo 3, I wrote down the
final design on the Wiki page. I tried to include sufficient concrete code
examples, but I can totally see that an updated and Wiki-page-consistent
as-js-runtime-prototype would help, too.
Please stand by for the latest code, and please for the time being, use the
Wiki page as reference.

Sorry for the confusion!



> I will be honest, when we were talking about line numbers, I thought you
>> were talking about MATCHING AS Exactly but, in your example you are just
>> referencing them on the expression statements correct?
>>
>
Yes, the source line number references in the generated code are a way to
get around some indirections Jangaroo needs to get each line of generated
code into exactly the same line as the source code. This is the difference
between the solution I implemented for Jangaroo and the solution I propose
for FalconJx. If you take Jangaroo 3 compilation results like the ones from
the Open Flash Chart
demo<http://jangaron.net/ofc5/data-files/joo.html#joo.debug> (for
example charts.Area) and "inline" all member functions declared in the
upper part into the "Jangaroo part" at the end of the file, you'd end up
with my FalconJx proposition. What you save is to give all method functions
a name, which could clash with other identifiers.

I guess that's how I am gonna re-create the as-js-runtime-prototype
JavaScript code: Compile the original AS3 sources with Jangaroo 3 and
inline the member functions and initializers.

If you need more / other examples of how the JS output of some AS input
should look like, I can thus create it for you in no time. You could even
do that yourself (if you prefer), by checking out the "jangaroo-3" branch
of jangaroo-tools <https://github.com/CoreMedia/jangaroo-tools/> and
building it via Maven. For the compiler integration tests, there are *.as
files that are automatically compiled.

If you have any more questions, I am here, listening!

Greetings,
-Frank-

Re: [FalconJx] AMD implementation

Posted by Michael Schmalle <ap...@teotigraphix.com>.
Frank,

I am starting on this and you have confused me starting off. The wiki  
entry under the header of "Implementation Solution" does NOT look at  
all the same as your A.js production in the 'as-js-runtime-prototype'  
source code.

What am I missing? Which is the correct way you want this output. I  
thought you put the GIT repo up so I could see an implementation using  
classes and interfaces together.

Let me know,

Mike


Quoting Michael Schmalle <ap...@teotigraphix.com>:

> Actually, I'm very good at ignoring things until I need them.
>
> 'as-js-runtime-prototype' is forked and in the oven, this is all I  
> need for now and the WIKI page that you have written.
>
> Thanks for your thoroughness on this Frank, it's going to make it a  
> lot easier.
>
> I will be honest, when we were talking about line numbers, I thought  
> you were talking about MATCHING AS Exactly but, in your example you  
> are just referencing them on the expression statements correct?
>
> Mike
>
>
> Quoting Michael Schmalle <ap...@teotigraphix.com>:
>
>>
>> Hey Frank,
>>
>> Just wanted you to know that I am feeling a lot better and going to  
>> spend the week on AMD and your approach. While I was sick last week  
>> I has some time to get into a bit of JS.
>>
>> I'm looking forward to getting this working so we can see how it  
>> works, mainly so "I" can understand your approach. :)
>>
>> There has been SO MUCH volume about this stuff, can you kindly  
>> paste in a couple references you had posted in the last 100 emails  
>> for me to check out now that my mind is working again. ;-)
>>
>> Thanks,
>> Mike
>>
>> -- 
>> Michael Schmalle - Teoti Graphix, LLC
>> http://www.teotigraphix.com
>> http://blog.teotigraphix.com
>>
>>
>
> -- 
> Michael Schmalle - Teoti Graphix, LLC
> http://www.teotigraphix.com
> http://blog.teotigraphix.com
>
>

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com


Re: [FalconJx] AMD implementation

Posted by Michael Schmalle <ap...@teotigraphix.com>.
Actually, I'm very good at ignoring things until I need them.

'as-js-runtime-prototype' is forked and in the oven, this is all I  
need for now and the WIKI page that you have written.

Thanks for your thoroughness on this Frank, it's going to make it a  
lot easier.

I will be honest, when we were talking about line numbers, I thought  
you were talking about MATCHING AS Exactly but, in your example you  
are just referencing them on the expression statements correct?

Mike


Quoting Michael Schmalle <ap...@teotigraphix.com>:

>
> Hey Frank,
>
> Just wanted you to know that I am feeling a lot better and going to  
> spend the week on AMD and your approach. While I was sick last week  
> I has some time to get into a bit of JS.
>
> I'm looking forward to getting this working so we can see how it  
> works, mainly so "I" can understand your approach. :)
>
> There has been SO MUCH volume about this stuff, can you kindly paste  
> in a couple references you had posted in the last 100 emails for me  
> to check out now that my mind is working again. ;-)
>
> Thanks,
> Mike
>
> -- 
> Michael Schmalle - Teoti Graphix, LLC
> http://www.teotigraphix.com
> http://blog.teotigraphix.com
>
>

-- 
Michael Schmalle - Teoti Graphix, LLC
http://www.teotigraphix.com
http://blog.teotigraphix.com