On 23/02/2012 00:48, Nicolas Cannasse wrote:
Well, speaking of the niceties of haXe, we have
--dead-code-elimination now that will only include in the output the
methods/fields actually used by the application.
That is treating the symptom not the problem. The dead-code-elimination
(like unused protected functions) is a problem if you load subsystems at
runtime that adress other parts of the same Structure. Things like
Reflections become unreliable - tiny inconsistencies. I find it very
good that I can define a hard reference just to the methods I need.
Splitting them up in is a lot like splitting classes up in files -
theoretically you put them all in one put but there are good reasons for
this separation.
The idea of macros is that you cannot modify haXe syntax, but you can
enrich semantics, so you could have the following :
var b : String = "foo";
var a : Xml = XML("<{b}></{b}>");
I see - very powerful system I must say - even thought the result is not
a comfortable to read. These particular two lines of code look a lot
like magic if someone from another programming language (say
ActionScript) saw it the first time. But I can see where you are coming
from.
Yes, haXe also automatically create method closures, the same AS3
does. It also do it automatically for JS target for instance.
The part I was refering is when using "this" in a local function, such
as :
class Loader {
function load() {
myMC.addEventListener(Event.COMPLETE,function(e) {
this.onComplete();
});
}
function onComplete() {
}
}
in haXe case, "this" is always the object in which the local function
function has been declared, not the one on which the event listener is
added.
Did you see my example code? I am not sure how to name that particular
difference.
In ActionScript you can pass a method reference like this
addEventListener(Event.COMPLETE, this.onComplete);
And any caller of this anonymous function would be calling the this
where its coming from.
That depends on documentation tool, this is just a matter of XML
manipulation, no showstopper here either.
I see - then this would mean a bit of work.
Thanks, definitely doable with macros, since it allows you to write
custom compile time code generators directly in haXe, without
modifying the compiler itself.
Cool. Sounds good.
yours
Martin.