Our focus was on small bugfixes and internal stability. In particular, we made an effort to improve the integrity and memory usage of the compilation server. There were also a lot of changes to make IDE support even better.
There are still some issues to sort out before we declare Haxe to be ready for 4.0. We are getting closer, though! Your help in testing this release is, as always, greatly appreciated.
It seems Haxe4 kills Unifill. The workaround for unicode support.
/HaxeToolkit/haxe/lib/unifill/0,4,1/unifill/Unifill.hx:21: characters 41-50 : Warning : haxe.Utf8 is deprecated. Use UnicodeString instead.
Please ensure you do not kill established workarounds/haxelibs with updates.
(slight background info: I need to publish an app asap. I had to update from openfl legacy because it does not support the new android 64bit requirements. However some recent lime/openfl releases contain a random opengl crash bug on android. This seems fixed in the latest versions but it requires Haxe4rc4. And that in turn kills the AlivePDF and Unifill libs. The past month I’ve been migrating/rewriting code and it is all a highly frustrating process, especially because of looming deadlines. No-ones fault in particular. But it really needs a much more solid foundation. I’m spending way too much time dealing with issues than creating the actual things I want to create. Also there does not seem to be an upgrade guide document or something… /rant)
This is not a compilation error but just a warning which doesn’t prevent using haxe.Utf8.
Also compiler team cannot force library maintainers neither to keep backward compatibility nor to not drop support for the latest stable Haxe version when the next one is not yet released
I agree with you on an upgrade guide, but as I said Haxe 4 is not released yet. In the meantime we’re collecting breaking changes here: Breaking changes in Haxe 4.0.0 · HaxeFoundation/haxe Wiki · GitHub it’s not always up to date with the bleeding edge of Haxe language development because our manpower is pretty limited.
I know it’s just a warning, but I used to see all Unicode characters in my app, and now I’m seeing a lot of broken characters. So despite it just being a bunch of warnings, unicode support with unifill no longer works. In haxe 3.4.7 it does.
I would indeed rather not upgrade to haxe4, but openfl and lime bugs & fixes are forcing me to.
I’m not really expecting you to verify everything, but perhaps it’s a good idea to introduce a mandatory test case/test code with each haxelib or something. So you could set up automated test cases and get an overview of everything that breaks.
Currently it feels very similar with the linux os for me. It can work great, but only under the right precarious circumstances, when all the planets are aligned etc…
Thanks for the tip. Unfortunately that causes a number of errors in HXCPP:
/HaxeToolkit/haxe/lib/hxcpp/4,0,52/src/hx/libs/regexp/RegExp.cpp:56: error: undefined reference to ‘pcre16_fullinfo’
But it’s just moving the issue. That’s why I’d like some kind of automated testing. Or perhaps making a clear divide in haxelibs, subdivide them based on haxe versions or something, dunno…
It’s always interesting to me to see the pull between the two conflicting desires to:
keep development nimble, with a relatively quick deprecation cycle, vs.
keep backward compatibility
and to see where different projects land on that continuum.
I do not envy project leadership on this. Leave a flaw alone and folks will keep asking for it to be fixed (well, and, if left alone, you’ve still got the flaw). Fix the flaw and other folks will be unhappy with the resulting code breakage.
(+1 on deprecation warnings and upgrade guides!)
Thank you to the core team for navigating these waters in the pursuit of making Haxe better every release!
I wanted to point out that it seems to have been unintentional for lime/openfl to force people to haxe 4. The issue is being worked on.
So the choice just went from:
The current latest stable haxe+lime+openfl will not build therefore you must upgrade and lose functionality.
To:
The current latest stable haxe+lime+openfl has some bugs but you can choose to upgrade and trade them for some loss of functionality/other bugs.
I think the latter is acceptable because the former isn’t much of a choice.