Downloading Haxe 3.2.0

If your download does not begin automatically please click here.

Support the Haxe Foundation

Thank you for downloading Haxe. If you'd like to support the Haxe Foundation please consider donating to keep our open source efforts thriving.

Monthly Donation Amount

Get Technical Help

Get support directly from the Haxe team. The Haxe Foundation offers several support tiers to help with your organization's technical challenges.

Explore our support plans

What next?

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

Getting Started With Haxe

Now that you've downloaded Haxe, you can get started with a specific platform. Click on a logo to learn how to set up the development environment and how to proceed from there:

For getting started with Haxe, take a look at our introduction, read through the Haxe Manual or look at these use cases for Haxe, including tutorials and popular libraries:

API Documentation: Download the API documentation for this version as a ZIP file.