Recent Releases

4.3.405 Mar 2024 06:45 minor bugfix: General improvements: All : allow @:using with Class and Enum. Display : expose list of metadata/defines : All : typedef vs. GADT. All : don't double-throw exceptions All : some abstract inlining failures All : JsonPrinter empty parent class All : dce: clean up operator handling All : analyzer: deal with unreachable block in binops All : analyzer: don't recursively check enum values when const propagating All : analyzer: check for inlined purity meta Display : errors from parser missing in diagnostics Display : display services with static extension Display : display services with safe navigation hl : hlopt rework try-catch control flow hl/c : reserved keywords. Deprecation / future version handling: All : don't infer string on concat, when using -D haxe-next. All : handle optional arguments with bind, when using -D haxe-next Macro : build order vs inheritance, when using -D haxe-next Macro : deprecate some API from haxe.macro.Compiler Java/jvm : warn about --java... -D jvm vs --jvm.
4.3.310 Jan 2024 19:57 minor bugfix: General improvements: All : improve extra field error range. All : better error messages for --connect hl : improve error message when hl_version is missing hl/c : compiler now adds hlc define when targeting hl/c. Macro : update macro API restriction warnings when using -D haxe-next : All : handle non existing files for positions in pretty errors. All : metadata support for local static vars All : catch trailing invalid syntax in string interpolation Eval : Array.resize retaining values Eval/hl : catching haxe.ValueException hl : make genhl respect Meta.NoExpr hl : don't add bindings for non existing methods hl/c : add missing I64 mod support hl/c : rework reserved keywords hl/c : Int64 unsigned right shift overflow. Java/cs: stack overflow from closures constraints js : DOMElement insertAdjacentElement should not be pure. Macro : catch trailing invalid syntax in Context.parseInlineString Macro : TDAbstract without flags in haxe.macro.Printer
4.3.007 Apr 2023 03:15 major bugfix: New features: All : support defaults for type parameters. All : support @:op(a()) on abstracts All : support abstract keyword to reference the abstract All : support static var at expression-level All : support ?. safe navigation operator All : added ?? null coalescing operator All : add -w compiler option to configure warnings All : added new error reporting modes All : support custom metadata and defines General improvements: All : made various optimizations in the analyzer. All : made various improvements to diagnostics All : made various improvements to null-safety All : optimize `.bind` for instance methods All : improved various parser error messages All : improved compilation server performance All : improved code generation for try/catch All : infer property accessor type from the property All : improved inference of local functions typed against abstracts All : improved completion on module-level fields All : improved handling of native libraries on the compilation server All : improved performance when generating locals All : made Std.parseInt more consistent across targets All : infer null literals as Null All : made field access errors more consistent All : consistently allow trailing commas All : migrated all relevant targets to PCRE2 All : made analyzer reconstruct do-while loops All : improved restrictions on init macros All : improved positions of @:structInit fields Macro : support map literals in Context.makeExpr Macro : added haxe.macro.Compiler.getConfiguration() Macro : added withImports and withOption to haxe.macro.Context Macro : added getMacroStack and onAfterInitMacros to haxe.macro.Context Macro : added haxe.macro.Context.makeMonomorph Eval : added dictionary mode to objects, increasing performance in some cases Eval : Sys.exit handling messing up the compilation server Eval : added -D eval-print-depth and -D eval-pretty-print Cpp : supported type parameters on extern classes Cpp : haxe.Int64 improvements
4.1.016 Oct 2020 03:15 major bugfix: New features: All : added tail recursion elimination. All : added unified exception handling All : allow `try catch(e) ` as a shortcut for `try catch(e:haxe.Exception) ` Eval : added SSL support Jvm : the JVM target is no longer considered experimental General improvements: All : implemented different display support approach. All : improved display services related to reference finding All : added go-to-implementation support All : made various improvements to diagnostics All : support completion for map keys All : improved parser robustness for incomplete syntax All : disallowed the combination of `@:overload` and inline All : improved renaming of local variables All : better inlining of for-loops with anonymous iterators All : remove redundant final `return` in `Void` functions All : remove redundant `continue` in loops All : improved various compilation errors reporting All : allowed `(get,default)` property access combination All : allowed ++ and -- on member properties of abstracts js : use abstract type name for generating its implementation class js : improve haxe.ds.StringMap implementation js : improve interface checking and make it more minifier-friendly js : generate `let` instead of `var` when compiler with `-D js-es=6` js : optimize `.bind` on constructors. Jvm : rewrote function handling to me much faster and more portable Jvm : generate interfaces for typedefs for improved performance Jvm : added support for haxe.MainLoop Jvm : support `@:jvm.synthetic` and use it to hide some generated fields Jvm : respect `@:private` and `@:protected` Lua : improve error handling behavior when throwing objects/instances Lua : optimize `haxe.iterators.StringIterator` Php : optimize `Std.isOfType` for String, Bool and Float Php : make Haxe Array implement native interfaces Iterator, IteratorAggregate, Countable cs : support `@:assemblyMeta` and `@:assemblyStrict`. Python : added `__contains__` and `__getitem__` implementations
4.0.0-preview.202 Nov 2017 08:07 major feature: New features: all : added final keyword (#6596) all : added new function type notation (#6645) General improvements and optimizations: all : replaced some occurrences of List with Array all : changed haxe.xml.Fast to an abstract all : improved optimization when comparing against `null` all : added support for `case var x` syntax and detect possible typos (#6608) php : changed `--php-prefix`, `--php-front` and `--php-lib` to `-D php-prefix=`, `-D php-front=` and `-D php-lib=` respectively Removals: all : moved haxe.unit to hx3compat all : moved haxe.web.Request to hx3compat php : dropped php5 support; minimum supported php version is 7.0 now Bugfixes: all : fixed issue with various functions not being displayed in macro context (#6000) all : fixed invalid static extension lookup on `super` (#3607) all : fixed typing error when constructing enums with abstracts over functions (#6609) all : fixed bug that skipped checking @:from typing in some cases (#6564) all : fixed Int64 parsing of negative numbers that end in a zero (#5493) all : fixed top-down inference when constructing enums (#6606) eval : fixed bug with equality handling eval : fixed issue with file creation not defaulting to binary eval : fixed invalid override detection (#6583) eval : fixed infinite recursion when printing arrays/vectors cs/java : fixed DCE bug that would lose toString method of thrown objects php/python : fixed some bit operators for Int32 (#5938) php : fixed accessing `static inline var` via reflection (#6630) php : fixed Math.min() and Math.max() for NAN on PHP 7.1.9 and 7.1.10 js : fixed js syntax error for `value.iterator--` (#6637) Standard Library: macro : added have.display.Position and PositionTools.toRange (#6599) all : moved List to haxe.ds (#6610)
4.0.0-preview.113 Sep 2017 02:45 major bugfix: Preview.1 New features: All : reworked macro interpreter. All : added support for arrow functions General improvements and optimizations: js : improved generation of `break` inside `switch` inside loops cs : improved generation of enum classes. Sys : the `database` parameter of `Mysql.connect` is now optional js : updated jQuery extern (js.jquery.*) for jQuery 1.12.4 / 3.2.1 support. Makefile : default Unix installation location (INSTALL_DIR) changed from /usr to /usr/local. Makefile : default Unix std location (INSTALL_STD_DIR) changed from (INSTALL_LIB_DIR)/std to (INSTALL_DIR)/share/haxe/std. Removals: All : removed --eval command line argument. Sys : SPOD (sys.db.Object, sys.db.Manager and friends) was moved into a separate library `record-macros` (https://github.com/HaxeFoundation/record-macros) js : js.JQuery and js.SWFObject were moved into hx3compat library (https://github.com/HaxeFoundation/hx3compat), it's recommended to use more modern js.jquery.JQuery and js.swfobject.SWFObject classes. All : moved haxe.web.Dispatch into hx3compat library (https://github.com/HaxeFoundation/hx3compat). : Php7: Reflect.field() for strings. Php7: `@:enum abstract` generation without `-dce full` Php7: using enum constructor with arguments as a call argument Php7: `null` property access Php7: setting values in a map stored in another map Php7: haxe.io.Input.readAll() with disabled analyzer optimizations Php/php7: accessing enum constructors on enum type stored to a variable Php/php7: "cannot implement previously implemented interface" Php: invoking functions stored in dynamic static vars Php: field access on `new MyClass()` expressions wrapped in a `cast` Standard Library: All : added `EReg.escape`. All : `BalancedTree implements `haxe.Constraints.IMap`
3.4.221 Mar 2017 03:25 minor bugfix: : Cpp : with @:native names being prewith :: Cpp : with return type handling Cpp : inaccurate line numbers that threw off deging Php7 : generation of ` 0 ` constructs
3.4.115 Mar 2017 12:05 minor bugfix: New features: Php7 : added source maps generation with `-D source_map` flag. : All : compilation server with two identical @:native paths on extern abstracts. All : invalid inling in a specific case All : various display related cpp : improved typing of some Function/Callable-related types hl : various and improvements. Php : FileSystem.stat() for directories on Windows Php/php7 : invalid result of Web.getPostData() Php7 : invalid access to length of string in some cases Php7 : infinite recursion on MysqlConnection.()
3.4.008 Feb 2017 01:15 major feature: General improvements and optimizations: Support completion for static extensions. Removed neko dependency for macros, use PCRE instead. Disabled analyzer optimizations by default, re-enable with -D analyzer-optimize PHP7: Generate native v instanceof MyType instead of Std.is(v, MyType) where possible for better performance, added @:phpNoConstructor meta for externs which do not have native php constructors and yet can be constructed, greatly reduced amount of generated tmp vars, Array performance improvements. HL: made various improvements Bugfixes: + fixed using picking up non-static abstract functions + fixed issue with side-effect detection when optimizing + fixed issue with zlib bindings causing zlib_deflate errors + Allow user-defined modules in php package + Dereference some of php.Syntax methods if required + fixed assigning a method of dynamic value to a variable + fixed missing initialization of dynamic methods in classes with empty constructors