All in all it was time consuming, but relatively painless. Of the points above though, I can't see the point of removing the "," from class defn lines
Everything now runs in haxe3 and at the moment I can compile in either 2 or 3 with judicious use of #if haxe3 throughout my code.
Regards
John
Simon
--
To post to this group haxe...@googlegroups.com
http://groups.google.com/group/haxelang?hl=en
--- You received this message because you are subscribed to the Google Groups "Haxe" group.
For more options, visit https://groups.google.com/groups/opt_out.
My experience is really similar to John's - lots of time finding all the small syntax changes, and putting Map/StringMap in everywhere I used to use Hash, that all took a while, but was relatively straight forward. I didn't end up using the hx2compat library, I thought it would be easier to just bite the bullet and change everything now.
I think the biggest thing was just how many libraries I depend on, and how many needed patching / updating. And once you've fixed them, packaging them, installing them, setting up pull requests or packaging for haxelib etc. It's been pretty time consuming. If I could have any input on the timing of the final release I'd say if you can hold off for several more weeks for all of the haxelibs to catch up, that would be awfully kind and help people have confidence in the Haxe3 release.
Libraries and code changes aside, the compiler itself and the standard library are pretty awesome. Lots of new features to play with, LOVING having 'string $interpolation'. The simplified APIs
Jason
Hi simon,
After migrating mlib, munit, mcover, mconsole and mockatoo, I found the process mostly painless (and I was impressed with the quality of the release in general). The first three took less than an hour in total to get running. Mockatoo took the longest due to the number of subtle macro changes (which was to be expected with so many changes to the language)
I ended up with a list of about 10 simple search and replaces that resolved most things (pro tip: replace 'IntHash<' with 'Map<Int,' before replacing 'IntHash' with 'Map' and similar for Hash to save a bunch of typing issues).
The implements/extends syntax change was easy enough to resolve, but makes code very messy when handling both haxe2 and 3 syntax through #if #else statements.
Most painful:- locating the cause of macro issues from vague 'Defined in this class' compiler errors. Argh!!!!- non-explicitly typed dynamic arrays '[1,"foo",true]- library dependencies (even between our libs mentioned above was a hassle!)- occasional type issues due to reversed order of imports (when two classes with same name have changed priority)
My biggest gripe is the inability to identify which haxelibs are haxe 3 compliant. It makes estimating/evaluating the feasibility of migrating actual projects incredibly time consuming at this stage. If only we had better recommended guidelines around library versioning, and integration of hx-semver (https://github.com/dpeek/hx-semver) to list libs based on haxe version :)
- changing Hash<X> to Map<String,X> and associated new Hash calls to new Map - wow, I use Hash a LOT!!!
--
nme rebuild tools,clean,windows
the font assets does not throw any error in flash. The windows exe still hanging (freeze). :-/static var nameList : Array<String> = ["Joe", "John", "Jane"];
static function Test(name:String)
{ switch (name)
{
case nameList[0]: // do something
case nameList[1]: // do something
default:
}
}
-D no-pattern-matching
" to the compile script had no observable effect.switch (name)
{
case n if(n == nameList[0]): // do something
case n if(n == nameList[1]): // do something
default:
}