Haxe Changelog

What's new in Haxe 3.4.0 RC1

Nov 30, 2016
  • New features:
  • all : support metadata completion
  • all : support type-hint completion
  • all : added @signature display mode
  • all : finalized HashLink (HL) target
  • Bugfixes:
  • all : fixed various optimization issues
  • all : fixed various issues with side-effect detection
  • all : fixed performance drain in the DCE implementation
  • all : fixed issue with assignments when inlining constructor
  • all : fixed major inlining issue when using compilation server
  • all : fixed pattern matching evaluation order issue
  • cpp : fixed various minor code generation issues
  • js : fixed issue regarding iterating over abstracts
  • python : fixed evaluation order issue for array writing
  • General improvements and optimizations:
  • all : greatly improved support for display mode in general
  • all : made --times output look much nicer
  • all : remove calls to functions that have no side-effect
  • all : hid private property accessors from completion
  • js : updated jQuery extern (js.jquery.*) for jQuery 1.12.4 / 3.1.0 support.
  • js : jQuery extern (js.jquery.*) now includes deprecated fields marked with @:deprecated.
  • js : no longer rewrite o["s"] to o.s
  • cpp : greatly improved ObjC output and integration options
  • lua : greatly improved code output quality
  • Standard Library:
  • all : added Any type
  • all : added haxe.extern.AsVar
  • all : added haxe.macro.CompilationServer (experimental)
  • all : fixed haxe.Template.resolve

