Quellcode durchsuchen

Merge branch 'development' into kt_coro

# Conflicts:
#	README.md
Simon Krajewski vor 2 Monaten
Ursprung
Commit
34cffd3836
100 geänderte Dateien mit 702 neuen und 114 gelöschten Zeilen
  1. 7 7
      LICENSE
  2. 2 1
      Makefile
  3. 2 2
      Makefile.win
  4. 256 0
      extra/CHANGES.txt
  5. 1 1
      extra/haxelib_src
  6. 22 41
      src-json/define.json
  7. 1 1
      src/compiler/args.ml
  8. 7 5
      src/compiler/hxb/hxbWriter.ml
  9. 1 1
      src/compiler/messageReporting.ml
  10. 1 1
      src/core/globals.ml
  11. 26 0
      src/macro/eval/evalStdLib.ml
  12. 2 0
      src/macro/eval/evalValue.ml
  13. 12 0
      std/EReg.hx
  14. 4 0
      std/cpp/Int64Map.hx
  15. 9 0
      std/cpp/_std/EReg.hx
  16. 4 0
      std/cpp/_std/haxe/ds/IntMap.hx
  17. 7 0
      std/cpp/_std/haxe/ds/Map.hx
  18. 4 0
      std/cpp/_std/haxe/ds/ObjectMap.hx
  19. 4 0
      std/cpp/_std/haxe/ds/StringMap.hx
  20. 4 0
      std/cpp/_std/haxe/ds/WeakMap.hx
  21. 1 0
      std/eval/_std/EReg.hx
  22. 5 0
      std/flash/_std/EReg.hx
  23. 6 0
      std/flash/_std/haxe/ds/IntMap.hx
  24. 6 0
      std/flash/_std/haxe/ds/ObjectMap.hx
  25. 6 0
      std/flash/_std/haxe/ds/StringMap.hx
  26. 6 0
      std/flash/_std/haxe/ds/UnsafeStringMap.hx
  27. 6 0
      std/flash/_std/haxe/ds/WeakMap.hx
  28. 1 0
      std/haxe/Constraints.hx
  29. 12 0
      std/haxe/ds/BalancedTree.hx
  30. 7 0
      std/haxe/ds/HashMap.hx
  31. 2 0
      std/haxe/ds/IntMap.hx
  32. 7 0
      std/haxe/ds/Map.hx
  33. 2 0
      std/haxe/ds/ObjectMap.hx
  34. 2 0
      std/haxe/ds/StringMap.hx
  35. 7 0
      std/haxe/ds/WeakMap.hx
  36. 23 0
      std/hl/_std/EReg.hx
  37. 8 0
      std/hl/_std/haxe/ds/IntMap.hx
  38. 8 0
      std/hl/_std/haxe/ds/ObjectMap.hx
  39. 8 0
      std/hl/_std/haxe/ds/StringMap.hx
  40. 7 0
      std/hl/types/BytesMap.hx
  41. 7 0
      std/hl/types/IntMap.hx
  42. 7 0
      std/hl/types/ObjectMap.hx
  43. 6 0
      std/js/_std/EReg.hx
  44. 10 0
      std/js/_std/haxe/ds/IntMap.hx
  45. 10 0
      std/js/_std/haxe/ds/ObjectMap.hx
  46. 16 0
      std/js/_std/haxe/ds/StringMap.hx
  47. 12 0
      std/jvm/_std/EReg.hx
  48. 4 0
      std/jvm/_std/haxe/ds/IntMap.hx
  49. 14 10
      std/jvm/_std/haxe/ds/ObjectMap.hx
  50. 4 0
      std/jvm/_std/haxe/ds/StringMap.hx
  51. 15 11
      std/jvm/_std/haxe/ds/WeakMap.hx
  52. 8 0
      std/lua/_std/EReg.hx
  53. 6 0
      std/lua/_std/haxe/ds/IntMap.hx
  54. 6 0
      std/lua/_std/haxe/ds/ObjectMap.hx
  55. 6 0
      std/lua/_std/haxe/ds/StringMap.hx
  56. 19 0
      std/neko/_std/EReg.hx
  57. 4 0
      std/neko/_std/haxe/ds/IntMap.hx
  58. 4 0
      std/neko/_std/haxe/ds/ObjectMap.hx
  59. 4 0
      std/neko/_std/haxe/ds/StringMap.hx
  60. 5 0
      std/php/_std/EReg.hx
  61. 4 0
      std/php/_std/haxe/ds/IntMap.hx
  62. 4 0
      std/php/_std/haxe/ds/ObjectMap.hx
  63. 4 0
      std/php/_std/haxe/ds/StringMap.hx
  64. 5 0
      std/python/_std/EReg.hx
  65. 4 0
      std/python/_std/haxe/ds/IntMap.hx
  66. 4 0
      std/python/_std/haxe/ds/ObjectMap.hx
  67. 4 0
      std/python/_std/haxe/ds/StringMap.hx
  68. 0 1
      tests/misc/Issue11280/compile-fail.hxml
  69. 0 1
      tests/misc/Issue11280/compile2-fail.hxml
  70. 0 1
      tests/misc/java/projects/Issue11095/pretty-fail.hxml
  71. 0 1
      tests/misc/projects/Issue10623/pretty-fail.hxml
  72. 0 1
      tests/misc/projects/Issue10844/user-defined-meta-pretty-fail.hxml
  73. 0 1
      tests/misc/projects/Issue10863/compile.hxml
  74. 0 1
      tests/misc/projects/Issue11055/compile-pretty-fail.hxml
  75. 0 1
      tests/misc/projects/Issue11121/compile-fail.hxml
  76. 0 1
      tests/misc/projects/Issue11162/compile-fail.hxml
  77. 0 1
      tests/misc/projects/Issue11162/compile2-fail.hxml
  78. 0 1
      tests/misc/projects/Issue11164/compile.hxml
  79. 0 1
      tests/misc/projects/Issue11164/compile2-fail.hxml
  80. 0 1
      tests/misc/projects/Issue11164/compile3-fail.hxml
  81. 0 1
      tests/misc/projects/Issue11164/compile4-fail.hxml
  82. 0 1
      tests/misc/projects/Issue11164/compile5-fail.hxml
  83. 0 1
      tests/misc/projects/Issue11164/compile6-fail.hxml
  84. 0 1
      tests/misc/projects/Issue11164/compile7-fail.hxml
  85. 0 1
      tests/misc/projects/Issue11417/compile-fail.hxml
  86. 0 1
      tests/misc/projects/Issue11417/compile1-fail.hxml
  87. 0 1
      tests/misc/projects/Issue11439/compile3-fail.hxml
  88. 0 1
      tests/misc/projects/Issue11679/compile-fail.hxml
  89. 0 1
      tests/misc/projects/Issue11700/compile-fail.hxml
  90. 0 1
      tests/misc/projects/Issue11753/compile-fail.hxml
  91. 0 1
      tests/misc/projects/Issue11753/compile.hxml
  92. 0 1
      tests/misc/projects/Issue12167/compile-fail.hxml
  93. 0 1
      tests/misc/projects/Issue3188/compile.hxml
  94. 0 1
      tests/misc/projects/Issue5644/pretty-fail.hxml
  95. 0 1
      tests/misc/projects/Issue5949/pretty-fail.hxml
  96. 0 1
      tests/misc/projects/Issue6065/pretty-fail.hxml
  97. 0 1
      tests/misc/projects/Issue6584/pretty-fail.hxml
  98. 0 1
      tests/misc/projects/Issue6790/pretty-fail.hxml
  99. 0 1
      tests/misc/projects/Issue6796/pretty-fail.hxml
  100. 0 1
      tests/misc/projects/Issue6810/pretty-fail.hxml

+ 7 - 7
extra/LICENSE.txt → LICENSE

