Release Notes

Dear community,

On behalf of the Haxe Foundation, I am proud to announce that Haxe 3.2.0 is now officially released! It is available at https://haxe.org/download/version/3.2.0.

We spent a lot of time ironing out the bugs that were found in the release candidate. The following information is from that initial release.

This release introduces the new Python target which was developed by Heinz Hölzer and Dan Korostelev. As with any new target it should be considered to be in beta stage.

Another new feature is the static analyzer which can be activated by compiling with -D analyzer. It applies various optimizations such as constant propagation and expression-level DCE which improves the quality of the generated code on targets such as JavaScript. We plan to make this a default setting in the future once the implementation has stabilized.

There are quite a few other new features, improvements and bugfixes, so make sure to check out the changelog. We addressed many issues that are present in Haxe 3.1.3!

Haxe 3.2.0 has a few breaking changes. While we try to avoid these in general, there are situations where that's not feasible. We have prepared an overview of the breaking changes at https://github.com/HaxeFoundation/haxe/wiki/Breaking-changes-in-Haxe-3.2.0.

Thank you for your support

Change Log

New features:

  • all : added @:noPrivateAccess to re-enable access restrictions within @:privateAccess
  • cpp : some support for @:nativeGen metadata

Bugfixes:

  • all : fixed detection of @:generic classes with constructor constraints
  • all : fixed variable initialization check issue in loop condition
  • all : fixed pattern matching on @:enum abstracts via field access (#4084)
  • all : fixed missing implicit casts in Map literals (#4100)
  • all : fixed various minor issues in haxe.xml.Parser
  • all : fixed class path issue when HAXE_STD_PATH is set (#4163)
  • js : fixed DCE issue related to printing enums (#4197)
  • js : fixed various issues with the new Bytes implementation
  • php : fixed EOF handling in FileInput.readByte (#4082)
  • cs/java : fixed Math.fround implementation (#4177)
  • cs/java : fixed some cases of Std.parseInt failing (#4132)
  • cpp : fixed compilation without -main (#4199)

General improvements and optimizations:

  • all : --macro keep no longer causes types to be included for compilation
  • php : support interpolation in php code
  • js : added variable number of arguments support in js.html.* classes
  • js : refined new HTML externs

Macro features and changes:

  • macro : [breaking] synced FClosure and FInstance with the compiler updates