Haxe 3.0.0-rc.1

Released: 2013-02-24

Thank you for choosing Haxe!
Download for your platform and start developing today.

A newer version is available! The latest stable version is Haxe 3.4.7.


Haxe 4 is coming!
Check out the release candidate now!

Change Log

  • 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 <= 0 is now always 0
  • spod : added serialized data with SData
  • all : Dispatcher will now throw DETooManyValues
  • all : speed up neko compilation by using native compiler
  • all : allow @:generic on functions
  • all : allow constructing generic type parameters
  • swf : added support for SWC files in -swf-lib
  • macro : added Context.onTypeNotFound callback for unresolved types
  • js : no JS embed as default (use -D embed-js instead)
  • all : added abstract types (Int/Float/Bool/Void/Class/Enum/EnumValue)
  • all : added --help-defines
  • all : changed DCE with three modes : std(default), no and full
  • all : Haxe3 packages changes (see http://haxe.org/manual/haxe3)
  • all : Removed haxe.Int32, haxe.Firebug, haxe.TimerQueue
  • all : added -D key=value and #if (key >= 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