Release Notes

Dear Community,

On behalf of the Haxe Foundation, we are proud to announce the official release of the Haxe 4.0.0-rc.4! It is available along with the changelog at https://haxe.org/download.

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.

See the changelog below for further details. Please report any issues here: https://github.com/HaxeFoundation/haxe/issues

Thank you very much for your help!

Change Log

2019-09-04: 4.0.0-rc.4

Standard Library:

  • all : added Map.clear (#8681)
  • all : improved Date API (#8508)
  • all : added JSON-RPC protocol types to haxe.display package (#8610)
  • all : added default timeout to HTTP sockets (#8646)
  • macro : added Context.info (#8478)
  • macro : added Context.getMessages and Context.filterMessages (#8471)
  • macro : added function kind to EFunction (#8653)
  • macro : added string literal kind to CString (#8668)
  • flash : added flash.AnyType (#8549)

General improvements and optimizations:

  • all : allowed enum constructors without arguments as static inline var (#8187)
  • all : improved handling of default values when inlining (#8397)
  • all : made various improvements to the display API as usual
  • all : detect invalid #tokens in inactive code (#7108)
  • all : allowed function types in @:generic (#3697)
  • all : improved --help-defines and --help-metas
  • all : improved overall file finding (#8202)
  • all : improved server reaction to added and removed files (#8451)
  • all : improved memory handling of the compilation server (8727)
  • all : improved handling of native libraries on the compilation server (#8629)
  • all : support partial completion results (#8642)
  • all : improved support of hovering over inactive conditional compilation blocks
  • all : improved completion support in .platform.hx files
  • all : support hovering conditional compilation identifiers
  • all : improved and unified identifier checks for names, fields and types (#8708)
  • all : improved --times performance (#8733)
  • all : remove some redundant cast expressions (#8725)
  • all : added --server-connect (#8730)
  • lua : improved -D lua-vanilla
  • js : improved HTML externs

Bugfixes :

  • all : fixed various position and replace ranges in the display API
  • all : fixed compiler hang related to @:arrayAccess (#5525)
  • all : fixed bug regarding abstract this modification in inline methods (#8454)
  • all : fixed from Dynamic on abstracts (#8425)
  • all : fixed overeager recursive inline check (#8489)
  • all : fixed the pattern matcher allowing inexhaustive switches in value-places (#8277)
  • all : fixed pattern matcher allowing invalid abstract unification (#8579)
  • all : fixed local variable type information being lost on the compilation server (#8511)
  • all : don't generate return expressions in Void lambda functions (#6503)
  • all : fixed unification of recursive typedefs again (#8523)
  • all : fixed various hangs related to abstracts (#8588)
  • all : fixed various GADT-related problems (#7672)
  • all : fixed macro @:from methods allowing any return type (#8463)
  • macro : fixed Sys.programPath assertion failure (#8466)
  • js : fixed typed array APIs (#8422)
  • java : fixed Std.is on non-reference and unrelated types (#5168)
  • java/macro : fixed null-pointer exception in Reflect.getProperty (#4934)
  • java/jvm : fix switch on null string (#4481)
  • jvm : fixed boxed vs. unboxed comparison (#8577)
  • jvm : generate toplevel types to haxe.root like genjava does (#8590)
  • jvm : improved 32bit support (#8601)
  • cs/python : fixed various issues with code generation
  • cs : fixed NativeArray casting (#3949)