Skip to content

Releases: HaxeFoundation/haxe

4.0.0-preview.4

12 Jun 10:00
Compare
Choose a tag to compare
4.0.0-preview.4 Pre-release
Pre-release

2018-06-12: 4.0.0-preview.4

New features:

  • all : added JSON-RPC-based display protocol
  • all : allow enum abstract syntax instead of @:enum abstract (#4282)
  • all : allow extern on fields instead of @:extern
  • all : support signature completion on incomplete structures (#5767)
  • all : support auto-numbering and auto-stringification in enum abstracts (#7139)
  • all : support Type1 & Type2 intersection syntax for type parameter constraints and structures (#7127)

General improvements and optimizations:

  • all : reworked CLI usage/help output (#6862)
  • all : implemented for loop unrolling (#3784)
  • all : metadata can now use ., e.g. @:a.b. This is represented as a string (#3959)
  • all : [breaking] disallow static extensions on implicit this (#6036)
  • all : allow true and false expressions as type parameters (#6958)
  • all : improved display support in many areas
  • all : support override | completion
  • all : make display/references and display/toplevel actually work sometimes
  • all : allow var ?x and final ?x parsing in structures (#6947)
  • all : improved overall robustness of the parser in display mode
  • all : allow @:commutative on non-static abstract functions (#5599)
  • js : added externs for js.Date (#6855)
  • js : respect -D source-map flag to generate source maps in release builds
  • js : enums are now generated as objects instead of arrays (#6350)
  • eval : improved debugger, support conditional breakpoints

Removals:

  • all : moved haxe.remoting to hx3compat
  • js : moved js.XMLSocket to hx3compat
  • neko : moved neko.net to hx3compat
  • all : removed support for T:(A, B) constraint syntax

Bugfixes:

  • all : fixed various issues with diagnostics
  • all : fixed fields with default values for @:structInit classes (#5449)
  • all : fixed Null<T> inconsistency in if/ternary expressions (#6955)
  • all : fixed visibility check related to private constructors of sibling classes (#6957)
  • all : fixed @:generic naming (#6968)
  • all : fixed handling of type parameters in local functions (#6560)
  • all : fixed resolution order between untyped and type parameters (#7113)
  • all : fixed unification behavior in try/catch expressions (#7120)
  • all : fixed field type being lost for Int expressions on Float fields (#7132)
  • all : cleaned up inline handling (#7155)
  • display : fixed completion in packages starting with underscore (#5417)
  • php : fixed Reflect.callMethod with classes as first argument (#7106)
  • eval : fixed internal exception surfacing in some context calls (#7007)
  • eval : fixed Type.enumEq (#6710)
  • flash : fixed silently swallowing exceptions in getters/setters when invoked with Reflect methods (#5460, #6871)

Standard Library:

  • all : added resize to Array (#6869)
  • all : [breaking] removed return this from some haxe.Http methods (#6980)

4.0.0-preview.3

23 Feb 12:52
Compare
Choose a tag to compare
4.0.0-preview.3 Pre-release
Pre-release

2018-02-23: 4.0.0-preview.3

See full commit history at 4.0.0-preview.2...4.0.0-preview.3, notable changes below:

New features:

  • all : added new function type syntax ((a:Int, b:String)->Void) (#6645)
  • all : added column to StackItem.FilePos (#6665)
  • all : added -D warn-var-shadowing
  • all : added haxe.Log.formatOutput (#6738)
  • js : added js.Syntax class for generating unsupported JavaScript syntax in a type-safe analyzer-friendly way
  • js : added js.Map and js.Set and js.JsIterator extern definitions (ES6)
  • hl : added hl.Format.digest, use it for native Sha1/Md5

General improvements and optimizations:

  • all : made all non-warning/non-error compiler messages output to stdout (#4480)
  • all : make DCE keep constructor if any instance field is kept (#6690)
  • all : make final in structures use class notation
  • display : added this and super to toplevel completion (#6051)
  • php : implemented direct method comparison. No need to use Reflect.compareMethods()
  • php : added php.Syntax.code() instead of deprecated untyped __php__() (#6708)
  • php : added methods to php.Syntax for each php operator: ??, ?:, ** etc. (#6708)
  • python : add ssl support for http requests
  • python : improve Sys.print(ln) code generation (#6184)
  • js : generate faster code for x.iterator() calls (#6669)
  • js : rework exception handling, added js.Lib.getOriginalException (#6713)
  • js : generate value instanceof MyClass instead of Std.is(value, MyClass) (#6687)
  • js : use lazy getter for HaxeError.message instead of calling String(val) in the ctor (#6754)

Removals:

  • php : removed php.Syntax.binop() (#6708)

Deprecations:

  • php : deprecated support for untyped __php__, untyped __call__ etc. Use php.Syntax instead.

Bugfixes:

  • all : delay interface accessor generation properly (#6225, #6672)
  • all : fixed unbound variable error in anonymous functions (#6674)
  • all : fixed abstract @:to used when from is available in a specific case (#6751)
  • all : sys.Http: fix chunked encoding handling (#6763)
  • all : fix some invalid Json being accepted by haxe.format.JsonParser (#6734)
  • all : fixed haxe.format.JsonPrinter for instances of classes to make it produce consistent result across targets (#6801)
  • all : fixed autogenerated constructor for extending @:structInit classes (#6822, #6078)
  • js : fixed saving setter to tmp var before invocation (#6672)
  • lua : fix toString behavior in the case of -0 (#6652)
  • lua : properly bind field functions when passed as arguments (#6722)
  • php : don't fail on generating import aliases for classes with the similar names (#6680)
  • php : fixed Sys.environment() to also return variables set by Sys.putEnv()
  • php : fixed sys.net.Socket.bind() (#6693)
  • php : fixed appending "sqlite:" prefix to the names of files created by sys.db.Sqlite.open() (#6692)
  • php : made php.Lib.objectOfAssociativeArray() recursive (#6698)
  • php : fixed php error on parsing expressions like a == b == c (#6720)
  • php : fixed multiple file uploads in php.Web.parseMultiPart() (#4173)
  • php : fixed an issue with "Object" used as a class name for PHP 7.2 (it's a new keyword in php) (#6838)
  • eval : don't lose dynamic function inits from parent classes (#6660)
  • cs : fix order-dependent enum type parameter issue (#6016)

3.4.7

22 Feb 09:42
Compare
Choose a tag to compare

2018-02-22: 3.4.7

Bugfixes:

  • all : fixed a compilation failure if output directory starts with a slash (#6844)
  • all : fixed autogenerated constructor for extending @:structInit classes (#6822, #6078)
  • display : fixed completion in import.hx files (#6022)
  • php : fixed List.pop() for sequential pops (#6859)

3.4.6

12 Feb 12:24
Compare
Choose a tag to compare

2018-02-12: 3.4.6

Bugfixes:

  • all : fixed a bug when Haxe compiler couldn't find std lib on Linux if executed by another program
  • all : fixed "Unix.Unix_error" compiler failure if output directory contains a trailing slash (#6212, #6768)
  • php7 : fixed an issue with "Object" used as a class name for PHP 7.2 (it's a new keyword in php) (#6838)
  • as3 : fixed "inifinite recursion" compiler error for classes named "Object"

3.4.5

31 Jan 12:30
Compare
Choose a tag to compare

2018-01-31: 3.4.5

General improvements and optimizations:

  • dce : optimized DCE performance (#6181)

Bugfixes:

  • dce : don't remove constructor if any instance field is kept (#6062)
  • js : fixed saving setter to tmp var before invocation (#6672)
  • php7 : don't fail on generating import aliases for classes with the similar names (#6680)
  • php7 : fixed appending "sqlite:" prefix to the names of files created by sys.db.Sqlite.open() (#6692)
  • php7 : made php.Lib.objectOfAssociativeArray() recursive (#6698)
  • php7 : fixed php error on parsing expressions like a == b == c (#6720)
  • php7 : fixed Math.min() and Math.max() for NAN on PHP 7.1.9 and 7.1.10
  • php/php7 : fixed sys.net.Socket.bind() (#6693)

4.0.0-preview.2

09 Oct 05:09
Compare
Choose a tag to compare
4.0.0-preview.2 Pre-release
Pre-release

2017-10-08: 4.0.0-preview.2

New features:

  • all : added final keyword (#6596)

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)

3.4.4

08 Oct 07:06
Compare
Choose a tag to compare

2017-10-08: 3.4.4

Bugfixes:

  • flash : fixed flash target broken when compiled with OCaml 4.05 (#6589)
  • php7 : fixed accessing static inline var via reflection (#6630)
  • js : fixed js syntax error for value.iterator-- (#6637)
  • cpp : fixed evaluation order problem when constructing enums (#6643)

4.0.0-preview.1

12 Sep 12:24
Compare
Choose a tag to compare
4.0.0-preview.1 Pre-release
Pre-release

2017-09-12: 4.0.0-preview.1

New features:

  • all : reworked macro interpreter (see blogpost)
  • all : added support for arrow functions (see proposal)

General improvements and optimizations:

  • js : improved generation of break inside switch inside loops (#4964)
  • cs : improved generation of enum classes (#6119)
  • 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:

Bugfixes:

  • php7: fix Reflect.field() for strings (#6276)
  • php7: fix @:enum abstract generation without -dce full (#6175)
  • php7: fix using enum constructor with arguments as a call argument (#6177)
  • php7: fix null property access (#6281)
  • php7: fix setting values in a map stored in another map (#6257)
  • php7: fix haxe.io.Input.readAll() with disabled analyzer optimizations (#6387)
  • php/php7: fixed accessing enum constructors on enum type stored to a variable (#6159)
  • php/php7: fix "cannot implement previously implemented interface" (#6208)
  • php: fix invoking functions stored in dynamic static vars (#6158)
  • php: fix field access on new MyClass() expressions wrapped in a cast (#6294)

Standard Library:

  • all : added EReg.escape (#5098)
  • all : BalancedTree implements haxe.Constraints.IMap (#6231)

3.4.3

12 Sep 15:15
Compare
Choose a tag to compare

Bugfixes:

  • all : fixed DCE issue with interface fields (#6502)
  • cpp : fixed return typing for embedded closures (#6121)
  • php7: fixed @:enum abstract generation without -dce full (#6175)
  • php7: fixed using enum constructor with arguments as a call argument (#6177)
  • php7: fixed accessing methods on dynamic values (#6211)
  • php7: fixed null property access (#6281)
  • php7: fixed setting values in a map stored in another map (#6257)
  • php7: implemented php.Lib.mail()
  • php7: implemented php.Lib.loadLib()
  • php7: implemented php.Lib.getClasses() (#6384)
  • php7: fixed exception on Reflect.getProperty(o, field) if requested field does not exist (#6559)
  • php/php7: fixed accessing enum constructors on enum type stored to a variable (#6159)
  • php/php7: fixed "cannot implement previously implemented interface" (#6208)
  • php: fixed invoking functions stored in dynamic static vars (#6158)
  • php: fixed field access on new MyClass() expressions wrapped in a cast (#6294)
  • macro : fixed bug in addClassPath that overwrites macro class paths with context class paths

3.4.2

11 Sep 21:39
Compare
Choose a tag to compare

2017-03-20: 3.4.2

Bugfixes:

  • cpp : fixed issue with @:native names being prefixed with :: (#6086)
  • cpp : fixed issue with return type handling (#6103)
  • cpp : fixed inaccurate line numbers that threw off debugging
  • php7 : fixed generation of [][0] constructs (#6090)