Releases: HaxeFoundation/haxe
Releases · HaxeFoundation/haxe
4.2.4
2021-10-22 4.2.4:
New features:
- hl : add clipboard support in hl 1.12 (#10320)
General improvements:
- all : improved error messages upon directory creation failures (#10361)
- eval : added
%operator toeval.numbers.Int64andeval.numbers.UInt64(#10411)
Bugfixes:
- all : fixed errors on final vars modification with
+=,*=etc operations (#10325) - all : fixed hanging of MainLoop.add on threaded targets (#10308,(#10329)
- all : fixed compiler crash when resolving overloads with not enough arguments (#10434)
- all : fixed non-static
@:tomethods on@:multiTypeabstracts (#10145) - analyzer : fixed analyzer on overloads (#10405)
- analyzer : fixed issues with fields initialization expressions (#10405)
- display : improved code completion in anonymous objects declarations (#10414)
- js : fixed IntMap for keys greater than 2^31 (#10316)
- js : workaround to fix sourcemaps on Firefox in Windows (#10217)
- js : delayed truncation of the output file on
Compiler.setCustomJSGenerator(#10387) - cs/java : fixed rest arguments for cases when only one argument is provided (#10315)
- php : fixed type of
php.db.PDO.ATTR_DRIVER_NAME(#10319) - eval : fixed signature of `eval.luv.Tcp.noDelay( metho)
- lua : fixed
string.lengthwhenstringhas type of a type parameter constrained toString(#10343) - jvm : fixed
Reflect.compare()for different number types (#10350) - python : fixed exceptions on tracing some native values (#10440)
4.2.3
General improvements:
- all : analyzer optimizations
- macro : support maps in
haxe.macro.Context.makeExpr(#10259) - js : added
-D js-global=globalThisto customize global object name (#10282) - php : added externs for
quoted_printable_decode,quoted_printable_encode,Attribute,NumberFormat,IntlCalendarand otherIntl*classes
Bugfixes:
4.2.2
2021-05-14 4.2.2:
Bugfixes:
- all : fixed piping stdin/stdout in
--cmd(#4669, #6726) - all : fixed rest args typing for overloaded functions (#10143)
- all : fixed using
varfields as static extensions (#10144) - all : fixed completion for a type in
expr is Type(#10167) - all : fixed subtypes in
expr is Module.SubTypeexpressions (#10174) - all : fixed typing chains of calls with constrained type params (#10198)
- all : fixed mixed constraints of anonymous structures and other types (#10162)
- all : fixed operator overloading for enum abstracts (#10173)
- hl : fixed debugging of
catchblocks (#10109) - jvm : fixed manifest generation for cases with a lot of jar libraries (#10157)
- js : fixed extending extern classes for es5 (#10192)
- js : fixed checking
thisbeforesuperfor es6 (#10193) - eval : fixed null pointer exception in
eval.NativeString.fromString(null) - eval : fixed multiple locks of
sys.thread.Mutexfrom the same thread (#10249)
4.2.1
release 4.2.1
4.2.0
2021-02-09 4.2.0:
New features:
- all : implemented "classic" abstract classes and functions (see haxe-evolution#69) (#9716)
- all : module-level static declarations (#8460)
- all : implemented rest arguments (variadic functions) for all targets with
haxe.Resttype (#9961) - all : per-thread event loops
sys.thread.Thread.events(#9868) - all : added
@:inheritDocmeta to inherit documentation for a type or field from another type or field (#9817) - all : support method overloading for extern methods on all targets (#9793)
- all : constructors forwarding for abstracts with
@:forward.new(#9735) - all : added
EIsconstructor tohaxe.macro.Expr(#9689) - all : added variance forwarding with
@:forward.variance(#9741) - all : treat
AnyasDynamicin variance unification (#6649) - all : added some common exception types to
haxe.exceptionspackage - all : support metadata in var declaration syntax (#9618)
- all : added
StringTools.unsafeCharAt(#9467) - eval : added libuv bindings under
eval.luvpackage (#9903) - eval : added bindings to native
Int64andUInt64implementations undereval.integerspackage (#9903) - cs : UDP socket implementation (#8498)
- cs : added
cs.Syntaxmodule (#10051) - jvm : added
-D jvm.dynamic-levelto control the amount of dynamic support code being generated. 0 = none, 1 = field read/write optimization (default), 2 = compile-time method closures - java,jvm : support
--java-lib <directory>(#9551) - python : threading API implementation (#9754)
General improvements:
- all :
expr is SomeTypedoesn't require parentheses anymore (#9672) - all : increased priority of @:using extensions (#9681)
- all : allowed usage of static extensions with super (#10062)
- all : allow @:noDoc on fields too (#9893)
- all : made
Mapabstract transitive (#9877) - all : support
@:nativeon enum constructors (#9806) - all : support
@:usingon typedefs (#9749) - all : changed multiline errors format to use "..." as a prefix for subsequent lines (#9651)
- all : improved type inference with constrained monomorphs (#9549)
- all : print no-argument function types as
()->...instead ofVoid->...(#8148) - all : allow
functionas package name - all : improved object inlining (#9599)
- display : narrow range for hover on parametrized types (#8073)
- cs : added .NET 5.0 support (#10043)
- cpp : support native constructors on extern classes (#9516)
php:php.Syntax.customArrayDecl(#9113) - php : added externs for various php functions and classes
- php : optimized anonymous objects instantiation (#7916)
- hl : skip compilation if no module has been changed (#9922)
- lua : use hx-lua-simdjson for Lua json parsing (#9885)
- jvm : less CPU consuming
sys.thread.Lockimplementation
Bugfixes:
- all : fixed Template.resolve when current context is not an object (#9372)
- all :
getandsetfunctions ofhaxe.io.Float64Arrayactually use 64-bit floats now (#9972) - all : treat empty blocks
{}as object declarations in array comprehension (fixes #9971) - all :
haxe.format.JsonParser: preserve Float-typed values when they are written as such in JSON (ie. "5.0" or "0.0") (#9844) - all : fixed priority of forwarded static extensions (#9680)
- all : fixed some inconsistency in variance unification for abstracts (#9743)
- display : fixed completion with platform-specific files (#9423)
- cpp : fixed conversion of
cpp.Int64to/fromhaxe.Int64(#10101) - cpp : fixed extending extern classes with
@:nativeGenclasses (#9431) - php : fixed generation with subdirectories in
-D php-front=subdir/index.php(#10037) - php : fixed local vars with the same names as super global vars (#9924)
- eval : allow full range of 32bit integers in
Std.random(#9974) - js : fixed
haxe.CallStack.exceptionStack(#9968) - js : fixed compatibility issue with closure compiler upon unused
catchvars (#9617) - lua : fixed anonymous object printing issue with null fields on tables
- hl : drop data of terminated threads (#9875)
- macro : fixed
haxe.macro.Context.storeTypedExprfor enum constructs (#9828) - macro : emit a deprecation warning upon a macro call instead of upon a macro function declaration (#9425)
- macro : fixed uncatchable error from
haxe.macro.Context.getType(#9449) - jvm : fixed
Type.resolveEnumfor enums in the root package (#9809) - jvm : fixed
Type.resolveEnumNamefor enums in the root package (#9759) - cs : fixed cs.Lib.rethrow (#9738)
- nullsafety : respect
@:nullSafety(Off)on var declarations:var @:nullSafety(Off) v - nullsafety : respect
@:nullSafety(Off)in closures in constructors (#9643) - nullsafety : fixed error "Type not found : haxe.macro.Compiler.NullSafetyMode_Impl" (#9483)
4.1.5
2020-12-31 4.1.5
General improvements:
- all : added an argument to
haxe.CallStack.exceptionStackto return full stack up to the topmost call (#9947) - php : compatibility with PHP 8
Bugfixes:
- all : fixed empty object declarations in array comprehension (#9971)
- jvm : fixed equality checks for
Null<Float>andNull<Int>(#9897) - hl : fixed crash if a thread finishes without invoking
sendMessage/readMessage(#9920) - php : fixed local vars with certain names (_SERVER, _GET etc) overriding super global values (#9924)
- php : fixed generation with directories in
-D php-front. For example-D php-front=sub/index.php(#10037)issues/ - macro : added return type hint to haxe.macro.MacroStringTools.formatString (#9928)
- cs : fixed catching exceptions from static closures (#9957)
- eval : fixed
Std.random(arg)forargvalues of more than 30 bits (#9974) - js : fixed
haxe.CallStack.exceptionStack(#9968)
4.1.4
2020-09-11 4.1.4
General improvements:
- all : allowed
Anyas type parameter incatch(e:SomeType<Any>)(#9641) - all : improved compilation speed for
try..catchexpressions (#9848)
Bugfixes:
- all : fixed
switchtyping error for arrow functions withVoidreturn type (#9813) - all : fixed typing of arrow functions with empty blocks as bodies (#9843)
- macro : fixed
haxe.macro.Context.getResources()(#9838) - php : fixed false detection of
catchvars in anonymous functions as captured from outer scope - php : fixed return type of extern definition for
fseekfunction - cs,java : fixed generation of
@:genericclasses with anonymous functions (#9799) - jvm : fixed sending/reading messages with
sys.thread.Threadsfor threads created outside of Haxe (#9863) - jvm : fixed multiplication of
Null<Float>andInt(#9870) - flash : fixed loading swc libraries containing
Vectorwithout a type parameter (#9805) - hl : fixed messages being send to wrong threads with
sendMessage/readMessageinsys.thread.Thread(#9875) - cpp : fixed
cpp.Lib.stringReference()(#8457)
4.1.3
release 4.1.3
4.1.2
2020-06-19 4.1.2
Bugfixes:
- all : added
containsandkeyValueIteratormethods to haxe.ds.ReadOnlyArray - all : fixed super constructor call when extending externs (#7837, #9501)
- all : fixed compiler crash for "--run" argument without a value (#9513)
- all : fixed local variable name collision in
try..catch(#9533) - all : fixed memory leak in completion server related to haxe.Exception (#9537)
- display : fixed completion for out-of-bounds argument in a call (#9435)
- display : fixed "find references" through interfaces (#9470)
- display : optimized "find references" (#9504)
- display : optimized "server/invalidate" requests (#9509)
- analyzer : fixed compiler crash upon handling code branches with enums with optional arguments (#9591)
- jvm : added "--java-lib-extern" to use jar files as externs without adding them to the compiled project (#9515)
- macro : fixed type intersection syntax in macro reification (#9404)
- eval : fixed exception message when catching compiler-generated
haxe.macro.ErrorasDynamic(#9600) - lua : fixed lua code generation without
--maincompilation argument (#9489) - php : added an overload signature for
session_set_cookie_paramsfunction (#9507) - js : fixed name collisions for catch variables to avoid closure compiler errors (#9617)
- nullsafety : fixed various scenarios of
if..elsebranching (#9474)
4.1.1
2020-22-05 4.1.1
New features:
- jvm : added
--jvm path/to.jarCLI argument
Bugfixes:
- all : fixed arguments ordering for @:structInit constructors (#9418)
- all : fixed display/references completion server request for static fields (#9440)
- all : fixed "Module not found" error reporting during macro execution in display requests (#9449)
- all : fixed module name completion for target-specific modules like
Mod.js.hx(#9423) - all : fixed completion for packages named "function" (#7697)
- all : fixed recursive typedefs with optional arguments in
@:overloadfunctions (#9455) - cpp : fixed StringTools.endsWith() for unicode characters (#8980)
- cpp : fixed broken externs in
cpppackage (#9452) - js/cpp : fixed catch var naming collision (#9413)
- interp : fixed throwing
haxe.macro.Erroroutside of a macro context (#9390) - lua : fixed lua.PairTools.ipairsMap method
- php : fixed an edge case in String methods generation (#9464)