Skip to content

Nightlies changelog

Rudy Ges edited this page Mar 6, 2024 · 4 revisions

Changes available in nightlies, that will be included in next release of Haxe (5.0).

API removal

  • all : move sys.db, php.Web and neko.Web to hx4compat lib (#11385)
  • all : move haxe.remoting to hx4compat lib (#11387)
  • all : move haxe.crypto to crypto lib (#TODO)
  • macro : remove some API from haxe.macro.Compiler (#11540)

Other removal

  • all : remove 32 bit windows builds (#11541)
  • cs/java : remove C# and Java targets (#11551)

Breaking changes

See Breaking changes in Haxe 5.0.0 for some help with dealing with these.

  • all : rework module resolution (#11168)
  • all : don't infer string on concat (#11318)
  • all : delay typer creation to after init macros (#11323)
  • all : don't create a class field for every enum field (#11452)
  • all : only set cf_expr_unoptimized if we think we need it (#11462)
  • all : fix the way optional arguments are handled when using bind (#11533)
  • macro : Build macro order vs inheritance (#11582)

Other changes

TODO apply usual formatting

General improvements:

  • hxb (#11504)
  • Rework module resolution (#11168)
  • [typer] Delay typer creation to after init macros (#11323)
  • Add "Custom" target (#11128)
  • [server] add support for ipv6 addresses for --wait/--connect (#11310)
  • Allow boolean operators in patterns (#11157)
  • Functional interface support (#11019)
  • added haxe.macro.Context.resolveContextType
  • [macro] add TypeTools.toBaseType() (#11153)
  • Add TypeTools.resolveTypeParameters (#11053)

Bugfixes:

  • [js] remove weird class name omission (#11071)
  • Dont check return expr in assignments (#11114)
  • [lua] Emit class name even if not required (#11112)
  • [neko] Optimise BytesBuffer length field (#11090)
  • [exceptions] fix @:wrappedException type (#11140)
  • [parser] fix ?? precedence (#11144)
  • [eval] Fix field typo in haxe.zip.Compress (#11143)
  • [filters] avoid overlap work if we reserve anyway (#11174)
  • [nullSafety] only process fields that do not have CfPostProcessed flag (#11185)
  • Syntax.code: remove double curly braces escaping (#11231)
  • [display] Avoid display issues with missing fields (#11251)
  • [typer] fix custom array access temp var handling (#11248)
  • Account for sub-types in ComplexTypeTools.toComplex(). (#11273)
  • [jvm] allow - in resource names (#11275)
  • [js] Fix enums parameters generation to make it compatible with advanced JS minification tools (#11328)
  • [jvm] refer to static instance methods correctly (#11023)
  • [macro] build metadata with basic types from current context (#11336)
  • [macro] fix TVar resolution (#11339)
  • [typer] give better "Cannot extend by" error (#11352)
  • [JVM] Function arguments with type parameters not generating correctly (#11362)
  • Inline ctors improved handling of ignored exprs. (#11356)
  • [parser] catch duplicate #else (#11208)
  • [matcher] don't allow null-only switches if we need a value (#11366)
  • [parser] check for Eof (#11368)
  • [macro] respect imports on @:build (#11373)
  • [typer] delay unknown ident errors in overloads (#11372)
  • [typer] support safe nav for assign ops (#11379)
  • [typer] don't allow @:structInit to call abstract constructors (#11342)
  • [inliner] fix captured checks in constructor inliner (#11356)
  • [analyzer] fix stack overflow on empty TBlock (#11393)
  • [analyzer] disallow Void in compound block expressions (#11391)
  • Jvm annotation rework (#11398)
  • Run some filters in diagnostics (#11220)
  • add support for --undefine foo to remove define (#11400)
  • [typer] deal with for (i in throw) (#11403)
  • Use available terminal columns instead of hardcoded 80 columns (#11404)
  • Track actual path position for path.Path (#11405)
  • [hl/c] fix reserved keywords (#11408)
  • [macro] don't exception-wrap every API function (#11374)
  • [display] diagnostics as json rpc (#11412)
  • [hl] added hl.Api.unsafeCast, allow CArray unsafe set
  • [js] Add externs for the Screen Wake Lock API (#11421)
  • [js] Add externs for the Web Share API (#11423)
  • [js] Update Object and Symbol externs (#11331)
  • [typer] align null coalescing top down inference with normal if/else (#11425)
  • [display] browse for EDisplay when calls fail (#11422)
  • [typer] type operator lhs against expected type (#11428)
  • [messageReporting] Add config to use absolute positions (#11439)
  • [cpp] Enum Type Checking (#11444)
  • [display] Insert EDisplay in the proper position when parsing a call expression. (#11441)
  • [hl] make sure -dce full will not remove @:struct fields as they match native code
  • [lua] Fix unnecessary _hx_do_first (#11453)
  • Allow generating sourcemaps for Lua in the same format as JS (#11454)
  • [hl] Fix do-while loop in genhl+hlopt (#11461)
  • [filters] recurse into expressions of local statics (#11469)
  • [macro] don't apply @:native names (#11481)
  • [diagnostics] use correct position for alias imports (#11516)
  • [typer] consume bypass_accessor only if it's actually relevant (#11488)
  • Set --run args only when we're actually running (#11524)
  • [typer] don't hide abstract type when resolving through @:forward (#11526)
  • [jvm] Assign dynamic method only if it's null (#11530)
  • [jvm] fix invokeDynamic arity
  • [jvm] use HashMap for IntMap too
  • [server] do not crash when client exits before end of compilation
  • [typer] don't consider @:structInit + @:from when inferring (#11535)
  • Skip abstract impl classes when applying addGlobalMetadata (#11546)
  • Add server/resetCache (#11482)
  • Always allow local function type parameters (#11520)
  • check default type parameter constraints (#11556)
  • String.indexOf (#7402)
  • Make String.indexOf actually conform to some specification (#11569)
  • all : build macOS universal binaries (#11572)
  • [lua] Share metatables with other class instances (#11103)
  • [jvm] remove redundant ordinal comparison on enums (#11591)
  • [hl] hlopt rework try-catch control flow (#11581)

If you've missed it, changes from Haxe 4.3.4 and previous 4.3.x bugfix releases are also included.

We also made a lot of internal changes which usually should not have a visible impact, other than (hopefully!) increased stability of Haxe compilation server.