@@ -7,15 +7,15 @@ The Haxe compiler is licensed under the GNU GPL v2+ license (SPDX: GPL-2.0-or-la
 
 The compiler is built around the Haxe source code base.
 
-If a file does not have a license header or does not fall under one of the exceptions listed below, 
-it should be assumed to be licensed under the GNU GPL v2+ license with the standard copyright notice:  
-Copyright (C) 2005-2024 Haxe Foundation.
+If a file does not have a license header or does not fall under one of the exceptions listed below,
+it should be assumed to be licensed under the GNU GPL v2+ license with the standard copyright notice:
+Copyright (C) 2005-2025 Haxe Foundation.
 
-- The Haxe Standard Library is licensed under the MIT License, which is reproduced below.  
+- The Haxe Standard Library is licensed under the MIT License, which is reproduced below.
   It is located in the `std/` directory, and the MIT license applies to this part of Haxe.
 
-- Haxe contains third-party source code, some of which is located in the `libs/` directory.  
-  Each third-party module includes its own license.  
+- Haxe contains third-party source code, some of which is located in the `libs/` directory.
+  Each third-party module includes its own license.
   For integration with Haxe, these modules may contain Haxe-related files such as a "dune" file
   or other files for integration with Haxe or OCaml.
   These files are licensed under the Haxe Compiler license (GNU GPL v2+).
@@ -26,7 +26,7 @@ For a summary of Haxe licenses, please read [http://haxe.org/foundation/open-sou
 The Haxe Standard Library MIT License:
 --------------------------
 
-Copyright (C)2005-2016 Haxe Foundation
+Copyright (C)2005-2025 Haxe Foundation
 
 Permission is hereby granted, free of charge, to any person obtaining a
 copy of this software and associated documentation files (the "Software"),

+ 2 - 1
Makefile

@@ -152,7 +152,8 @@ package_unix:
 	rm -rf $(PACKAGE_FILE_NAME) $(PACKAGE_FILE_NAME).tar.gz
 	# Copy the package contents to $(PACKAGE_FILE_NAME)
 	mkdir -p $(PACKAGE_FILE_NAME)
-	cp -r $(HAXE_OUTPUT) $(HAXELIB_OUTPUT) std extra/LICENSE.txt extra/CONTRIB.txt extra/CHANGES.txt $(PACKAGE_FILE_NAME)
+	cp -r $(HAXE_OUTPUT) $(HAXELIB_OUTPUT) std extra/CONTRIB.txt extra/CHANGES.txt $(PACKAGE_FILE_NAME)
+	cp LICENSE $(PACKAGE_FILE_NAME)/LICENSE.txt
 	# archive
 	tar -zcf $(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_bin.tar.gz $(PACKAGE_FILE_NAME)
 	rm -r $(PACKAGE_FILE_NAME)

+ 2 - 2
Makefile.win

@@ -42,7 +42,7 @@ ifdef FILTER
 CC_CMD=($(COMPILER) $(ALL_CFLAGS) -c $< 2>tmp.cmi && $(FILTER)) || ($(FILTER) && exit 1)
 endif
 
-PACKAGE_FILES=$(HAXE_OUTPUT) $(HAXELIB_OUTPUT) std \
+PACKAGE_FILES=$(HAXE_OUTPUT) $(HAXELIB_OUTPUT) std LICENSE \
 	"$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep zlib1.dll | sed -e 's/^\s*//')" \
 	"$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep libpcre2-8-0.dll | sed -e 's/^\s*//')" \
 	"$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep libmbedcrypto.dll | sed -e 's/^\s*//')" \
@@ -66,7 +66,7 @@ package_win:
 	# Using poor man's cp (zip then unzip), because cp in cygwin is quite broken
 	mkdir -p $(PACKAGE_FILE_NAME)
 	7z a -y -tzip -mx0 temp.zip $(PACKAGE_FILES) > log.txt || type log.txt
-	cd extra && 7z a -y -tzip -mx0 ../temp.zip LICENSE.txt CONTRIB.txt CHANGES.txt > log.txt || type log.txt
+	cd extra && 7z a -y -tzip -mx0 ../temp.zip CONTRIB.txt CHANGES.txt > log.txt || type log.txt
 	7z x -y temp.zip -o$(PACKAGE_FILE_NAME) > log.txt || type log.txt
 	rm temp.zip
 	# archive

+ 256 - 0
extra/CHANGES.txt

@@ -1,3 +1,259 @@
+2025-07-04 5.0.0-preview.1
+
+	Removal:
+
+	all : remove 32 bit windows builds (#11541)
+	all : move `sys.db`, `php.Web` and `neko.Web` to `hx4compat` lib (#11385)
+	all : move `haxe.remoting` to `hx4compat` lib (#11387)
+	all : remove haxe.Ucs2 (#12103)
+	hl : move some hl.Format into lib format/heaps (#11869)
+	java/cs : remove C# and Java targets (#11551)
+	macro : remove some API from haxe.macro.Compiler (#11540)
+	macro : remove CompilationServer.setModuleCheckPolicy options (#11615)
+
+	Breaking changes:
+
+	all : rework module resolution (#11168)
+	all : don't infer string on concat (#11318)
+	all : delay typer creation to after init macros (#11323)
+	all : disallow partial resolution (pack.SubType access when module is imported) (#11338)
+	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)
+	all : don't bind foreign type parameters in definition mode (#11658)
+	all : disallow duplicate argument name (#11978)
+	all :  fix types in null coal null check (#11726)
+	macro : Build macro order vs inheritance (#11582)
+	macro : disallow defining types into existing modules (#11845)
+
+	General improvements:
+
+	all : hxb (new server cache + pre compilation) (#11504)
+	all : rework module resolution (#11168)
+	all : add "Custom" target (#11128)
+	all : private getters/setters (#12204)
+	all : allow boolean operators in patterns (#11157)
+	all : explicitly apply default type parameter (#12002)
+	all : allow modification of loop var in IntIterator loop (#8581)
+	all : support overloading true extern constructors (#11979)
+	all : support f?.bind() (#11571)
+	all : rework defines (#12130, #12251)
+	all : abort compilation on first error with -D fail-fast (#11609)
+	all : add position and error message to decode_error.txt (#12128)
+	all : add configuration options for -D dump, set -D dump-ignore-var-ids by default (#12150, #12130)
+	all : add support for binary literal (#11627)
+	all : add support for --undefine to remove define (#11400)
+	all : add optional WUnsafeEnumEquality (#11813)
+	all : build macOS universal binaries (#11572)
+	all : [experiments] run parts of the compiler in parallel with `-D enable-parallelism` (#12070, #12134, #12081, #12252)
+	all : [std] add enum as haxe.Unit (#11563)
+	all : [std] add BigInteger type (#10750)
+	all : [std] add haxe.runtime.Copy (#11863)
+	all : [std] haxe.Timer.milliseconds (#12260)
+	all : [std] String.indexOf (#7402, #11569)
+	all : [std] add StringBuf.clear() (#11848)
+	all : [std] allow setting haxe.Exception.stack (#12213)
+	all : [std] Serializer: implement reset method (#12068)
+	all : [std] use Vectors in haxe.zip (#11034)
+	all : [messageReparting] pretty errors as default message reporting (#11587)
+	all : [messageReporting] add config to use absolute positions (#11439)
+	all : [display] diagnostics as json rpc (#11412)
+	all : [display] report null safety errors in diagnostics (#11729)
+	all : [display] add server/resetCache (#11482)
+	all : [server] add support for ipv6 addresses for --wait/--connect (#11310)
+	all : [server] improve GC stats tracking (#12246)
+	all : [server] remove custom ocaml GC handling (#12287)
+	hl : bump default hl_version to 1.15 for haxe 5 (#12065)
+	hl : add std.hl.Gc.getLiveObjects (#11599)
+	hl : add element type to HArray (#11734)
+	hl : optimize single char String and adding with empty string
+	hl : added guid type
+	hl : hl.Profile.event give code some meaning with enum abstract (#12262)
+	jvm : improve NativeOutput performance (#11944)
+	jvm : functional interface support (#11019)
+	cpp : add Tracy profiler extern (#11772)
+	cppia : generate full debug source paths (#12053)
+	js : use native maps when ES6 is enabled (#11698)
+	js : remove String.fromCodePoint polyfill for es6 (#11713)
+	js : add the canParse() and parse() static methods to URL (#11802)
+	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)
+	js : clean up ES5 implementation of StringMap.keys() (#11895)
+	js : add new WebGLPolygonMode extension (#12026)
+	js : add js.lib.NativeStringTools (#12127)
+	php : add externs for some POSIX functions (#11769)
+	macro : delay typer creation to after init macros (#11323)
+	macro : added Context.resolveComplexType
+	macro : add TypeTools.toBaseType() (#11153)
+	macro : add TypeTools.resolveTypeParameters (#11053)
+	macro : add PositionTools.toZeroRange(pos) to avoid messing up display requests (#11892)
+	macro : apply @:using after build macros (#11625)
+	macro : include module path in virtual file names (#11852)
+	macro : respect imports on @:build (#11373)
+	macro : [server] expose compilation server stats (#12290)
+	macro : [server] add memory print that support details for macro interpreter (#11644)
+	eval : atomics (#12275)
+
+	Bugfixes:
+
+	all : fix @:wrappedException type (#11140)
+	all : don't allow null-only switches if we need a value (#11366)
+	all : detect recursive hxmls (#11580)
+	all : use local name instead of temp name for ?? (#11464)
+	all : fix local statics vs display requests (#11849)
+	all : fix unclosed monomorphs in function signature (#11381)
+	all : update target config after init macros (#11985)
+	all : local static vs local functions (#11999)
+	all : fix null coal assign (#11980)
+	all : static extension with name `_new` resolving incorrectly to abstract new (#11994)
+	all : allow Single div without cast to Float (#12039)
+	all : recurse into singularly constrained monos for field collection (#11918)
+	all : also skip mono ids if -D dump-ignore-var-ids (#12126)
+	all : renamed `-D *-times` defines to `-D times.*` (#12101)
+	all : apply @:haxe.warning rules to cached warnings too (#11775)
+	all : avoid some capture variable wrapping in non-loops (#12235)
+	all : @:noCompletion vs. static extensions (#12254)
+	all : use available terminal columns instead of hardcoded 80 columns (#11404)
+	all : track actual path position for path.Path<Params> (#11405)
+	all : set --run args only when we're actually running (#11524)
+	all : [std] do not close unowned socket in Http.customRequest (#12069)
+	all : [std] fix zipfiles not having data descriptor after filedata (#11686)
+	all : [std] implement EnumValueMap.compareArg properly (#12139)
+	all : [std] Syntax.code: remove double curly braces escaping (#11231)
+	all : [typer] check default type parameter constraints (#11556)
+	all : [typer] fix custom array access temp var handling (#11248)
+	all : [typer] valid redefinition rework (#11657)
+	all : [typer] give better "Cannot extend by" error (#11352)
+	all : [typer] delay unknown ident errors in overloads (#11372)
+	all : [typer] support safe nav for assign ops (#11379)
+	all : [typer] don't allow @:structInit to call abstract constructors (#11342)
+	all : [typer] align null coalescing top down inference with normal if/else (#11425)
+	all : [typer] deal with for (i in throw) (#11403)
+	all : [typer] type operator lhs against expected type (#11428)
+	all : [typer] consume bypass_accessor only if it's actually relevant (#11488)
+	all : [typer] don't hide abstract type when resolving through @:forward (#11526)
+	all : [typer] don't consider @:structInit + @:from when inferring (#11535)
+	all : [typer] avoid lhs cast on ambiguous operators (#12146)
+	all : [typer] abstract vs. mono hard unification error (#12182)
+	all : [typer] follow through abstract underlying types for null-checks when matching (#11716)
+	all : [typer] fix Monomorph vs Null<T> inference issue (#11851)
+	all : [typer] fail softer on multiple read/write resolve methods (#11757)
+	all : [typer] always allow local function type parameters (#11520)
+	all : [typer] disallow ?.new and ?.match (#11799)
+	all : [generics] use tclass instead of TType.t for substitution (#11784)
+	all : [generics] ensure type substitution happens for closures too (#12173)
+	all : [xml] fix when string ends with escape sequence (#11883)
+	all : [xml] fixed xml cased escape sequences (#11914)
+	all : [analyzer] inline ctors improved handling of ignored exprs (#11356)
+	all : [analyzer] fix captured checks in constructor inliner (#11356)
+	all : [analyzer] fix for inline constructors bug (#12169)
+	all : [analyzer] fix stack overflow on empty TBlock (#11393)
+	all : [analyzer] disallow Void in compound block expressions (#11391)
+	all : [analyzer] reconstruct binops in return (#12243)
+	all : [analyzer] send all types to analyzer for purity inference (#12224)
+	all : [analyzer] const propagation typing fixes (#12059)
+	all : [filters] avoid overlap work if we reserve anyway (#11174)
+	all : [filters] recurse into expressions of local statics (#11469)
+	all : [nullSafety] don't check return expr in assignments (#11114)
+	all : [nullSafety] only process fields that do not have CfPostProcessed flag (#11185)
+	all : [nullSafety] fix null arg check (#11076)
+	all : [nullSafety] detect nulls in structs (#11099)
+	all : [nullSafety] more nullSafety compatibility in std (#12141)
+	all : [nullSafety] better error range for anon fields (#12188)
+	all : [nullSafety] improve control flow in binops (#12197)
+	all : [nullSafety] some inline api fixes (#12210)
+	all : [nullSafety] allow statics init in main (#12211)
+	all : [parser] fix ?? precedence (#11144)
+	all : [parser] catch duplicate #else (#11208)
+	all : [parser] check for Eof (#11368)
+	all : [parser] detect trailing metadata (#11389)
+	all : [parser] allow using anonymous functions in operator expressions (#12015)
+	all : [parser] fix format string reentrency (#12159)
+	all : [printer] use parentheses for arrow function with argument default value (#12248)
+	all : [display] avoid display issues with missing fields (#11251)
+	all : [display] don't populate cache from xml diagnostics (#11696)
+	all : [display] run some filters in diagnostics (#11220)
+	all : [display] insert EDisplay in the proper position when parsing a call expression. (#11441)
+	all : [display] use correct position for alias imports (#11516)
+	all : [display] do not silently replace missing types with Dynamic (#11760)
+	all : [display] catch 'die' calls in diagnostics (#11984)
+	all : [display] browse for EDisplay when calls fail (#11422)
+	all : [server] do not crash when client exits before end of compilation
+	hl : rework Null<Int/Float/Bool> comparison for spec/alloc (#11612)
+	hl : fix -D hl-check error pos (#11727)
+	hl : fix interface override function resolution (#11723)
+	hl : fix debug info missing for catch e:String, arg with unify error (#11717)
+	hl : fix debug pos in assign when reg reuse arg (#11808)
+	hl : use HDyn instead of erroring on recursive types (#11844)
+	hl : fix array pos check, force UInt (#11810)
+	hl : fix debug assigns not sorted when not optimize (#12006)
+	hl : allow assign struct to packed (#12043)
+	hl : consider _ prefix when checking reserved keywords (#12090)
+	hl : fix no analyzer-optimize (#12107)
+	hl : make Reflect.field work with enums (#12117)
+	hl : CArray add blit, fix unsafeSet (#12118)
+	hl : fix `__string` null access when toString return null (#12143)
+	hl : fix debug function pos in wrapper, enum, init (#12207)
+	hl : use classpaths relative_path for get_relative_path (#12219)
+	hl : fix Type.typeof(HI64) to return TInt (#12264)
+	hl : `haxe.io.BytesBuffer.__expand` check overflow (#12267)
+	hl : added hl.Api.unsafeCast, allow CArray unsafe set
+	hl : hlopt rework try-catch control flow (#11581)
+	hl : make sure -dce full will not remove @:struct fields as they match native code
+	hl : fix do-while loop in genhl+hlopt (#11461)
+	hl/c: fix reserved keywords (#11408)
+	hl/c : fix SMOD/SDIV overflow exception when INT_MIN / -1 (#11917)
+	hl/c : split hl_init_roots to prevent out of heap in msvc (#11988)
+	jvm : allow - in resource names (#11275)
+	jvm : function arguments with type parameters not generating correctly (#11362)
+	jvm : refer to static instance methods correctly (#11023)
+	jvm : annotation rework (#11398)
+	jvm : deal with complex static inits (#11998)
+	jvm : deal with local function default arguments (#12094)
+	jvm : assign dynamic method only if it's null (#11530)
+	jvm : fix invokeDynamic arity
+	jvm : use HashMap for IntMap too
+	jvm : remove redundant ordinal comparison on enums (#11591)
+	cpp : enum Type Checking (#11444)
+	cpp : fix abstract class functions with default values (#11667)
+	cpp : absolute paths with -D absolute-path (#11763)
+	cpp : fix mismatching type and getter return on pointer (#12055)
+	cpp : allow setting callback for cppia script load (#12051)
+	cpp : prevent use of AtomicObject (#11674)
+	cpp : do not store AtomicInt Gc memory in cpp.Pointer (#12236)
+	js : fix wrong calculation for Int64 (ushr / add) methods (#11868)
+	js : avoid optimizing Std.is away in api_inline (#12133)
+	js : avoid crash in HttpNodeJs when no connection (#12137)
+	js : remove weird class name omission (#11071)
+	js : fix enums parameters generation to make it compatible with advanced JS minification tools (#11328)
+	lua : emit class name even if not required (#11112)
+	lua : fix do while loops (#11807)
+	lua : fix for wrong left shift with -1 (#11889)
+	lua : fix internal loop var updates (#12193)
+	lua : fix unnecessary `_hx_do_first` (#11453)
+	lua : allow generating sourcemaps for Lua in the same format as JS (#11454)
+	lua : share metatables with other class instances (#11103)
+	neko : optimise BytesBuffer length field (#11090)
+	python : mark threads as daemon threads (#12096)
+	hl/neko/eval : don't avoid exception wrapping (#12049)
+	macro : catch eval runtime failures when decoding (#11633)
+	macro : skip abstract impl classes when applying addGlobalMetadata (#11546)
+	macro : don't exception-wrap every API function (#11374)
+	macro : don't apply @:native names (#11481)
+	macro : display failing macro for "Build failure" errors (#11635)
+	macro : delay exclude macro turning types into externs until filters (#11685)
+	macro : use better error position for null_pos uncaught exceptions (#11788)
+	macro : fail nicer if we can't find a macro function (#11776)
+	macro : deal with module fields in Compiler.exclude (#11688)
+	macro : avoid polluting lexer cache with Context.parseInlineString (#11920)
+	macro : account for sub-types in ComplexTypeTools.toComplex() (#11273)
+	macro : build metadata with basic types from current context (#11336)
+	macro : fix TVar resolution (#11339)
+	macro : don't lose static modifier in ExprTools.map (#12030)
+	eval : fix ssl cert verification failures on clean windows environments (#11838)
+	eval : fix field typo in haxe.zip.Compress (#11143)
+
 2025-05-09 4.3.7
 
 	General improvements:

+ 1 - 1
extra/haxelib_src

@@ -1 +1 @@
-Subproject commit 436bd844f90c61100b13a108912c1f7e918aead3
+Subproject commit 20199d4e6c1eec17286efdc52067ad6ff94bb3d7

+ 22 - 41
src-json/define.json

@@ -8,8 +8,7 @@
 		"name": "AdvancedTelemetry",
 		"define": "advanced-telemetry",
 		"doc": "Allow the SWF to be measured with Monocle tool.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "AnalyzerOptimize",
@@ -226,8 +225,7 @@
 		"name": "Fdb",
 		"define": "fdb",
 		"doc": "Enable full flash debug infos for FDB interactive debugging.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "FileExtension",
@@ -239,15 +237,13 @@
 		"name": "FlashStrict",
 		"define": "flash-strict",
 		"doc": "More strict typing for flash target.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "FlashUseStage",
 		"define": "flash-use-stage",
 		"doc": "Keep the SWF library initial stage.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "ForceNativeProperty",
@@ -265,8 +261,7 @@
 		"name": "HaxeBoot",
 		"define": "haxe-boot",
 		"doc": "Give the name 'haxe' to the flash boot class instead of a generated name.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "HaxeVer",
@@ -611,8 +606,7 @@
 		"name": "NetworkSandbox",
 		"define": "network-sandbox",
 		"doc": "Use local network sandbox instead of local file access one.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "NoCompilation",
@@ -636,8 +630,7 @@
 		"name": "NoFlashOverride",
 		"define": "no-flash-override",
 		"doc": "Change overrides on some basic classes into HX suffixed methods",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "NoOpt",
@@ -665,8 +658,7 @@
 		"name": "NoSwfCompress",
 		"define": "no-swf-compress",
 		"doc": "Disable SWF output compression.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "NoTraces",
@@ -764,82 +756,71 @@
 		"define": "swc",
 		"doc": "Output a SWC instead of a SWF.",
 		"platforms": ["flash"],
-		"reserved": true,
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"reserved": true
 	},
 	{
 		"name": "SwfCompressLevel",
 		"define": "swf-compress-level",
 		"doc": "Set the amount of compression for the SWF output.",
 		"platforms": ["flash"],
-		"params": ["level: 1-9"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"params": ["level: 1-9"]
 	},
 	{
 		"name": "SwfDebugPassword",
 		"define": "swf-debug-password",
 		"doc": "Set a password for debugging.",
 		"platforms": ["flash"],
-		"params": ["password"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"params": ["password"]
 	},
 	{
 		"name": "SwfDirectBlit",
 		"define": "swf-direct-blit",
 		"doc": "Use hardware acceleration to blit graphics.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "SwfGpu",
 		"define": "swf-gpu",
 		"doc": "Use GPU compositing features when drawing graphics.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "SwfHeader",
 		"define": "swf-header",
 		"doc": "define SWF header (width:height:fps:color)",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "SwfMetadata",
 		"define": "swf-metadata",
 		"doc": "Include contents of the given file as metadata in the SWF.",
 		"platforms": ["flash"],
-		"params": ["file"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"params": ["file"]
 	},
 	{
 		"name": "SwfPreloaderFrame",
 		"define": "swf-preloader-frame",
 		"doc": "Insert empty first frame in SWF.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "SwfProtected",
 		"define": "swf-protected",
 		"doc": "Compile Haxe `private` as `protected` in the SWF instead of `public`.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "SwfScriptTimeout",
 		"define": "swf-script-timeout",
 		"doc": "Maximum ActionScript processing time before script stuck dialog box displays.",
 		"platforms": ["flash"],
-		"params": ["time in seconds"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"params": ["time in seconds"]
 	},
 	{
 		"name": "SwfUseDoAbc",
 		"define": "swf-use-doabc",
 		"doc": "Use `DoAbc` SWF-tag instead of `DoAbcDefine`.",
-		"platforms": ["flash"],
-		"deprecated": "The flash target will be removed for Haxe 5"
+		"platforms": ["flash"]
 	},
 	{
 		"name": "Sys",
@@ -885,10 +866,10 @@
 		"params": ["mode: classic | pretty | indent"]
 	},
 	{
-		"name": "MessageNoColor",
-		"define": "message.no-color",
+		"name": "MessageColor",
+		"define": "message.color",
 		"signatureNeutral": true,
-		"doc": "Disable ANSI color codes in message reporting."
+		"doc": "Enable ANSI color codes in message reporting."
 	},
 	{
 		"name": "MessageAbsolutePositions",

+ 1 - 1
src/compiler/args.ml

@@ -42,7 +42,7 @@ let process_args arg_spec =
 
 let parse_args com =
 	let usage = Printf.sprintf
-		"Haxe Compiler %s - (C)2005-2024 Haxe Foundation\nUsage: haxe%s <target> [options] [hxml files and dot paths...]\n"
+		"Haxe Compiler %s - (C)2005-2025 Haxe Foundation\nUsage: haxe%s <target> [options] [hxml files and dot paths...]\n"
 		(s_version_full com.version) (if Sys.os_type = "Win32" then ".exe" else "")
 	in
 	let actx = {

+ 7 - 5
src/compiler/hxb/hxbWriter.ml

@@ -430,7 +430,7 @@ type hxb_writer = {
 	mutable field_stack : unit list;
 	mutable wrote_local_type_param : bool;
 	mutable needs_local_context : bool;
-	unbound_ttp : (string * pos, bool) Hashtbl.t;
+	unbound_ttp : (typed_type_param,unit) IdentityPool.t;
 	unclosed_mono : (tmono,unit) IdentityPool.t;
 	t_instance_chunk : Chunk.t;
 }
@@ -1091,10 +1091,12 @@ module HxbWriter = struct
 		end with Not_found ->
 			let (source, p) = perform UnboundTTP in
 			let msg = Printf.sprintf "Unbound type parameter %s while writing %s" (s_type_path ttp.ttp_class.cl_path) source in
-			if not (Hashtbl.mem writer.unbound_ttp (msg, p)) then begin
-				Hashtbl.add writer.unbound_ttp (msg, p) true;
+			(* if not (Hashtbl.mem writer.unbound_ttp (msg, p)) then begin *)
+			(* 	Hashtbl.add writer.unbound_ttp (msg, p) true; *)
+			(try ignore(IdentityPool.get writer.unbound_ttp ttp) with Not_found -> begin
+				ignore(IdentityPool.add writer.unbound_ttp ttp ());
 				writer.warn WUnboundTypeParameter msg p;
-			end;
+			end);
 			writer.wrote_local_type_param <- true;
 			Chunk.write_u8 writer.chunk 5;
 			write_path writer ttp.ttp_class.cl_path;
@@ -2340,7 +2342,7 @@ let create config warn anon_id =
 		field_stack = [];
 		wrote_local_type_param = false;
 		needs_local_context = false;
-		unbound_ttp = Hashtbl.create 0;
+		unbound_ttp = IdentityPool.create ();
 		unclosed_mono = IdentityPool.create ();
 		t_instance_chunk = Chunk.create EOM cp 32;
 	}

+ 1 - 1
src/compiler/messageReporting.ml

@@ -142,7 +142,7 @@ let compiler_pretty_message_string defines ectx cm =
 
 		let gutter_len = (try String.length (Printf.sprintf "%d" (IntMap.find cm.cm_depth ectx.max_lines)) with Not_found -> 0) + 2 in
 
-		let no_color = Define.defined defines Define.MessageNoColor in
+		let no_color = not (Define.defined defines Define.MessageColor) in
 		let c_reset = if no_color then "" else "\x1b[0m" in
 		let c_bold = if no_color then "" else "\x1b[1m" in
 		let c_dim = if no_color then "" else "\x1b[2m" in

+ 1 - 1
src/core/globals.ml

@@ -56,7 +56,7 @@ let version = 5000
 let version_major = version / 1000
 let version_minor = (version mod 1000) / 100
 let version_revision = (version mod 100)
-let version_pre = Some "alpha.1"
+let version_pre = Some "preview.1"
 
 let file_pos file = { pfile = file; pmin = 0; pmax = 0 }
 let fake_pos p = { pfile = p; pmin = -1; pmax = -1 }

+ 26 - 0
src/macro/eval/evalStdLib.ml

@@ -925,6 +925,16 @@ module StdEReg = struct
 		end
 	)
 
+	let matchedNum = vifun0 (fun vthis ->
+		let this = this vthis in
+		if Array.length this.r_groups = 0 then
+			vint 0
+		else begin
+			let substrings = this.r_groups.(0) in
+			vint (num_of_subs substrings)
+		end
+	)
+
 	let replace = vifun2 (fun vthis s by ->
 		let this = this vthis in
 		let s = decode_string s in
@@ -1554,6 +1564,10 @@ module StdIntMap = struct
 		RuntimeIntHashtbl.clear (this vthis);
 		vnull
 	)
+
+	let size = vifun0 (fun vthis ->
+		vint (RuntimeIntHashtbl.size (this vthis))
+	)
 end
 
 module StdStringMap = struct
@@ -1613,6 +1627,10 @@ module StdStringMap = struct
 		RuntimeStringHashtbl.clear (this vthis);
 		vnull
 	)
+
+	let size = vifun0 (fun vthis ->
+		vint (RuntimeStringHashtbl.size (this vthis))
+	)
 end
 
 module StdObjectMap = struct
@@ -1671,6 +1689,10 @@ module StdObjectMap = struct
 		ValueHashtbl.reset (this vthis);
 		vnull
 	)
+
+	let size = vifun0 (fun vthis ->
+		vint (ValueHashtbl.length (this vthis))
+	)
 end
 
 let random = Random.State.make_self_init()
@@ -3205,6 +3227,7 @@ let init_maps builtins =
 		"set",StdIntMap.set;
 		"toString",StdIntMap.toString;
 		"clear",StdIntMap.clear;
+		"size",StdIntMap.size;
 	];
 	init_fields builtins (["haxe";"ds"],"ObjectMap") [] [
 		"copy",StdObjectMap.copy;
@@ -3217,6 +3240,7 @@ let init_maps builtins =
 		"set",StdObjectMap.set;
 		"toString",StdObjectMap.toString;
 		"clear",StdObjectMap.clear;
+		"size",StdObjectMap.size;
 	];
 	init_fields builtins (["haxe";"ds"],"StringMap") [] [
 		"copy",StdStringMap.copy;
@@ -3229,6 +3253,7 @@ let init_maps builtins =
 		"set",StdStringMap.set;
 		"toString",StdStringMap.toString;
 		"clear",StdStringMap.clear;
+		"size",StdStringMap.size;
 	]
 
 let init_constructors builtins =
@@ -3500,6 +3525,7 @@ let init_standard_library builtins =
 		"matchedPos",StdEReg.matchedPos;
 		"matchedRight",StdEReg.matchedRight;
 		"matchSub",StdEReg.matchSub;
+		"matchedNum",StdEReg.matchedNum;
 		"replace",StdEReg.replace;
 		"split",StdEReg.split;
 	];

+ 2 - 0
src/macro/eval/evalValue.ml

@@ -56,6 +56,7 @@ module RuntimeStringHashtbl = struct
 	let mem this key = StringMap.mem key.sstring !this
 	let remove this key = this := StringMap.remove key.sstring !this
 	let clear this = this := StringMap.empty
+	let size this = StringMap.cardinal !this
 end
 
 module RuntimeIntHashtbl = struct
@@ -71,6 +72,7 @@ module RuntimeIntHashtbl = struct
 	let mem this key = IntHashtbl.mem this key
 	let remove this key = IntHashtbl.remove this key
 	let clear this = IntHashtbl.clear this
+	let size this = IntHashtbl.length this
 end
 
 type vregex = {

+ 12 - 0
std/EReg.hx

@@ -134,6 +134,18 @@ class EReg {
 		return false;
 	}
 
+	/**
+		Returns the total number of groups captures by the last matched substring.
+
+		To stay consistent with `this.matched`, the matched substring is also
+		counted as a group.
+
+		Returns `0` if no substring has been matched.
+	**/
+	public function matchedNum():Int {
+		return 0;
+	}
+
 	/**
 		Splits String `s` at all substrings `this` EReg matches.
 

+ 4 - 0
std/cpp/Int64Map.hx

@@ -110,6 +110,10 @@ import haxe.Int64;
 		#end
 	}
 
+	public function size():Int {
+		return untyped __global__.__root_hash_size(h);
+	}
+
 	#if (scriptable)
 	private function setString(key:Int64, val:String):Void {
 		untyped __int64_hash_set_string(__cpp__("HX_MAP_THIS"), key, val);

+ 9 - 0
std/cpp/_std/EReg.hx

@@ -71,6 +71,12 @@
 		return p;
 	}
 
+	public function matchedNum():Int {
+		var num = _hx_regexp_matched_num(r);
+		if (num == -1) return 0;
+		return num;
+	}
+
 	public function split(s:String):Array<String> {
 		var pos = 0;
 		var len = s.length;
@@ -190,4 +196,7 @@
 
 	@:native("_hx_regexp_matched_pos")
 	extern static function _hx_regexp_matched_pos(handle:Dynamic, match:Int):{pos:Int, len:Int};
+
+	@:native("_hx_regexp_matched_num")
+	extern static function _hx_regexp_matched_num(handle:Dynamic):Int;
 }

+ 4 - 0
std/cpp/_std/haxe/ds/IntMap.hx

@@ -107,6 +107,10 @@ package haxe.ds;
 		h = null;
 		#end
 	}
+	
+	public function size():Int {
+		return untyped __global__.__root_hash_size(h);
+	}
 
 	#if (scriptable)
 	private function setString(key:Int, val:String):Void {

+ 7 - 0
std/cpp/_std/haxe/ds/Map.hx

@@ -164,6 +164,13 @@ abstract Map<K, V>(IMap<K, V>) {
 		this.clear();
 	}
 
+	/**
+		Returns size of `this` Map.
+	**/
+	public inline function size():Int {
+		return this.size();
+	}
+
 	@:arrayAccess @:noCompletion public inline function arrayWrite(k:K, v:V):V {
 		this.set(k, v);
 		return v;

+ 4 - 0
std/cpp/_std/haxe/ds/ObjectMap.hx

@@ -106,6 +106,10 @@ class ObjectMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
 		h = null;
 		#end
 	}
+	
+	public function size():Int {
+		return untyped __global__.__root_hash_size(h);
+	}
 
 	#if (scriptable)
 	private function setString(key:Dynamic, val:String):Void {

+ 4 - 0
std/cpp/_std/haxe/ds/StringMap.hx

@@ -107,6 +107,10 @@ package haxe.ds;
 		h = null;
 		#end
 	}
+	
+	public function size():Int {
+		return untyped __global__.__root_hash_size(h);
+	}
 
 	#if (scriptable)
 	private function setString(key:String, val:String):Void {

+ 4 - 0
std/cpp/_std/haxe/ds/WeakMap.hx

@@ -99,4 +99,8 @@ class WeakMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
 		h = null;
 		#end
 	}
+	
+	public function size():Int {
+		return untyped __global__.__root_hash_size(h);
+	}
 }

+ 1 - 0
std/eval/_std/EReg.hx

@@ -30,6 +30,7 @@ extern class EReg {
 	function matchedRight():String;
 	function matchedPos():{pos:Int, len:Int};
 	function matchSub(s:String, pos:Int, len:Int = -1):Bool;
+	function matchedNum():Int;
 	function split(s:String):Array<String>;
 	function replace(s:String, by:String):String;
 	function map(s:String, f:EReg->String):String;

+ 5 - 0
std/flash/_std/EReg.hx

@@ -59,6 +59,11 @@
 		return {pos: result.index, len: (result[0] : String).length};
 	}
 
+	public function matchedNum():Int {
+		if (result == null) return 0;
+		return result.length;
+	}
+
 	public function matchSub(s:String, pos:Int, len:Int = -1):Bool {
 		return if (r.global) {
 			r.lastIndex = pos;

+ 6 - 0
std/flash/_std/haxe/ds/IntMap.hx

@@ -85,6 +85,12 @@ package haxe.ds;
 	public inline function clear():Void {
 		h = new flash.utils.Dictionary();
 	}
+	
+	public function size():Int {
+		var s = 0;
+		for(_ in keys()) s++;
+		return s;
+	}
 }
 
 // this version uses __has_next__/__forin__ special SWF opcodes for iteration with no allocation

+ 6 - 0
std/flash/_std/haxe/ds/ObjectMap.hx

@@ -80,6 +80,12 @@ class ObjectMap<K:{}, V> extends flash.utils.Dictionary implements haxe.Constrai
 		for (i in keys())
 			untyped __delete__(this, i);
 	}
+	
+	public function size():Int {
+		var s = 0;
+		for(_ in keys()) s++;
+		return s;
+	}
 }
 
 private class NativePropertyIterator {

+ 6 - 0
std/flash/_std/haxe/ds/StringMap.hx

@@ -124,6 +124,12 @@ package haxe.ds;
 		h = {};
 		rh = null;
 	}
+	
+	public function size():Int {
+		var s = 0;
+		for(_ in keys()) s++;
+		return s;
+	}
 }
 
 // this version uses __has_next__/__forin__ special SWF opcodes for iteration with no allocation

+ 6 - 0
std/flash/_std/haxe/ds/UnsafeStringMap.hx

@@ -90,6 +90,12 @@ class UnsafeStringMap<T> implements haxe.Constraints.IMap<String, T> {
 	public inline function clear():Void {
 		h = new flash.utils.Dictionary();
 	}
+	
+	public function size():Int {
+		var s = 0;
+		for(_ in keys()) s++;
+		return s;
+	}
 }
 
 // this version uses __has_next__/__forin__ special SWF opcodes for iteration with no allocation

+ 6 - 0
std/flash/_std/haxe/ds/WeakMap.hx

@@ -80,6 +80,12 @@ class WeakMap<K:{}, V> extends flash.utils.Dictionary implements haxe.Constraint
 		for (i in keys())
 			untyped __delete__(this, i);
 	}
+	
+	public function size():Int {
+		var s = 0;
+		for(_ in keys()) s++;
+		return s;
+	}
 }
 
 private class NativePropertyIterator {

+ 1 - 0
std/haxe/Constraints.hx

@@ -65,6 +65,7 @@ abstract NotVoid(Dynamic) { }
 abstract Constructible<T>(Dynamic) {}
 
 interface IMap<K, V> {
+	function size():Int;
 	function get(k:K):Null<V>;
 	function set(k:K, v:V):Void;
 	function exists(k:K):Bool;

+ 12 - 0
std/haxe/ds/BalancedTree.hx

@@ -185,6 +185,14 @@ class BalancedTree<K, V> implements haxe.Constraints.IMap<K, V> {
 		}
 	}
 
+	static function sizeLoop<K,V>(node:TreeNode<K, V>):Int {
+		if (node != null) {
+			return sizeLoop(node.left) + 1 + sizeLoop(node.right);
+		} else {
+			return 0;
+		}
+	}
+
 	function merge(t1, t2) {
 		if (t1 == null)
 			return t2;
@@ -236,6 +244,10 @@ class BalancedTree<K, V> implements haxe.Constraints.IMap<K, V> {
 	public function clear():Void {
 		root = null;
 	}
+
+	public function size():Int {
+		return sizeLoop(root);
+	}
 }
 
 /**

+ 7 - 0
std/haxe/ds/HashMap.hx

@@ -107,6 +107,13 @@ abstract HashMap<K:{function hashCode():Int;}, V>(HashMapData<K, V>) {
 		this.keys.clear();
 		this.values.clear();
 	}
+
+	/**
+		See `Map.size`
+	**/
+	public inline function size():Int {
+		return this.keys.size();
+	}
 }
 
 private class HashMapData<K:{function hashCode():Int;}, V> {

+ 2 - 0
std/haxe/ds/IntMap.hx

@@ -96,4 +96,6 @@ extern class IntMap<T> implements haxe.Constraints.IMap<Int, T> {
 		See `Map.clear`
 	**/
 	function clear():Void;
+	
+	function size():Int;
 }

+ 7 - 0
std/haxe/ds/Map.hx

@@ -160,6 +160,13 @@ abstract Map<K, V>(IMap<K, V>) {
 		this.clear();
 	}
 
+	/**
+		Returns size of `this` Map.
+	**/
+	public inline function size():Int {
+		return this.size();
+	}
+
 	@:arrayAccess @:noCompletion public inline function arrayWrite(k:K, v:V):V {
 		this.set(k, v);
 		return v;

+ 2 - 0
std/haxe/ds/ObjectMap.hx

@@ -99,4 +99,6 @@ extern class ObjectMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
 		See `Map.clear`
 	**/
 	function clear():Void;
+	
+	public function size():Int;
 }

+ 2 - 0
std/haxe/ds/StringMap.hx

@@ -96,4 +96,6 @@ extern class StringMap<T> implements haxe.Constraints.IMap<String, T> {
 		See `Map.clear`
 	**/
 	function clear():Void;
+	
+	public function size():Int;
 }

+ 7 - 0
std/haxe/ds/WeakMap.hx

@@ -104,4 +104,11 @@ class WeakMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
 		See `Map.clear`
 	**/
 	public function clear():Void {}
+
+	/**
+		See `Map.size`
+	**/
+	public function size():Int {
+		return 0;
+	}
 }

+ 23 - 0
std/hl/_std/EReg.hx

@@ -69,6 +69,23 @@ private typedef ERegValue = hl.Abstract<"ereg">;
 		return {pos: p, len: len};
 	}
 
+	public function matchedNum():Int {
+		if(last == null) return 0;
+		#if (hl_ver >= version("1.12.0"))
+		return regexp_matched_num(r);
+		#else
+		var i = 0;
+		var num = 0;
+		try {
+			while (true) {
+				if (regexp_matched_pos(r, i, null) >= 0) num++;
+				i++;
+			}
+		} catch (_:String) {}
+		return num;
+		#end
+	}
+
 	public function matchSub(s:String, pos:Int, len:Int = -1):Bool {
 		var p = regexp_match(r, s.bytes, pos, len < 0 ? s.length - pos : len);
 		if (p)
@@ -199,4 +216,10 @@ private typedef ERegValue = hl.Abstract<"ereg">;
 	@:hlNative("std", "regexp_matched_pos") static function regexp_matched_pos(r:ERegValue, n:Int, size:hl.Ref<Int>):Int {
 		return 0;
 	}
+
+	#if (hl_ver >= version("1.12.0"))
+	@:hlNative("std", "regexp_matched_num") static function regexp_matched_num(r:ERegValue):Int {
+		return 0;
+	}
+	#end
 }

+ 8 - 0
std/hl/_std/haxe/ds/IntMap.hx

@@ -88,4 +88,12 @@ class IntMap<T> implements haxe.Constraints.IMap<Int, T> {
 		h = new hl.types.IntMap();
 		#end
 	}
+	
+	public function size():Int {
+		#if (hl_ver >= version("1.12.0"))
+		return h.size();
+		#else
+		return h.keysArray().length;
+		#end
+	}
 }

+ 8 - 0
std/hl/_std/haxe/ds/ObjectMap.hx

@@ -88,4 +88,12 @@ class ObjectMap<K:{}, T> implements haxe.Constraints.IMap<K, T> {
 		h = new hl.types.ObjectMap();
 		#end
 	}
+	
+	public function size():Int {
+		#if (hl_ver >= version("1.12.0"))
+		return h.size();
+		#else
+		return h.keysArray().length;
+		#end
+	}
 }

+ 8 - 0
std/hl/_std/haxe/ds/StringMap.hx

@@ -116,4 +116,12 @@ class StringMap<T> implements haxe.Constraints.IMap<String, T> {
 		h = new hl.types.BytesMap();
 		#end
 	}
+	
+	public function size():Int {
+		#if (hl_ver >= version("1.12.0"))
+		return h.size();
+		#else
+		return h.keysArray().length;
+		#end
+	}
 }

+ 7 - 0
std/hl/types/BytesMap.hx

@@ -65,6 +65,13 @@ abstract BytesMap(BytesMapData) {
 	@:hlNative("std", "hbclear")
 	public function clear():Void {}
 	#end
+	
+	#if (hl_ver >= version("1.12.0"))
+	@:hlNative("std", "hbsize")
+	public function size():Int {
+		return 0;
+	}
+	#end
 
 	extern public inline function iterator() {
 		return new NativeArray.NativeArrayIterator<Dynamic>(valuesArray());

+ 7 - 0
std/hl/types/IntMap.hx

@@ -65,6 +65,13 @@ abstract IntMap(IntMapData) {
 	@:hlNative("std", "hiclear")
 	public function clear():Void {}
 	#end
+	
+	#if (hl_ver >= version("1.12.0"))
+	@:hlNative("std", "hisize")
+	public function size():Int {
+		return 0;
+	}
+	#end
 
 	extern public inline function iterator() {
 		return new NativeArray.NativeArrayIterator<Dynamic>(valuesArray());

+ 7 - 0
std/hl/types/ObjectMap.hx

@@ -65,6 +65,13 @@ abstract ObjectMap(ObjectMapData) {
 	@:hlNative("std", "hoclear")
 	public function clear():Void {}
 	#end
+	
+	#if (hl_ver >= version("1.12.0"))
+	@:hlNative("std", "hosize")
+	public function size():Int {
+		return 0;
+	}
+	#end
 
 	extern public inline function iterator() {
 		return new NativeArray.NativeArrayIterator<Dynamic>(valuesArray());

+ 6 - 0
std/js/_std/EReg.hx

@@ -57,6 +57,12 @@
 		return {pos: r.m.index, len: r.m[0].length};
 	}
 
+	public function matchedNum():Int {
+		if (r.m == null)
+			return 0;
+		return r.m.length;
+	}
+
 	public function matchSub(s:String, pos:Int, len:Int = -1):Bool {
 		return if (r.global) {
 			r.lastIndex = pos;

+ 10 - 0
std/js/_std/haxe/ds/IntMap.hx

@@ -82,6 +82,10 @@ package haxe.ds;
 	public inline function clear():Void {
 		m.clear();
 	}
+
+	public inline function size():Int {
+		return m.size;
+	}
 }
 #else
 @:coreApi class IntMap<T> implements haxe.Constraints.IMap<Int, T> {
@@ -159,5 +163,11 @@ package haxe.ds;
 	public inline function clear():Void {
 		h = {};
 	}
+
+	public inline function size():Int {
+		var s:Any = 0;
+		js.Syntax.code("for( var key in {0} ) if({0}.hasOwnProperty(key)) {1}++", h, s);
+		return s;
+	}
 }
 #end

+ 10 - 0
std/js/_std/haxe/ds/ObjectMap.hx

@@ -86,6 +86,10 @@ class ObjectMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
 	public inline function clear():Void {
 		m.clear();
 	}
+
+	public inline function size():Int {
+		return m.size;
+	}
 }
 #else
 @:coreApi
@@ -184,5 +188,11 @@ class ObjectMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
 	public inline function clear():Void {
 		h = {__keys__: {}};
 	}
+
+	public inline function size():Int {
+		var s:Any = 0;
+		js.Syntax.code("for( var key in {0} ) if({0}.hasOwnProperty(key)) {1}++", h.__keys__, s);
+		return s;
+	}
 }
 #end

+ 16 - 0
std/js/_std/haxe/ds/StringMap.hx

@@ -86,6 +86,10 @@ import haxe.DynamicAccess;
 	public inline function clear():Void {
 		m.clear();
 	}
+
+	public inline function size():Int {
+		return m.size;
+	}
 }
 #elseif (js_es == 5)
 @:coreApi class StringMap<T> implements IMap<String, T> {
@@ -139,6 +143,12 @@ import haxe.DynamicAccess;
 		return stringify(h);
 	}
 
+	public inline function size():Int {
+		var s:Any = 0;
+		js.Syntax.code("for( var key in {0} ) {1}++", h, s);
+		return s;
+	}
+
 	// impl
 	static function createCopy<T>(h:Dynamic):StringMap<T> {
 		var copy = new StringMap();
@@ -344,6 +354,12 @@ private class StringMapIterator<T> {
 		rh = null;
 	}
 
+	public inline function size():Int {
+		var s:Any = 0;
+		js.Syntax.code("for( var key in {0} ) if({0}.hasOwnProperty(key)) {1}++", h, s);
+		return s;
+	}
+
 	static function __init__():Void {
 		js.Syntax.code("var __map_reserved = {};");
 	}

+ 12 - 0
std/jvm/_std/EReg.hx

@@ -71,6 +71,18 @@ using StringTools;
 		return {pos: start, len: matcher.end() - start};
 	}
 
+	public function matchedNum():Int {
+		try {
+			if (matcher.group() == null) {
+				return 0;
+			} else {
+				return matcher.groupCount() + 1;
+			}
+		} catch (e) {
+			return 0;
+		}
+	}
+
 	public function matchSub(s:String, pos:Int, len:Int = -1):Bool {
 		matcher = matcher.reset(len < 0 ? s : s.substr(0, pos + len));
 		cur = s;

+ 4 - 0
std/jvm/_std/haxe/ds/IntMap.hx

@@ -88,4 +88,8 @@ class IntMap<T> implements haxe.Constraints.IMap<Int, T> {
 	public function clear():Void {
 		hashMap.clear();
 	}
+
+	public function size():Int {
+		return hashMap.size();
+	}
 }

+ 14 - 10
std/jvm/_std/haxe/ds/ObjectMap.hx

@@ -43,7 +43,7 @@ import java.NativeArray;
 	private var vals:NativeArray<V>;
 
 	private var nBuckets:Int;
-	private var size:Int;
+	private var _size:Int;
 	private var nOccupied:Int;
 	private var upperBound:Int;
 
@@ -68,7 +68,7 @@ import java.NativeArray;
 	public function set(key:K, value:V):Void {
 		var x:Int, k:Int;
 		if (nOccupied >= upperBound) {
-			if (nBuckets > (size << 1))
+			if (nBuckets > (_size << 1))
 				resize(nBuckets - 1); // clear "deleted" elements
 			else
 				resize(nBuckets + 2);
@@ -117,13 +117,13 @@ import java.NativeArray;
 			keys[x] = key;
 			vals[x] = value;
 			hashes[x] = k;
-			size++;
+			_size++;
 			nOccupied++;
 		} else if (isDel(flag)) {
 			keys[x] = key;
 			vals[x] = value;
 			hashes[x] = k;
-			size++;
+			_size++;
 		} else {
 			assert(keys[x] == key);
 			vals[x] = value;
@@ -171,10 +171,10 @@ import java.NativeArray;
 			newNBuckets = roundUp(newNBuckets);
 			if (newNBuckets < 4)
 				newNBuckets = 4;
-			if (size >= (newNBuckets * HASH_UPPER + 0.5))
-				/* requested size is too small */ {
+			if (_size >= (newNBuckets * HASH_UPPER + 0.5))
+				/* requested _size is too small */ {
 				j = 0;
-			} else { /* hash table size to be changed (shrink or expand); rehash */
+			} else { /* hash table _size to be changed (shrink or expand); rehash */
 				var nfSize = newNBuckets;
 				newHash = new NativeArray(nfSize);
 				if (nBuckets < newNBuckets) // expand
@@ -263,7 +263,7 @@ import java.NativeArray;
 
 			this.hashes = newHash;
 			this.nBuckets = newNBuckets;
-			this.nOccupied = size;
+			this.nOccupied = _size;
 			this.upperBound = Std.int(newNBuckets * HASH_UPPER + .5);
 		}
 	}
@@ -351,7 +351,7 @@ import java.NativeArray;
 			hashes[idx] = FLAG_DEL;
 			_keys[idx] = null;
 			vals[idx] = null;
-			--size;
+			--_size;
 
 			return true;
 		}
@@ -396,7 +396,7 @@ import java.NativeArray;
 		_keys = null;
 		vals = null;
 		nBuckets = 0;
-		size = 0;
+		_size = 0;
 		nOccupied = 0;
 		upperBound = 0;
 		#if !no_map_cache
@@ -410,6 +410,10 @@ import java.NativeArray;
 		maxProbe = 0;
 		#end
 	}
+	
+	public inline function size():Int {
+		return _size;
+	}
 
 	extern private static inline function roundUp(x:Int):Int {
 		--x;

+ 4 - 0
std/jvm/_std/haxe/ds/StringMap.hx

@@ -88,4 +88,8 @@ class StringMap<T> implements haxe.Constraints.IMap<String, T> {
 	public function clear():Void {
 		hashMap.clear();
 	}
+	
+	public inline function size():Int {
+		return hashMap.size();
+	}
 }

+ 15 - 11
std/jvm/_std/haxe/ds/WeakMap.hx

@@ -47,7 +47,7 @@ import java.lang.ref.ReferenceQueue;
 	private var queue:ReferenceQueue<K>;
 
 	private var nBuckets:Int;
-	private var size:Int;
+	private var _size:Int;
 	private var nOccupied:Int;
 	private var upperBound:Int;
 
@@ -96,7 +96,7 @@ import java.lang.ref.ReferenceQueue;
 					#end
 					entries[i] = null;
 					hashes[i] = FLAG_DEL;
-					--size;
+					--_size;
 				}
 			}
 		}
@@ -106,7 +106,7 @@ import java.lang.ref.ReferenceQueue;
 		cleanupRefs();
 		var x:Int, k:Int;
 		if (nOccupied >= upperBound) {
-			if (nBuckets > (size << 1))
+			if (nBuckets > (_size << 1))
 				resize(nBuckets - 1); // clear "deleted" elements
 			else
 				resize(nBuckets + 2);
@@ -154,12 +154,12 @@ import java.lang.ref.ReferenceQueue;
 		if (isEmpty(flag)) {
 			entries[x] = entry;
 			hashes[x] = k;
-			size++;
+			_size++;
 			nOccupied++;
 		} else if (isDel(flag)) {
 			entries[x] = entry;
 			hashes[x] = k;
-			size++;
+			_size++;
 		} else {
 			assert(entries[x].keyEquals(key));
 			entries[x] = entry;
@@ -207,10 +207,10 @@ import java.lang.ref.ReferenceQueue;
 			newNBuckets = roundUp(newNBuckets);
 			if (newNBuckets < 4)
 				newNBuckets = 4;
-			if (size >= (newNBuckets * HASH_UPPER + 0.5))
-				/* requested size is too small */ {
+			if (_size >= (newNBuckets * HASH_UPPER + 0.5))
+				/* requested _size is too small */ {
 				j = 0;
-			} else { /* hash table size to be changed (shrink or expand); rehash */
+			} else { /* hash table _size to be changed (shrink or expand); rehash */
 				var nfSize = newNBuckets;
 				newHash = new NativeArray(nfSize);
 				if (nBuckets < newNBuckets) // expand
@@ -279,7 +279,7 @@ import java.lang.ref.ReferenceQueue;
 
 			this.hashes = newHash;
 			this.nBuckets = newNBuckets;
-			this.nOccupied = size;
+			this.nOccupied = _size;
 			this.upperBound = Std.int(newNBuckets * HASH_UPPER + .5);
 		}
 	}
@@ -375,7 +375,7 @@ import java.lang.ref.ReferenceQueue;
 
 			hashes[idx] = FLAG_DEL;
 			entries[idx] = null;
-			--size;
+			--_size;
 
 			return true;
 		}
@@ -422,7 +422,7 @@ import java.lang.ref.ReferenceQueue;
 		entries = null;
 		queue = new ReferenceQueue();
 		nBuckets = 0;
-		size = 0;
+		_size = 0;
 		nOccupied = 0;
 		upperBound = 0;
 		#if !no_map_cache
@@ -436,6 +436,10 @@ import java.lang.ref.ReferenceQueue;
 		maxProbe = 0;
 		#end
 	}
+	
+	public inline function size():Int {
+		return _size;
+	}
 
 	extern private static inline function roundUp(x:Int):Int {
 		--x;

+ 8 - 0
std/lua/_std/EReg.hx

@@ -111,6 +111,14 @@ class EReg {
 		}
 	}
 
+	public function matchedNum():Int {
+		if (m == null) return 0;
+		else if (m[1] == null)
+			return 0;
+		else
+			return 1 + untyped __lua_length__(m[3]) / 2;
+	}
+
 	public function matchSub(s:String, pos:Int, len:Int = -1):Bool {
 		var ss = s.substr(0, len < 0 ? s.length : pos + len);
 

+ 6 - 0
std/lua/_std/haxe/ds/IntMap.hx

@@ -112,4 +112,10 @@ class IntMap<T> implements haxe.Constraints.IMap<Int, T> {
 	public inline function clear():Void {
 		h = lua.Table.create();
 	}
+	
+	public function size():Int {
+		var s = 0;
+		untyped __lua__("for _ in pairs({0}) do s = s + 1 end", h);
+		return s;
+	}
 }

+ 6 - 0
std/lua/_std/haxe/ds/ObjectMap.hx

@@ -117,4 +117,10 @@ class ObjectMap<A, B> implements haxe.Constraints.IMap<A, B> {
 		h = lua.Table.create();
 		k = lua.Table.create();
 	}
+	
+	public function size():Int {
+		var s = 0;
+		untyped __lua__("for _ in pairs({0}) do s = s + 1 end", h);
+		return s;
+	}
 }

+ 6 - 0
std/lua/_std/haxe/ds/StringMap.hx

@@ -116,4 +116,10 @@ class StringMap<T> implements haxe.Constraints.IMap<String, T> {
 	public inline function clear():Void {
 		h = lua.Table.create();
 	}
+	
+	public function size():Int {
+		var s = 0;
+		untyped __lua__("for _ in pairs({0}) do s = s + 1 end", h);
+		return s;
+	}
 }

+ 19 - 0
std/neko/_std/EReg.hx

@@ -70,6 +70,12 @@
 		return p;
 	}
 
+	public function matchedNum():Int {
+		var num = regexp_matched_num(r);
+		if(last == null || num == -1) return 0;
+		return num;
+	}
+
 	public function split(s:String):Array<String> {
 		var pos = 0;
 		var len = s.length;
@@ -206,4 +212,17 @@
 	static var regexp_match = neko.Lib.load("regexp", "regexp_match", 4);
 	static var regexp_matched = neko.Lib.load("regexp", "regexp_matched", 2);
 	static var regexp_matched_pos:Dynamic->Int->{pos: Int, len: Int} = neko.Lib.load("regexp", "regexp_matched_pos", 2);
+	static var regexp_matched_num = try neko.Lib.load("regexp", "regexp_matched_num", 1) catch (_:Dynamic) fallback_matched_num;
+
+	private static function fallback_matched_num(r:Dynamic):Int {
+		var i = 0;
+		var num = 0;
+		try {
+			while (true) {
+				if (regexp_matched(r, i) != null) num++;
+				i++;
+			}
+		} catch (_:Dynamic) {}
+		return num;
+	}
 }

+ 4 - 0
std/neko/_std/haxe/ds/IntMap.hx

@@ -90,4 +90,8 @@ package haxe.ds;
 	public inline function clear():Void {
 		h = untyped __dollar__hnew(0);
 	}
+	
+	public inline function size():Int {
+		return untyped __dollar__hcount(h);
+	}
 }

+ 4 - 0
std/neko/_std/haxe/ds/ObjectMap.hx

@@ -111,4 +111,8 @@ class ObjectMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
 		h = untyped __dollar__hnew(0);
 		k = untyped __dollar__hnew(0);
 	}
+	
+	public inline function size():Int {
+		return untyped __dollar__hcount(k);
+	}
 }

+ 4 - 0
std/neko/_std/haxe/ds/StringMap.hx

@@ -90,4 +90,8 @@ package haxe.ds;
 	public inline function clear():Void {
 		h = untyped __dollar__hnew(0);
 	}
+	
+	public inline function size():Int {
+		return untyped __dollar__hcount(h);
+	}
 }

+ 5 - 0
std/php/_std/EReg.hx

@@ -109,6 +109,11 @@ import php.*;
 		};
 	}
 
+	public function matchedNum():Int {
+		if(matches == null) return 0;
+		return Global.count(matches);
+	}
+
 	public function matchSub(s:String, pos:Int, len:Int = -1):Bool {
 		var subject = len < 0 ? s : s.substr(0, pos + len);
 		var p = Global.preg_match(reUnicode, subject, matches, Const.PREG_OFFSET_CAPTURE, pos);

+ 4 - 0
std/php/_std/haxe/ds/IntMap.hx

@@ -85,4 +85,8 @@ import php.NativeIndexedArray;
 	public inline function clear():Void {
 		data = new NativeIndexedArray();
 	}
+	
+	public inline function size():Int {
+		return Global.count(data);
+	}
 }

+ 4 - 0
std/php/_std/haxe/ds/ObjectMap.hx

@@ -94,4 +94,8 @@ class ObjectMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
 		_keys = new NativeAssocArray();
 		_values = new NativeAssocArray();
 	}
+	
+	public inline function size():Int {
+		return Global.count(_keys);
+	}
 }

+ 4 - 0
std/php/_std/haxe/ds/StringMap.hx

@@ -86,4 +86,8 @@ import haxe.Constraints;
 	public inline function clear():Void {
 		data = new NativeAssocArray();
 	}
+	
+	public inline function size():Int {
+		return Global.count(data);
+	}
 }

+ 5 - 0
std/python/_std/EReg.hx

@@ -72,6 +72,11 @@ class EReg {
 		return {pos: matchObj.start(), len: matchObj.end() - matchObj.start()};
 	}
 
+	public function matchedNum():Int {
+		if (matchObj == null) return 0;
+		return (matchObj.lastindex ?? 0) + 1;
+	}
+
 	public function matchSub(s:String, pos:Int, len:Int = -1):Bool {
 		if (len != -1) {
 			matchObj = pattern.search(s, pos, pos + len);

+ 4 - 0
std/python/_std/haxe/ds/IntMap.hx

@@ -88,4 +88,8 @@ class IntMap<T> implements haxe.Constraints.IMap<Int, T> {
 	public inline function clear():Void {
 		h.clear();
 	}
+	
+	public inline function size():Int {
+		return h.length;
+	}
 }

+ 4 - 0
std/python/_std/haxe/ds/ObjectMap.hx

@@ -87,4 +87,8 @@ class ObjectMap<K:{}, V> implements haxe.Constraints.IMap<K, V> {
 	public inline function clear():Void {
 		h.clear();
 	}
+	
+	public inline function size():Int {
+		return h.length;
+	}
 }

+ 4 - 0
std/python/_std/haxe/ds/StringMap.hx

@@ -89,4 +89,8 @@ class StringMap<T> implements haxe.Constraints.IMap<String, T> {
 	public inline function clear():Void {
 		h.clear();
 	}
+	
+	public inline function size():Int {
+		return h.length;
+	}
 }

+ 0 - 1
tests/misc/Issue11280/compile-fail.hxml

@@ -1,3 +1,2 @@
 -main Main
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/Issue11280/compile2-fail.hxml

@@ -1,3 +1,2 @@
 -main Main2
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/java/projects/Issue11095/pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile-fail.hxml
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue10623/pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile-fail.hxml
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue10844/user-defined-meta-pretty-fail.hxml

@@ -1,4 +1,3 @@
 user-defined-meta-fail.hxml
 -D message.reporting=pretty
--D message.no-color
 

+ 0 - 1
tests/misc/projects/Issue10863/compile.hxml

@@ -1,5 +1,4 @@
 -main Main
 -js js.js
 -D message.reporting=pretty
--D message.no-color
 --no-output

+ 0 - 1
tests/misc/projects/Issue11055/compile-pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile-fail.hxml
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11121/compile-fail.hxml

@@ -1,3 +1,2 @@
 --main Main
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11162/compile-fail.hxml

@@ -1,3 +1,2 @@
 -main Main
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11162/compile2-fail.hxml

@@ -1,3 +1,2 @@
 -main Main2
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11164/compile.hxml

@@ -1,3 +1,2 @@
 -main Main
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11164/compile2-fail.hxml

@@ -1,3 +1,2 @@
 -main Main2
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11164/compile3-fail.hxml

@@ -1,3 +1,2 @@
 -main Main3
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11164/compile4-fail.hxml

@@ -1,3 +1,2 @@
 -main Main4
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11164/compile5-fail.hxml

@@ -1,3 +1,2 @@
 -main Main5
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11164/compile6-fail.hxml

@@ -1,3 +1,2 @@
 -main Main6
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11164/compile7-fail.hxml

@@ -1,3 +1,2 @@
 -main Main7
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11417/compile-fail.hxml

@@ -1,3 +1,2 @@
 Main
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11417/compile1-fail.hxml

@@ -1,3 +1,2 @@
 Main1
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11439/compile3-fail.hxml

@@ -1,4 +1,3 @@
 -main Main
 -D message.reporting=pretty
--D message.no-color
 -D message.absolute-positions

+ 0 - 1
tests/misc/projects/Issue11679/compile-fail.hxml

@@ -1,3 +1,2 @@
 -main Main
--D message.no-color
 -D message.reporting=pretty

+ 0 - 1
tests/misc/projects/Issue11700/compile-fail.hxml

@@ -2,4 +2,3 @@
 -cp src
 -main Main
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11753/compile-fail.hxml

@@ -1,4 +1,3 @@
 -main Main
 --hl bin/main.hl
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue11753/compile.hxml

@@ -1,4 +1,3 @@
 -main Main2
 --hl bin/main.hl
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue12167/compile-fail.hxml

@@ -1,3 +1,2 @@
 -main Main
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue3188/compile.hxml

@@ -1,3 +1,2 @@
 --macro Main.init()
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue5644/pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile-fail.hxml
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue5949/pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile-fail.hxml
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue6065/pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile-fail.hxml
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue6584/pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile5-fail.hxml
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue6790/pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile-fail.hxml
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue6796/pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile-fail.hxml
 -D message.reporting=pretty
--D message.no-color

+ 0 - 1
tests/misc/projects/Issue6810/pretty-fail.hxml

@@ -1,3 +1,2 @@
 compile-fail.hxml
 -D message.reporting=pretty
--D message.no-color

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.