New in Haxe 3.3.0 RC1 (Aug 19, 2016)

  • New features:
  • all : support @:resolve on abstracts (#3753)
  • all : support extern abstracts and extern @:enum abstracts (#4862)
  • all : support completion on { if the expected type is a structure (#3907)
  • all : support (expr is Type) with mandatory parentheses (#2976)
  • all : allowed passing package dot-paths on command line (#4227)
  • all : support import.hx modules that define per-directory import/using directives (#1138)
  • all : support parsing of postfix ! operator (can be used by abstract operator overloading and macros) (#4284)
  • all : support parsing of ||= and &&= operators (can be used by abstract operator overloading and macros) (#4427)
  • all : support @:structInit classes (#4526)
  • all : reworked static analyzer and enabled it by default
  • flash : update flash externs to version 21
  • hl : added HL target (interpreter and C output)
  • lua: added lua target
  • js : introduced new jQuery extern (js.jquery.*) for jQuery 1.12.4 / 2.2.4 support. (#4377)
  • js : introduced new SWFObject extern (js.swfobject.SWFObject) for SWFObject 2.3.20130521 (#4451)
  • js : added js.Lib.rethrow (#4551)
  • cs/java : added -D fast_cast as an experimental feature to cleanup casts
  • Bugfixes:
  • all : properly disallowed assigning methods to structures with read-accessors.
  • all : fixed a bug related to abstract + Int/Float and implicit casts.
  • all : disallowed duplicate type parameter names.
  • all : made UInt's >>> behave like >>.
  • all : fixed various type loading issues.
  • all : fixed code generation problems with `inline`.
  • php/as3 : support run-time metadata on interfaces.
  • php : fixed argument passing to closures.
  • neko/cpp : fixed various sys.Filesystem issues with Windows drive paths.
  • as3 : fixed problem with covariant return types.
  • as3 : fixed rare problem with static initialization order.
  • python : fixed various reflection problems.
  • General improvements and optimizations:
  • all : added support for determining minimal types in Map literals.
  • all : allowed @:native on abstracts to set the name of the implementation class.
  • all : allowed creating closures on abstract inline methods.
  • all : type parameter declarations can now have metadata.
  • all : optimize Math.ceil/floor on constant arguments.
  • all : allowed extern classes to have field names being used for both static and instance.
  • all : added haxe.Constraints.Constructible.
  • all : rewrote pattern matcher to improve output in many cases.
  • python : use spaces instead of tabs to indent the output.
  • cpp : reworked backend to improve overall code output quality and fix various issues.
  • swf : added scene-tag to allow creating accessible SWF files.
  • Standard Library:
  • all : added Lambda.flatten and Lambda.flatMap.
  • all : added haxe.Constraints.Constructible.
  • sys : proper quoting/escaping (can be opt-out) for Sys.command and sys.io.Process.
  • js : added position parameter to haxe.macro.Compiler.includeFile.
  • js : removed -D embed-js.
  • js : updated HTML externs.
  • Macro features and changes:
  • macro : added overloads field to ClassField.
  • macro : added Context.getLocalImports.
  • macro : added Context.onAfterTyping.
  • macro : added Context.resolveType.

New in Haxe 3.2.1 (Aug 19, 2016)

  • Bugfixes:
  • cs/java : fixed `-dce no` issues.
  • cs/java : fixed how KExpr type parameters are generated.
  • cs : fixed enum creation by reflection problem.
  • cpp : do not rely in reflection to make interfaces work for non-first interface parents.
  • cpp : fixed setting of static variables via reflection when class has no member variables.
  • cpp : make sure StringMap's h field is kept if we use StringMap.
  • js : Avoid the use of `eval`/`Function` to get the top-level defined type/var to not break ContentSecurityPolicy.

New in Haxe 3.2.0 (May 12, 2015)

  • New features:
  • all : added @:noPrivateAccess to re-enable access restrictions within @:privateAccess
  • cpp : some support for @:nativeGen metadata
  • Bugfixes:
  • all : fixed detection of @:generic classes with constructor constraints
  • all : fixed variable initialization check issue in loop condition
  • all : fixed pattern matching on @:enum abstracts via field access (#4084)
  • all : fixed missing implicit casts in Map literals (#4100)
  • all : fixed various minor issues in haxe.xml.Parser
  • all : fixed class path issue when HAXE_STD_PATH is set (#4163)
  • js : fixed DCE issue related to printing enums (#4197)
  • js : fixed various issues with the new Bytes implementation
  • php : fixed EOF handling in FileInput.readByte (#4082)
  • cs/java : fixed Math.fround implementation (#4177)
  • cs/java : fixed some cases of Std.parseInt failing (#4132)
  • cpp : fixed compilation without -main (#4199)
  • General improvements and optimizations:
  • all : --macro keep no longer causes types to be included for compilation
  • php : support interpolation in __php__ code
  • js : added variable number of arguments support in js.html.* classes
  • js : refined new HTML externs
  • Macro features and changes:
  • macro : [breaking] synced FClosure and FInstance with the compiler updates

New in Haxe 3.2.0 RC 1 (Mar 16, 2015)

  • New features:
  • all : added --display mode for toplevel completion
  • all : added --display mode for position and usage information
  • all : allowed @:callable on abstracts to forward calls to their underlying type
  • all : allowed pattern matching on getters
  • all : allowed @:native on class fields
  • all : added static analyzer with constant propagation
  • all : added Haxe-based XML implementation
  • python : added python target
  • flash : flash player 12-14 support
  • js : added @:jsRequire and js.Lib.require
  • cs : added @:bridgeProperties
  • cs : added -D erase_generics
  • cs : added -D dll_import to import haxe-generated dlls
  • java/cs : added sys.db package
  • java/cs : clean unused files in output folder, unless -D keep_old_output is defined
  • java/cs : added -c-arg to add C#/Java compiler arguments
  • cpp : inititial implementation of cppia scripting
  • Bugfixes:
  • all : fixed nullability of abstracts over functions
  • all : fixed some equality checks between UInt and Int
  • all : fixed rare issue with abstract casts
  • all : fixed some internal code which relied on unspecified evaluation order
  • all : fixed exhaustiveness checks involving guards
  • all : fixed issue involving recursively constrained type parameters and @:generic
  • all : fixed type inference issue in map literals
  • all : fixed type inference issue when calling abstract method from within the abstract
  • all : fixed several abstract variance issues
  • all : fixed DCE issues with interface properties
  • all : fixed variance issue with function variables and dynamic methods on interfaces
  • all : fixed pattern matching on empty arrays that are typed as Dynamic
  • all : fixed various @:generic issues
  • all : fixed default cases on @:enum abstract being omitted
  • all : fixed various expression positions
  • all : disallowed break/continue in closures in loops
  • all : disallowed inline functions in value places
  • all : fixed parsing of cast followed by parentheses
  • all : fixed resource naming in case of invalid file system characters
  • all : fixed issue with inlined array declarations with field access
  • cpp : fixed issue with the side-effect handler
  • cpp : fixed issue with NativeArray in --no-inline mode
  • php : fixed issue with invalid references for closures in for-loops
  • php : fixed Reflect.compare and string comparison for numeric strings
  • cs/java : fixed various issues with -java-lib and -net-lib.
  • cs/java : added @:libType to skip checking on -java-lib / -net-lib types
  • cs/java : compilation server now works with C#/Java [experimental support]
  • cs : fixed Type.enumIndex / switch on C# native enums
  • cs : fixed reflection on COM types
  • java : fixed sys.net.Socket server implementation
  • spod : various fixes - working now on cpp, java, neko, php and c#
  • cpp : improved boot order, with enums constants first
  • General improvements and optimizations:
  • all : disallowed using super in value positions
  • all : check exhaustiveness of explicit Null types
  • all : resolve unqualified identifiers to @:enum abstract constructors
  • all : determine @:generic type parameters from constructor call if possible
  • all : properly disallowed field redefinition in extending interface
  • all : properly disallowed leading zeroes for Int and Float literals
  • all : allowed variance on interface variables
  • all : allowed pattern matching on arrays if they are typed as Dynamic
  • all : allowed pattern matching on fields of parent classes
  • all : -D doc-gen no longer implies -dce no
  • all : allowed matching against null on any enum instance
  • flash/js: optimized haxe.ds.StringMap
  • neko : create output directory if it does not exist
  • js : inline Math methods and fields
  • cs/java : optimized Reflect.fields on dynamic structures
  • cs/java : haxe will now clear output directory of old files (use -D keep-old-output to keep them)
  • cs : optimized field lookup structure
  • cs : optimized casting of parametrized types
  • cs : beautify c# code output
  • cs : added cs.Flags to manipulate C# enums that can be also flags
  • xml : improved documentation generation and fixed missing entity escaping
  • cpp : property access via Dynamic variables now requires property to be declared with @:nativeProperty
  • cpp : allow injection of code from relative paths using @:sourceFile and @:cppInclude
  • cpp : stronger typing of native functions via cpp.Function + cpp.Callable
  • cpp : moved 'Class' implementation to hx namespace to improve objective C interaction
  • cpp : added file_extension define to change the output filename extension (eg, ".mm")
  • cpp : added pre-calculated hashes to string constants to allow faster lookups
  • cpp : map implementation allows strongly typed interactions in some cases (avoids boxing)
  • cpp : added native WeakMap implementation
  • cpp : put each resource into own cpp file to allow more data/smaller files
  • Standard Library:
  • all : added typed arrays to haxe.io package
  • all : added haxe.ds.Either
  • all : added haxe.extern.Rest type for representing "rest" arguments in extern method signatures
  • all : added haxe.extern.EitherType abstract type for dealing with externs for dynamic targets
  • all : added haxe.DynamicAccess type for working with dynamic anonymous structures using a Map-like interface
  • all : [breaking] changed haxe.ds.Vector.get to return T instead of Null
  • all : added haxe.macro.Compiler.addGlobalMetadata
  • all : changed haxe.Int64 to be an abstract type instead of a class
  • js : updated HTML externs
  • Macro features and changes:
  • macro : added Context.getLocalTVars
  • macro : added TypedExprTools.iter
  • macro : added Context.getCallArguments
  • macro : changed @:genericBuild macros to prefer ComplexType returns
  • macro : [breaking] extended TAnonymous structures now have AExtend status instead of AClosed
  • macro : added Context.getDefines
  • macro : fixed file_seek from end (position was inversed)
  • macro : added Context.storeTypedExpr
  • macro : allowed type name reification
  • Deprecations:
  • all : deprecated structurally extending classes and interfaces
  • sys : Sys.command shell special chars (&|#;*?(){}$) are now properly escaped
  • java/cs : Lib.nativeType is now renamed to Lib.getNativeType

New in Haxe 3.1.3 (Feb 13, 2015)

  • Bugfixes:
  • all : fixed handling of abstract variance
  • flash : ensure correct endianess in haxe.io.BytesBuffer
  • cpp : fixed issue involving class paths with spaces
  • php : fixed >>>
  • macro : fixed haxe.macro.Compiler.keep
  • General improvements and optimizations:
  • all : give @:deprecated warnings by default, allow -D no-deprecation-warnings
  • cpp : optimized Vector implementation
  • Standard Library:
  • all : renamed Bytes.readDouble/Float to getDouble/Float to avoid inheritance issues
  • all : deprecated Bytes.readString in favor of getString
  • all : added pretty-printing to haxe.format.JsonPrinter (and haxe.Json)

New in Haxe 3.1.2 (Feb 13, 2015)

  • Bugfixes:
  • all : disallowed spaces between >>, >>>, >>= and >>>=
  • all : fix branching issue when switching on Dynamic values with only one case
  • all : added missing abstract cast call when checking for equality
  • all : fixed member fields initializations on parent classes that have no constructor
  • all : fixed toString usage of abstracts which are argument to Std.string
  • flash : avoid rare FP 12 PPAPI JIT crash
  • cpp : fixed bug in side-effect handler which caused incorrect behavior of while loops
  • js : fixed missing print function for enum values with DCE
  • macro : make sure member field initializations are respected
  • General improvements and optimizations:
  • all : cached file exist checks to speed up compilations with a lot of class paths
  • all : improved completion related to super class fields
  • all : allowed iterating on abstract which have get_length and @:arrayAccess fields
  • js : improved Type.allEnums implementation to avoid issues with obfuscation
  • Standard Library:
  • all : added haxe.io.Bytes.readDouble/Float
  • all : added haxe.io.BytesBuffer.addString/Float/Double

New in Haxe 3.1.1 (Feb 13, 2015)

  • New features:
  • all : added -D deprecation-warnings
  • all : allowed \u escape sequences in strings
  • cs : implemented haxe.CallStack
  • Bugfixes:
  • all : fixed wrong handling of "" and null in haxe.io.Path.join
  • all : fixed invalid cast-to-self generation on some abstracts
  • all : removed @:to Dynamic from UInt to avoid issues in the Map selection algorithm
  • all : fixed various issues with UInt
  • all : fixed position setter in haxe.io.BytesInput
  • all : fixed various issues with member/static extension macros
  • flash : fixed invalid override involving single-constraint type parameters
  • flash8 : fixed various bugs
  • js : fixed a problem with Std.string(null) being optimized incorrectly
  • js : fixed custom generators
  • cpp : dealt with string literals that are too long for MSVC
  • cs : fixed various issues with -net-lib

New in Haxe 3.1.0 (Feb 13, 2015)

  • New features:
  • all : allowed null-patterns in pattern matching
  • all : allowed extractors in pattern matching using => syntax
  • all : allowed extending generic type parameters
  • all : allowed (expr : type) syntax (ECheckType)
  • all : allowed @:enum and @:forward on abstracts
  • all : allowed using abstracts as static extension
  • all : allowed Class.new
  • all : added EnumValue.match
  • all : allow multiple structural extension using { > T1, > T2, fields }
  • all : inline array and structure declarations if possible
  • cs : added -net-lib
  • cs : support for native delegates
  • cs : support for attributes
  • cs : support for events
  • Standard Library:
  • all : support abstract types in haxe.rtti.XmlParser
  • all : added Std.instance
  • all : added length field to BytesBuffer, BytesOutput, BytesInput and StringBuf
  • all : added UInt for all targets
  • all : added Array.indexOf and Array.lastIndexOf
  • all : added haxe.xml.Printer
  • all : added haxe.Int32 as abstract type
  • all : added haxe.format.JsonParser/Printer
  • General improvements and optimizations:
  • all : optimized pattern matching output
  • all : allowed recursive type parameter constraints
  • all : improved support of custom @:coreType abstracts
  • all : evaluate conditional expressions in @:require
  • all : improved inline constructors by detecting more cases where it can be applied
  • js : improved inlining
  • js : always use JSON extern (compile with -D old-browser to disable)
  • js : added -D js-flatten
  • js : added -D js-es5
  • cpp : improved side-effect detection
  • Bugfixes:
  • all : inlining a parameter which has side effects will not remove it even if not used
  • all : implemented constraints check on enum and enum field type parameters
  • all : fixed memory leak in compilation server and optimized caching in general
  • all : fixed issue with invalid lowercase class name in Windows completion
  • flash : fixed font embedding with UTF8 chars
  • flash : give error if non-nullable basic types are skipped in a call
  • flash : give error if assigned parent class field values would be overwritten by super()
  • Macro features and changes:
  • macro : add Context.onAfterGenerate
  • macro : add Context.typeExpr
  • macro : add Context.getExpectedType
  • macro : add ExprTools.getValue
  • macro : allowed $v{(c:Float|Int|String)}
  • macro : resolve error line number in external files
  • macro : rewrote macros used as static extension
  • macro : exposed typed AST
  • macro : added @:genericBuild
  • macro : [breaking] first argument of ComplexType.TExtend is now Array instead of TypePath
  • macro : improved expression printing

New in Haxe 3.0.1 (Feb 13, 2015)

  • all : minor DCE bug fix

New in Haxe 3.0.0 (May 30, 2013)

  • all : added haxe.ds.BalancedTree
  • all : added haxe.ds.EnumValueMap
  • all : allow enum constructors as keys to Map
  • all : haxe.ds.ObjectMap is now correctly constrained on all targets
  • all : preliminary support of -D display-mode=usage|position|metadata
  • all : improved pattern matcher error messages
  • all : allow inline constructors
  • all : allow abstract member macros (not for @:op, @:arrayAccess, @:from, @:to)
  • all : allow abstract type parameter variance
  • all : do not generate hidden null on if without else
  • macro : made abstract structure available

New in Haxe 3.0.0 RC2 (May 30, 2013)

  • all : improved abstract support
  • all : renamed HAXE_LIBRARY_PATH to HAXE_STD_PATH
  • all : added inlinable constructors
  • all : renamed haxe.ds.FastCell to GenericCell
  • all : fixed >= operator in #if conditionals
  • all : improved completion support for Unknown results
  • all : allowed [] access for Map
  • all : added haxe.ds.WeakMap (not yet supported on all platforms)
  • all : all trace parameters are now printed by default
  • all : added --help-metas
  • all : improved completion
  • all : improved pattern matching variable capture and GADT support
  • js : cached $bind results (unique closure creation per instance)
  • js : removed --js-modern (now as default)
  • cpp : added socket.setFastSend
  • flash : update player 11.7 api
  • flash : improved @:font, @:sound and @:bitmap support
  • neko/java/cs : improved Array performances when growing with []
  • java : added -java-lib support
  • java : added sys.net package implementation (alpha)
  • java : complete java std library through hxjava haxelib
  • java/cs : added support for overloaded function declarations
  • java/cs : overload selection algorithm
  • cs : operator overloading is now accessible through Haxe
  • cs : source mapping; can be disabled with -D real_position
  • as3 : fixed rare syntax ambiguity
  • php : removed initialization of some inline fields
  • macro : fixed several issues with 'using' a macro function
  • macro : improved expression printing

New in Haxe 3.0.0 RC (May 30, 2013)

  • flash : updated player 11.4 api
  • all : allowed named functions as r-value
  • all : fixed using + overload usage
  • all : allow any type constraint for type parameters
  • all : make property type optional (when a initial value is set)
  • all : Std.random(x) when x = value) operations
  • all : StringTools.htmlEscape/unescape nows handle "/" and '/'
  • all : using and import must now appear before any type declaration in a file
  • all : no longer create variable fields for pure getter/setter properties (unless @:isVar is used)
  • all : use default get_prop/set_prop instead of custom getter/setter names for properties
  • js : added JQuery.delegateTarget
  • macro : removed EType and CType, added EMeta, modified ESwitch
  • all : allow @metadata expr
  • all : replaced haxe.rtti.Generic interface with @:generic metadata
  • all : no longer infer arrays of mixed types as Array
  • all : all type/import/enum constructor resolution now follows the shadowing principle (latest has priority)
  • all : added EReg.matchSub, renamed EReg.customReplace to map
  • all : no longer allow initialization of extern non-inline variables
  • swf : fixed out of memory errors on very large swf-lib files
  • swf : added -D swf_preloader_frame, swf_gpu, swf_direct_blit
  • swf : added -D swf_script_timeout=seconds, swf_debug_password=password, swf_metadata=file
  • swf : added -swf-lib-extern
  • swf : added @:font support (beta)
  • all : added GADT support in enums
  • all : added pattern matching (beta)
  • all : changed callback(func, args) to func.bind(args)
  • macro : added haxe.macro.ExprTools/ComplexTypeTools/TypeTools
  • macro : changed reification syntax to ${expr}, $a{array}, $p{path}, $v{value}
  • macro : allow macro @:pos(pos-expr) to inject positions for reification
  • all : added array comprehension
  • flash : Vector.length is now Int instead of UInt
  • all : moved haxe.BaseCode, haxe.Md5 and haxe.SHA1 to haxe.crypto package
  • all : disallow Void variables and arguments (still allow S -> T to S -> Void)
  • all : added Array.map/filter
  • all : added spell check suggestions for enum constructors and fields
  • all : added opaque abstract(T) types
  • all : allow operator overloading on opaque abstract types
  • all : renamed IntIter to IntIterator
  • all : added Map
  • all : added haxe.ds with StringMap, IntMap, HashMap, ObjectMap, Vector, GenericStack
  • all : removed Hash, IntHash and haxe.FastList in favor of the types in haxe.ds
  • all : haxe.xml.Parser now handles entities consistently across platforms
  • all : renamed HAXE_LIBRARY_PATH environment variable to HAXE_STD_PATH

New in Haxe 2.10 (May 30, 2013)

  • java/cs : added two new targets (beta)
  • all : fixed List and Null for first, last, pop
  • js : added js.Lib.debug()
  • flash : fixed Xml.parent() when no parent
  • flash : fixed haxe.io.Bytes.blit when len=0
  • js/php/flash8 : fixed haxe.Int32.mul overflow on 52 bits
  • js : fixed haxe.Utf8 usage (static 'length' issue)
  • all : does not allow overriding var/prop
  • flash : removed wrapping for Xml nodes, use instead specific compare when comparing two typed nodes
  • js : use new haxe.xml.Parser (faster, not based on Regexp)
  • flash : fixed completion issue with for( x in Vector )
  • all : optimized Std.int(123) and Std.int(123.45)
  • flash : bugfix for @:bitmap with 24-bits PNG (flash decode wrong colors)
  • as3 : fixed EnumValue becomes Object
  • js : removed js.Lib.isIE/isOpera (not complete, use js.JQuery.browser instead)
  • all : function parameters are nullable if they are declared with '?'
  • all : added support for finding common base types of multiple types (unify_min) for array, switch, if
  • php : do not implement duplicate interfaces
  • haxelib : added git support through haxelib git
  • all : allow derived classes to widen method visibility
  • macro : added haxe.macro.Context.getLocalMethod
  • macro : improved support of "using" macro functions
  • php : optimized Xml implementation
  • php : fixed Reflect.get/setProperty not working on PHP < 5.3
  • all : support for callback(f, _, x)
  • all : allow private access between classes that have a common base class
  • all : added Output.writeFloat/Double and Input.readFloat/Double
  • all : support for var:{x:Float} = { x = 1 } constant structure subtyping
  • all : allow contravariant function arguments and covariant function returns in overrides
  • macro : support for final Array argument as rest argument
  • macro : use top-down inference on macro calls
  • all : made "using" imply "import"
  • all : made String concat more consistent across platforms (add Std.string wrappers)
  • all : allow direct member variable/property and static property initialization
  • js : greatly reduced amount of generated code by using smarter DCE
  • php : made modulo operations more consistent
  • all : allow local functions to have both type parameters and be inlined
  • all : functions type parameters can be constraint (will be checked at end of compilation)
  • macro : use NekoVM runtime for regexps, process and xml parsing
  • flash : allow @:getter/@:setter in interfaces
  • flash : added support for "arguments" in methods
  • all : not used enums and inline var/methods are now removed by DCE
  • all : allow @:overload to use type parameters and not-absolute type paths
  • all : ensure that Std.string of arrays and enums are now consistent across platforms
  • all : allow to inline functions containing other functions
  • xml : added metadata output to xml generator
  • macro : added macro and macro : reification
  • all : renamed type(e) to $type(e)
  • as3 : support for metadata and resources, and other fixes

New in Haxe 2.09 (May 30, 2013)

  • all : optimized const == const and const != const (with different const types)
  • all : add Type.allEnums(e)
  • all : big improvements with completion speed and fixed many issues
  • flash9 : fixed -D swfprotected with swc output
  • neko : added ~ implementation
  • js : upgraded jquery version, more api overloads
  • sys : added "in" operator for spod macros, added relation access in expressions
  • macro : added ECheckType
  • macro : added TLazy for not-yet-typed class fields
  • js/php/neko : added haxe.web.Request
  • all : added Std.format
  • js : trace() output fallback on console.log if no id="haxe:trace"
  • all : ensure that Std.is(2.0,Int) returns true on all platforms
  • js : replaced $closure by function.$bind + changes in output format
  • all : allowed @:extern on static methods (no generate + no closure + force inlining)
  • all : added documentation in --display infos + display overloads in completion
  • js : removed --js-namespace, added $hxClasses
  • flash : output traces to native trace() when using -D fdb or -D nativeTrace
  • all : allowed abitrary string fields in anonymous objects
  • all : allowed optional structure fields (for constant structs)
  • all : allowed optional args in functions types (?Int -> Void)
  • all : added Reflect.getProperty/setProperty (except flash8)
  • all : added --wait and --cwd and --connect (parsed files and module caching)
  • all : fixed completion in macros calls arguments
  • all : fixed DCE removing empty but still used interfaces/superclasses
  • all : added haxe.Utf8 (crossplatform)
  • neko : Reflect now uses $fasthash (require neko 1.8.2)
  • all : allow \uXXXX in regexp (although not supported everywhere)
  • js : make difference between values and statements expressions in JSGenApi
  • js : added source mapping with -debug (replace previous stack emulation)
  • flash : added @:file("a.dat") class File extends flash.utils.ByteArray
  • flash : added @:sound("file.wav|mp3") class S extends flash.media.Sound
  • js : added --js-modern for wrapping output in a closure and ES5 strict mode
  • all : null, true and false are now keywords
  • all : neko.io.Path, cpp.io.Path and php.io.Path are now haxe.io.Path
  • neko, cpp, php : added Sys class, sys.io and sys.net packages and "sys" define
  • all : allow to access root package with std prefix (std.Type for example)
  • all : added haxe.EnumFlags
  • sys : io.File.getChar/stdin/stdout/stderr are now in Sys class
  • cpp : Reflect.getField and Reflect.setField no longer call property functions. Use Reflect.getProperty and Refelect.setProperty instead.
  • cpp : Default arguments now use Null for performance increase and interface compatibility
  • cpp : Added metadata options for injecting native cpp code into headers, classes and functions
  • php : added php.Lib.mail
  • hotfix) fixed bug in completion and disabled profiling on Linux
  • hotfix) fixed $ssize when doing new String(v) in neko
  • hotfix) fixed bug with properties in interfaces for Flash & PHP

New in Haxe 2.08 (May 30, 2013)

  • js : added js.JQuery
  • all : added @:overload
  • js : upgraded js.SWFObject from 1.4.4 inlined to 1.5 embedded
  • js : code generator beautify
  • all : ensure that modifying returned Type.getEnumConstructs array does not affect enum
  • all : allow macro typed parameters (other than Expr)
  • flash : added flash11 apis
  • neko : added support for https to haxe.Http (using hxssl library)
  • all : added haxe.Int64
  • all : added haxe.Int32 isNeg,isZero,ucompare, fixed overflows for js/flash8/php
  • all : bugfix when optimizing inlined immediate function call
  • all : fixed "using" on macro function
  • all : allowed member macros functions (called as static)
  • neko : allowed serialization of haxe.Int32 (as Int)
  • all : fixed invalid optimization of two constant numbers comparison
  • flash8 : bugfix Std.parseInt with some hex values
  • flash9 : added flash.utils.RegExp
  • all : changed @:build behavior, now takes/returns a var with anonymous fields
  • all : added @:native support for enums
  • neko : changed the result of array-assign expression (was null)
  • flash9 : no longer auto create enums from SWF classes
  • need explicit "enum" type patch)
  • all : optimized variable tracking/renaming
  • all : optimized macro engine (speed x2)
  • all : added -D macrotimes support
  • flash9 : store resources in bytes tag instead of bytecode
  • all : allow $ prefixed identifiers (for macros usage only)
  • all : allow to access modules subtype statics with pack.Mod.Type.value
  • and fixed identifier resolution order
  • flash9 : added @:bitmap("file") for simple embedding
  • all : added haxe.web.Dispatch
  • js : added js.Storage
  • all : allow this + member variables access in local functions
  • added untyped __this__ support and transition error
  • all : added haxe.macro.MacroType
  • neko : neko.Lib.serialize/unserialize now returns bytes
  • neko : added sys.db package (crossplatform with -D spod_macro support)
  • spod_macro now uses wrappers for Bytes (require neko 1.8.2)
  • php : added --php-prefix for prefixing generated files and class names
  • all : added type_expr_with_type enum support
  • php/js : fixed adding 'null' to StringBuf
  • all : added haxe.macro.Context.defineType

New in Haxe 2.05 (Feb 11, 2010)

  • js : added js.Scroll
  • js : package names are now checked at runtime to avoid clashes with existing libs
  • js : added --js-namespace to create a namespace for types that are defined in the root
  • all : updated xml output and html doc - add inline, override, dynamic functions support
  • all : added error when comparing enum with arguments
  • all : optimize constant equality for enums
  • flash9 : fixed verify error with inline + null type
  • flash9 : bugfix when overriding/implementing an method with an applied type parameter
  • php : fixed issues with classes that implement Dynamic
  • all : ignore #! line at beginning of the hx file
  • haxelib : added tags, added documentation
  • flash8 : don't use b64 encoding for text ressources
  • php : fixed bug in Hash.exists for null values and Reflect.callMethod
  • js/flash9 : throw exception in Xml.parse when unclosed node
  • all : improve return type progagation in inlined expression (fix some VerifyErrors)
  • all : optimize {const} into const
  • all : added structure / Dynamic subtyping
  • all : fixed List.map2 error when inline + optional args
  • flash9 : encode all ISO constant strings into UTF8 at compilation time
  • all : allow hxml with only -cmd statements
  • spod : moved Manager.addQuote to Connection.addValue
  • flash9 : removed .iterator() from Vector (not implementable)
  • all : fixed haxe.rtti.Generic on interfaces
  • php : fixed issue with Reflect.callMethod
  • php : fixed issue with PHP reserved word used in callbacks
  • all : bugfix with non-constant enums in switches
  • flash9 : fix for interfaces (use namespace)
  • all : "using" now works for identifiers in member methods
  • flash9 : bugfix with switch on some big integers
  • all : bugfix when optimizing (function(x) return x)(x)
  • neko : improved speed of Xml.toString()
  • all : added -D dump (for debugging purposes)
  • neko : added neko.Web.isTora
  • php : added php.db.PDO (php.db.Sqlite is now deprecated)
  • php : fixed bug in Type.getClassFields() that reported duplicated entries
  • php : fixed errror in XML error reporting
  • all : allow sub-types declarations everywhere (pack.Type.Sub)
  • all : added completion for sub-types declarations
  • all : improved completion with lambda function
  • as3 : several generation fixes
  • all : bugfix haxe.rtti.Generic on private class
  • php/js/cpp : sanitize binary expressions to prevent inlining errors
  • spod : remove object from cache when deleted

New in Haxe 1.16 (Nov 19, 2007)

  • use _sans font for default flash traces (better Linux support)
  • fixed haxe.remoting.Connection compilation for Flash