Releases: HaxeFoundation/haxe
Releases · HaxeFoundation/haxe
4.0.0-preview.4
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
andfinal ?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:
4.0.0-preview.3
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
andsuper
to toplevel completion (#6051) - php : implemented direct method comparison. No need to use
Reflect.compareMethods()
- php : added
php.Syntax.code()
instead of deprecateduntyped __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 ofStd.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. Usephp.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 whenfrom
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 bySys.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
2018-02-22: 3.4.7
Bugfixes:
3.4.6
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
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()
andMath.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
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:
3.4.4
4.0.0-preview.1
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
insideswitch
inside loops (#4964) - cs : improved generation of enum classes (#6119)
- sys : the
database
parameter ofMysql.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).
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 acast
(#6294)
Standard Library:
3.4.3
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 acast
(#6294) - macro : fixed bug in addClassPath that overwrites macro class paths with context class paths