2016-05-27: 3.3.0-RC1 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 (#3975) all : fixed a bug related to abstract + Int/Float and implicit casts (#4122) all : disallowed duplicate type parameter names (#4293) all : made UInt's >>> behave like >> (#2736) all : fixed various type loading issues all : fixed code generation problems with `inline` (#1827) php/as3 : support run-time metadata on interfaces (#2042) php : fixed argument passing to closures (#2587) neko/cpp : fixed various sys.Filesystem issues with Windows drive paths (#3266) as3 : fixed problem with covariant return types (#4222) as3 : fixed rare problem with static initialization order (#3563) python : fixed various reflection problems General improvements and optimizations: all : added support for determining minimal types in Map literals (#4196) all : allowed @:native on abstracts to set the name of the implementation class (#4158) all : allowed creating closures on abstract inline methods (#4165) all : type parameter declarations can now have metadata (#3836) all : optimize Math.ceil/floor on constant arguments (#4223) all : allowed extern classes to have field names being used for both static and instance (#4376) all : added haxe.Constraints.Constructible (#4761) all : rewrote pattern matcher to improve output in many cases (#4940) python : use spaces instead of tabs to indent the output (#4299) 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 (#3553) all : added haxe.Constraints.Constructible (#4761) sys : proper quoting/escaping (can be opt-out) for Sys.command and sys.io.Process (#3603) js : added position parameter to haxe.macro.Compiler.includeFile js : removed -D embed-js (#4074) js : updated HTML externs Macro features and changes: macro : added overloads field to ClassField (#3460) macro : added Context.getLocalImports (#3560) macro : added Context.onAfterTyping (#4714) macro : added Context.resolveType 2015-10-11: 3.2.1 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 2015-05-12: 3.2.0 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 2015-03-15: 3.2.0-RC1 This release removes support for Flash 8 target 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 js : support haxe.CallStack.exceptionStack 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 2014-04-13: 3.1.3 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) 2014-03-29: 3.1.2 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 2014-03-15: 3.1.1 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 2014-03-04: 3.1.0 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 2013-09-25: 3.0.1 all : minor DCE bug fix 2013-05-25: 3.0.0 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 2013-05-08: 3.0.0-RC2 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 2013-02-24: 3.0.0-RC 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 2012-07-16: 2.10 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 2012-04-14: 2.09 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 2011-09-25: 2.08 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 2011-01-30: 2.07 all : fixed completion support with --remap all : added macros, added --interp all : removed 'here' special identifier neko : fixed neko.Web.getParamsString() returning "null" instead of "" flash9 : fixed issue with @:bind flash9 : added some missing errors flash9 : fixed TypedDictionary.exists all : added @:build and @:autoBuild for enums and classes neko : Std.parseFloat now returns NaN with invalid string php: fixed Array.push must return the current length (issue 219) php: fixed EReg.replace (issue 194) php: FileSystem.readDirectory now skips '.' and '..' to be consistent with neko (issue 226) flash9 : add trace text on stage (always over current and subclips) flash9 : delay SWF initialization until it's added on stage and stageWidth > 0 (this can be disabled with -D dontWaitStage) all : added haxe.Timer.measure all : added Lambda.indexOf and Lambda.concat all : no longer allow inline vars as metadata values neko : added getFieldsNames to neko.db.ResultSet (supported in Neko 1.8.2 mysql driver) all : added --macro and haxe.macro.Compiler all : allow macro type patches flash9 : changed --gen-hx-classes implementation now use 'haxe -swf-lib lib.swf --gen-hx-classes' instead flash9 : added @:getter and @:setter all : added @:require flash9 : moved vector utils functions from flash.Lib to flash.Vector flash9 : added support for FP 10.1 and 10.2 flash9 : added @:meta(Meta(k="v")) support all : improved #if support (fixed ! precedence) all : lookup unqualified types in all package hierarchy and not only in current package flash : set default flash version to 10 (-swf9 deprecated, use -swf-version 8 for avm1) php : added --php-lib to allow to rename the destination path of the generated lib all : added --dead-code-elimination, removes unused functions from the output (beta feature could not make in the final release) all : added @:keep to prevent --dead-code-elimination of class/method flash9 : fixed issues with loading a Haxe SWF (boot_XXXX class extends flash.Boot) all : allow to inline override methods (if the superclass method is not inlined already) all : fixed escape sequences in literal regular expressions flash9 : fixed Xml.setNodeValue all : removed -excluded, replaced by --macro excludeFile('filename') all : added --macro exclude('package') and --macro include('package') all : importing a typedef of an enum allow to access its constructors all : removed String.cca (replaced by StringTools.fastCodeAt + StringTools.isEOF) flash9 : fixed use of default values when null is passed for nullable basic types all : fixed issues with inlining and class/function type parameters all : big speedup for compiler internal completion all : added --macro keepClass('classname') flash9 : fixed Xml.nodeValue for comments (does not include ) all : added named local functions (allow self-recursion) all : use left-assoc for (==,!=,>,>=,<,<=)(==,!=,>,>=,<,<=) (&&)(&&) and (||)(||) all : give prefix unary operators higher priority than ?: php : fixed XML parsing cpp : many fixes 2010-08-14: 2.06 neko : change serializer to be able to handle instances of basic classes from other modules js : add Document.createTextNode all : bugfix with inline when modifying var with same name as one of current local flash9 : classes implementing ArrayAccess are now dynamic (including TypedDictionary) all : allow "using" on typedefs as3 : minor fixes in genas3 and --gen-hx-classes as3 : fix with readonly/writeonly properties accesses flash9 : list native getter/setters in Type API class/instance fields all : make haxe.rtti.Generic typing lazy (fix for self-recursion) all : allow haxe.rtti.Generic + inheritance all : added resource size limit to 12MB (ocaml max_string_size is 16MB + b64) flash : changes in swf handling to work with >16MB swfs flash9 : only init dynamic methods if not already defined (in subclass) std : added haxe.SHA1 compiler : added TCast, allow cast optimization on flash9/cpp as3 : fixed Std.__init__ generating 'null' compiler : fixed -no-opt flash : allow several -swf-lib no longer support automatic creation of classes for f8 swfs in f9 mode classes defined in f9 swf are not redefinable in Haxe code (use extern) flash9 : allow direct access and completion with classes defined in -swf-lib's flash9 : remove imported libraries debug infos when not compiled with -debug all : only display errors with --display if no completion matched all : some completion related errors fixed flash9 : added @:bind support all : fixed StringTools.hex with negative numbers flash9 : fixed Type.typeof(1<<28) was TFloat flash9 : use flash.XML parser for Xml class implementation neko : fixed Array.splice (was not setting null at end of array) neko : rewrote Array class using neko.NativeArray all : core classes implementation are now in std/(platform)/_std all : added @:final support all : added haxe.rtti.Meta flash9 : added flash.desktop.Clipboard* classes (added in flash10) as3 : fixed Date.toString issue in flash.Boot (now use .toStringHX instead) this will only work if .toString called explicitely on Date class all : only allow "using" on Dynamic if first parameter is Dynamic php : haxe.Http now supports Https connections when OpenSSL extension is enabled (issue 143) php : fixed enum constructors sequence (issue 142) php : added error message when using 2 fields with different cases in the same class/enum php : fixed field declaration for properties with getter and setter (issue 124) php : fixed comparison issues between strings (issue 132) php : enhanced FileInput.readLine using native fgets function (issue 103) flash9 : renamed flash.Error to flash.errors.Error php : removed eval() everywhere and simplified _hx_lambda php : fixed return type for Std.string() with integers and floats php : fixed php.Lib.rethrow all : added custom Haxe serialization php : aligned php.Web.parseMultipart signature with neko implementation cpp : Added source location and stack dump for errors in debug mode cpp : Remapped more keywords cpp : Added templated fast iterator code for arrays and FastLists cpp : Added option for tracing GC references in debug mode cpp : Switch the native string implementation from wchar_t to utf8 - for regex speed cpp : Added extra "()" to ensure correct order of operations cpp : Fixed various bugs for unusual (and not so unusual) language constructs cpp : Fixed order of enum generation from index cpp : Added __unsafe_get and __unsafe_set to Array as possible optimizations cpp : Default to mult-thread compiling on windows for cl version >= 14 cpp : Seed Math.random cpp : Use strftime for Dates cpp : Fix socket sellect passing _s cpp : Throw error when match count does not match regex cpp : Improve register capture in GC cpp : Fix Dynamic interger compare cpp : Implement makeVarArgs cpp : Fix toString for nulls in Enums and Arrays cpp : Added initial Android support cpp : Move initializers to entry functions in standard ndlls. cpp : Changes some CFFI register funtions to char*, from wchar_t* cpp : Added some initial support for v8 script target cpp : Use non-recursive GC marking to avoid overflow in big lists cpp : Added __hxcpp_obj_id 2010-01-09: 2.05 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 2009-07-26: 2.04 flash9 : fixed get_full_path error with -D fdb js : fixed Array.remove on IE flash8 : removed extra empty AS3 tag (causing some issue with F8 loadMovie) improved speed of Bytes unserializing (no need for BytesBuffer) flash9 : bugfix, Null was generating dynamic code flash9 : added error message in flash.Vector if used without flash 10 flash9 : fixed some "never" property access issues all : added "never" property access support for all platforms js : small syntax fix with value-blocks js : fixed Type.enumEq with null values js/flash8 : use &0xFF in haxe.io.Bytes.set flash9 : fixed switch on Null verify error flash9 : fixes related to UInt type + error when using Int/UInt comparison as3 : improved Vector support, inline flash.Lib.as as3 : bugfix with skip_constructor as3 : added Enum.__constructs__ (allow Type.getEnumConstructs) as3 : make all constructor parameters optional (allow Type.createEmptyInstance) as3 : bugfix with property access inside setter (stack overflow) all : Enum is now Enum all : added Type.createEnumIndex all : forbid same name for static+instance field (not supported on several platforms) all : renamed haxe.Http.request to "requestUrl" all : renamed neko.zip.Compress/Uncompress.run to "execute" spod : fix very rare issue with relations and transactions compiler : added TClosure - optimize closure creation and ease code generation cpp : added CPP platform all : added 'using' syntax neko : added 'domains' optional param to ThreadRemotingServer to answer policy-file-request php : fixed php.db.Mysql so that getResult is consistent with Neko behavior php : fixed __toString for anonymouse objects php : fixed bug in overridden dynamic functions php : fixed round to be consistent with other platforms php : fixed bug concatenating two dynamic variables php : php.Lib.rethrow now works as expected flash9 : fixed bug with SWC output and recursive types flash8 : fixed inversed arguments in __new__ neko : added neko.net.Socket.setFastSend php: fixed String.charCodeAt php: minor optimization (removed foreach from std code) php: implemented haxe.Stack php: changed exception handler to use Haxe call stack php: changed special vars to use the '\xBB' prefix instead of __ php: fixed use of reserved keywords for var names php: List iterator is now class based (faster) php: fixed behavior of class variables having assigned functions php: fixed php.db.Manager (was uncorrectly removing superclass fields) php: added support for native Iterator and IteratorAggregate interfaces all : added --display classes and --display keywords all : fixed issue with optional parameters in inline functions all : allow implementing interfaces with inline methods all : enable inlining for getter/setter/iterator/resolve/using 2009-03-22: 2.03 optimized Type.enumEq : use index instead of tag comparison for neko/flash9/php bugfix for flash.display.BitmapDataChannel and GraphicsPathCommand (allow inline static) resolve environment variable in -cmd commands added flash.Vector.indexOf and lastIndexOf fixed bug in interfaces that define the method toString (Haxe/PHP) fixed bug in haxe.io.BytesInput.readBytes in Flash9 (was throwing Eof if full buffer can't be readed) fixed implements/extends special classes when they are imported StringBuf now uses an array for JS implementation (around same on FF, faster on IE) fixed assignment of field length in anonym objects (Haxe/PHP) fixed addEventListener typing for flash9 fixed __vector__ generation for AS3 target fix with inline functions : position is now the inserted position and not the original one (better error reporting) added SWC output support fixed issues with unset of values in for loops and executing blocks that return functions (Haxe/PHP) "throw" type is now Unknown instead of Dynamic (prevent type-hole in "if A else if B else throw") added __foreach__ for flash9/as3 fixed f9 verify error with different kind of functions moved eof() from neko.io.FileOutput to FileInput added haxe.rtti.HtmlEditor added neko.db.Manager.setLockMode genAS3 : fixed Error classes issues genAS3 : fixed default basic type value in interfaces flash9 : fixed UInt default parameter verify error flash9 : fixed issue with flash.* string enums verify error compiler : allowed \r line separators for HXML files flash9 : fixed verify error with loop variable beeing a specific class compiler : prevent truncating float dynamic values to int when using numerical operations neko.db.Manager fix : synchronize fields after locking an unlocked cached object compiler : fixed issue with cascading inline+haxe.rtti.Generic optimizer : reduce constant int/float/bool expressions and immediate function calls flash9/as3/php : don't add Boot.skip_constructor test if no side effects in constructor compiler : added --no-opt to disable expr reduction compiler : separated basic and advanced commandline options compiler : fixed printing of sub-function types genHX : fixed generation of classes that extends another class (shouldn't be turned into enums) speedup Array.remove on flash9/js 2008-11-23: 2.02 Std.is(MyInterface, Class) now returns true (Haxe/PHP) php arrays are wrapped into _hx_array instances, fixes issues with references (array cast, access out of bounds ...) removed untested php classes (php.DBase, php.IniHash) added -D use_rtti_doc flash.Lib.getTimer() now returns Int and is inlined fixed php.FileSystem.stat added memory related functions to php.Sys added error when trying to extend Array, String, Date and Xml fixed handling of implements ArrayAccess fixed some minor things in flash10 api switch/for/while/do/try/if are no longer using parse_next (parenthesises requ. instead) fixed Type.typeof and Std.is in case of too much large integers for Flash6-8/JS haxe.xml.Check : treat comments the same as PCDATA spaces haxe.io.BytesData now uses strings instead of arrays for PHP compiler : optimized line calculus from ast position lexer : allow identifiers starting with _[0-9] fixed access to flash.Vector methods : use AS3 namespace (faster) bugfix in inline functions : modifying a parameter can't modify a real local var anymore bugfix in inline functions : handle class type parameters and method type parameters fixed issue with Int default value for Float parameter flash9 : bugfix when using the retval after setting a closure variable added flash.Memory API for flash10 alchemy opcodes access changed #if as3gen to #if as3 when generating as3 code fixed as3 flash.Vector generation fixed haxe.io.BytesOutput for flash9 : set default to little-endian some flash9 fixes related to extern enums updated flash.text.engine package with haxe enums flash9 : use target file path for Boot unique ID instead of random number as3 : fixed bug when anonymous field was a reserved identifier flash9 : added flash.Lib.vectorOfArray and vectorConvert for flash10 added -D check-js-packages to allow several haxe-generated js files in same page 2008-10-04: 2.01 fixed php.Sys added neko.NativeString and neko.NativeArray fixed php.Boot.__string_rec() when invoked from toString fixed null references in class constructors for array arguments fixed Type.enumParameters() and Type.typeOf() for PHP fixed SPOD/MySql for PHP fixed php.net.Socket.setTimeout(), php.io.Process fixed php.Web.setCookie() for expire time fixed php rethrow in catches and added the possibility to catch native exceptions added runttime check for php.io.Socket.shutdown (uses fclose in php 5.1.x) allowed optional Context in remoting connections fixed extern classes for flash < 8 fixed inherited protected/private properties in as3 SWF library fixed haxe.io float/double in Neko (when bigEndian was null) added __FSCommand2__ support optimized haxe.Unserializer (use faster buffer access) use "Dynamic" instead of Dynamic->Void for flash9 IEventDispatcher always use full classes paths for genAS3 prevent different get/set property accesses when implementing an interface fixed assign of dynamicfunction references in PHP Haxe/PHP now generates code for extern classes __init__ added strings literal support in haxe.Template fixed Process arguments and exitCode() in Haxe/PHP fixed hierarchy problem for classes with the name from different packages Haxe/PHP php.db.Mysql now throws an exception when tries to connect to an unexistant DB fixed blocks in if statements for Haxe/PHP added php check on the full hierarchy for colliding names added support for "g" modifier in EReg for PHP PHP now generates __toString for classes that have toString defined implemented php.Lib.getClasses() fixed duplicate fields in Type.getInstanceFields on subclass Enum is no longer defined inside Type but is standalone class fixed Date.getDay on Neko/Windows (use %w instead of %u) fixed memory leak with PHP closures fixed wrong scope in PHP closures fixed Array.reverse() in PHP fixed Reflect.compareMethods in Neko (require Neko 1.8.0) fixed flash7-8 register usage for __init__ and static variables initialization moved StringTools.baseEncode/Decode to haxe.BaseCode fixed binary resources for Flash, JS and PHP outputs fixed compiler bug with inline + optional arguments fixed Type.createInstance and createEmptyInstance with Array for flash6-8 2008-07-28: 2.0 fixed current package bug in inherited constructor type delayed type-parameter constraints check (allow mutual rec extends for SPOD) improved unclosed macro error reporting Haxe/PHP integration renamed NekoSocketConnection to SyncSocketConnection (php support) fixes in genAs3 fix for flash9 : always coerce call return type set all private+protected names from SWF lib to public (allow override+reflect) flash9 : use findprop instead of findpropstrict for 'this' access (allow dynamic) don't allow nullness changes in overrided/implemented prevent typing hole with overriden polymorphic methods added neko.vm.Mutex and neko.vm.Deque (included in neko 1.7.1) added package remapping using --remap 2008-07-17: 2.0-RC1 genneko : remove big array error (fixed in neko 1.7.1) fixed neko.net.ThreadRemotingServer.onXML genswf9 : fixed verify error with Null (was using dynamic access) small patch for jsfl support added .cca for faster string operations on Flash9/Flash/JS bugfix with inlined local variables upgraded flash9 api to flex3/player 9.0.115 override is now mandatory, no more --override dynamic is now a keyword f9dynamic is now dynamic and is mandatory on all platforms public/private/dynamic are inherited by default when overriding a method removed Reflect.empty() : use {} instead changed #else by #elseif, added #else flash9 : optimized Hash,IntHash,StringBuf (use typed value) Reflect.field/setField/callMethod , Type.enumIndex and StringBuf methods are now inlined optimized haxe.Md5 : don't use statics allow up to 8 parameters in Reflect.createInstance flash9 : some minor optimizations in haxe.Serializer added haxe.io package (removed things from neko.io) __resolve becomes resolve (and should be documented) added haxe.Int32 removed neko.Int32 removed neko.io.Input/Output/Eof/Error/Logger/Multiple/StringInput/StringOutput removed neko.net.RemotingServer changed neko apis to use haxe.io and Bytes instead of String buffers fixed big bug in js/flash8 debug stack handling complete rewrite of haxe.remoting package haxe.io.Bytes serialization support (replace deprecated string support) removed === and !== removed Std.bool fixed : Reflect.field(null) in flash9 doesn't throw an error anymore removed Type.toClass and Type.toEnum Dynamic type is now a class and not an enum moved reflection support for core types from Boot to Std fixed Type.getClassName/getEnumName/resolve for core flash9 types renamed haxe.rtti.Type to haxe.rtti.CType (with changes in prefix) added haxe.TimerQueue, added haxe.Timer.delay, remove haxe.Timer.delayed flash9 : bugfix, generated interfaces were empty fixed bug while writing block-vars in flash/js added parameters default value (constants) removed Std.resource, Std.ord, Std.chr added haxe.Resource, allow binary data in resources added Type.createEnum check that local variables get correctly initialized before usage haxe.Stack support for flash9 2008-04-05: 1.19 fixed flash9 Array.toString fixed inline return bug added haxe.rtti.Generic behavior added haxe.FastList bugfix to prevent recursive anonymous fixed some incorrectly reported "recursive inline" errors fixes in genas3 + genswf9 for Dynamic/* in methods {} is now an empty object and not an empty block fixed some verify errors left in flash9 fixed private/protected differences in gen-hx-classes genswf9 : allowed to store a Class in a typed register fixed switch-on-bool (don't use matching) genswf9 : optimized switch on ints some renames in haxe.rtti.Type added flash.utils.TypedDictionary for F9 genswf9 : fixe debug filename with inline code fixed completion for packages starting with 'a' or 'z' added flash9.Lib.as prevent double Movieclip class declaration when linking flash9 lib allow numerical operations on type parameters constraint by Float genswf9 : fixed dynamic inheritance 2008-02-23: 1.18 some optimization and bugfix for as3 codegen bugfix : allow bitmaps and fonts classes for F9 library bugfix : neko.Web.setCookie bugfix : as3 switches in -swf-lib, and enable to "repair" corrupted as3 bytecode fixed --i return value in flash9 fixed some transforms in flash9 added js.Selection simplified js.Dom (more events) added haxe.xml.Fast.innerHTML added Reflect.compare fixed "".split() in Neko (now returns [""] instead of []) bugfix for swf-lib f9 classes ordering added EReg.customReplace added neko.Lib.lazyLoad and improved neko.net.Poll for Neko 1.6.1 prevented static fields in interfaces added neko.Sys.cpuTime() fix for protected as3 classes added support for flash9 XML (in flash.xml package) added neko.vm.Tls for Neko 1.6.1 added --no-inline renamed neko.zip.File to neko.zip.Reader added neko.zip.Writer and neko.zip.CRC32 fixed multilevel Transform.block_vars added js.SWFObject fixes for if/switch with null or Null on Flash9 2008-01-13: 1.17 fixed Int32.compare, added Int32.read and Int32.write fixed type of unitialized registers in flash9 fixed Sqlite transactions (commit and rollback now restart a transaction) several flash9 optimizations flash9 debug support (with -D fdb) set align to TopLeft if not defined for flash9 added neko.vm.Gc fixed Null should not be a value bugfix in serialization format with USE_ENUM_INDEXES added apis in DateTools for time manipulation bugfix in flash9 : strictly typed local vars used in local functions always force swf version and sandbox redefinition added as3hl layer merge as3 classes use flash9 fast switch for enums always use match for enums (no switch even if constant) fixed DateTools.format %I and %l in Flash/JS securized Hash for JS and Flash compiletime F9 class generation for F8 swflib optimized for loops (Array and IntIter) added #line support more f9 Null support for "if" and array declarations more neko.Web.setCookie parameters added "inline" for methods and static vars fixed % type in flash9 2007-10-31: 1.16 use _sans font for default flash traces (better Linux support) fixed haxe.remoting.Connection compilation for Flash<8 added fix to prevent 64K identifiers limit on Flash<9 ensure order of anonymous fields initialization fixed haxe.remoting.Connection.urlConnect in JS use amortized O(1) for Neko Array implementation ndlls libraries should now use .neko() instead of __a allowed 'u' utf8 for regexp (needs Neko 1.6.1 regexp.ndll on windows) onclick and onsubmit JS events returns Bool fixed inherited constructor of extern class was always private fixed Ereg.split without 'g' flag on JS/Flash9 fixed haxe.Stack in JS without -debug added support for -D no-swf-compress fixed ByteArray.readObject fixed implements Dynamic in Flash9 removed neko.io.FileInput.eof, fixed neko.io.Input.readLine fixed haxe.Template for Flash9 added neko.Sys.command optional array of arguments removed haxe.Proxy added flash.XMLRequest fixed Type.enumParameters for Neko guaranteed order of Type.getEnumConstructs same as code used index-based dispatch for enums added Type.enumIndex fixed enum.toString for Flash and JS support for -Dnetwork-sandbox trim -cp and -resource various genas3 fixes 2007-08-29: 1.15 fixed bug with Enum.construct when Enum have type parameters change with "untyped" : arguments types are checked (because of opt select) haxedoc : fixed type parameters display fix for JS and Flash9 XML parser : allow newlines in attributes disable Flash9 resources with AS3Gen error on extra anonymous fields error on too much big neko array declaration (neko 1.6 max_stack limit) fixed Flash9 statics slots (FP 9,0,60 compatibility) fixed Flash9 Type.getClassName optional enums arguments on Flash9 are now automatically Null forbid usage of type parameters in static functions fixed Std.int with negative numbers fixed some F9 issues with Haxe-specific Array, Date and Math methods used AS3 namespace for F9 Array and String instance methods fixed F9 with uninitialized integer registers fixed F9 + operator with Dynamic/Null operands added Enum subtyping fix with remoting threadserver and exceptions fixed Flash9 dynamic runtime type field access fixed very tricky typing bug with constructors inheritance fixed some documentation related parser bug fixed stack overflow with static setter fixed package completion bug when -cp points to an not existing dir fix duplicate sandboxes tags with -swf __resolve in Haxe Remoting is now public 2007-07-25: 1.14 fixed no error when invalid "catch" expression remove variance fixed prototype bug in neko when "Main" class is defined fixed flash9 xml iterator methods bugfix in flash9 ByteArray serialization fixed genAS3 conflicting classes and interfaces preserve neko output file extension added flash.Event for Flash9 added --no-output fixed neko.net.Socket peer and host methods added neko.io.Process and neko.vm.Ui added haxe.xml.Proxy some flash6 fixes allowed simplequotes for xml attributes in Flash9 and JS flash9 optimizing compiler new faster neko binary AST added haxe.remoting.NekoSocketConnection and SocketProtocol don't allow for...in iteration with Dynamic or Unknown added flash9 resources fixed precedence of ternary operator ?: 2007-05-18: 1.13 fixed bug with local variable masking package in catch type fixed "Not_found" when enum params differs added "override" for AS3 generator fixed stack overflow in typedefs added haxe.Timer.queue, removed delayedArg (use callback instead) fixed haxe.remoting.SocketConnection (msg invertions might occur) add uniqueness check for switch constants js : HtmlCollection and MetaDom.childNodes are not true Arrays allowed semicolon after typedef declaration fixed in-loop closure usage of "for" variable for Flash and JS added neko.net.ThreadRemotingServer.onXml (to handle crossdomain xml) more accurate stack trace for socket remoting prevent some memory leak in haxe.Timer / JS added flash fullscreen support added cond?a:b syntax support added utf8 buffer api added haxelib "dev" mode renamed Http.asyncRequest to customRequest add classes to Neko module export table fixed parametrized enums for Flash6 fixed bug with completion and interfaces fixed --flash-use-stage in Flash9 2007-03-06: 1.12 added flash lite support with -D flash_lite bugfix for Unknown should Unknown prevent some exceptions in neko.net.ProxyDetect fixed ByteArray serialization added neko.Int32 added -x for fast neko scripting prevent locals from breaking class access (works with imports) fix in function overriding subtyping added haxe.remoting.FlashJsConnection fixed tar support in neko.zip.File ide completion support using --display give access to neko.net.Host ip (as Int32) fixed bug when calling super.UpperCaseMethod() hide additional flash Array methods allow leading comma in anonymous types added haxe.Public interface added AS3 code generator field lookup gives priority to superclass over interfaces improved haxedoc output fixed bug in neko regexp split/replace when empty match at eol fixed bug in flash 6-7-8 resources generation 2007-01-28: 1.11 changed StringBuf.add implementation added haxe.Firebug allowed variable return type for overriden/implemented methods display error position in front of each error line improved error messages when optional arguments not matched added neko.io.Path added neko.net.ProxyDetect bugfix in unify : prevent recursive anonymous objects haxe.Http call "prepare" only if size is known added multiple expressions in "case" serialization : deprecated old string format, use urlEncode/Decode added flash9 bytearray serialization (to binary string, for neko com) fixed Type.typeof on some flash9 instances no more dontUseCache (haxe.Serializer.USE_CACHE, default to false) small genxml/haxedoc improvements added Type.enumEq local function parameters are now inferred in several cases optional RTTI for Spod Object bugfix related to callback in neko code generator more type error stack (now includes type parameters) type system fixes in anonymous subtyping added Iterable, changed Lambda added TAR and GZIP support to neko.io.Zip compute minimal array content type fixes in enum switchs 2007-01-01: 1.10 fix in haxe.remoting.SocketConnection.readAnswer fix in postfix incr/decr and getter/setter added haxe.Http.fileTransfert for Neko fixed haxelib to 1.02 (use multipart file transfert) fixed Array.reverse added flash.Lib.getURL and fscommand for Flash9 fixed some ignored parse errors fixed minor syntax : immediate object access allow extend/implements a typedef fixed Flash9 AMF remoting fixed Flash9 bugs in Date object fixed dynamic Array typing bug allowed typedef private field access added Class base class type AsyncConnection.call callback is now optional fixed if/switch with no else/default compilation moved Reflect.createInstance to Type added Reflect.makeVarArgs haXelib 1.03 : several developers per project + web interface 2006-11-22: 1.09 added neko.vm.Module and neko.vm.Loader haxelib : allowed spaces in "run" arguments allowed Thread comparison fixed bug in SWF6 compilation allowed either Mysql or Mysql5 usage replaced db.Connection.hasFeature by db.Connection.dbName added Socket.custom field moved neko.Thread to neko.vm.Thread define haxe_109 (for api changes) fixes in haxe.remoting.Connection and haxe.Unserializer for F9 added haxe.remoting.Connection.urlConnect for JS allowed private typedef fields added neko.net.ThreadServer, ThreadRemotingServer and Poll removed neko.net.RemotingBuffer relaxed enums switchs (allow value in first case) changed "cast" codegeneration (fix some F9 usages) change in POST data handling in mod_neko (max 256K, except multipart) added neko.Web.getClientHeaders and neko.Web.flush "callback" is now a keyword fixed stack overflow when typedef = Dynamic fixed Reflect.createInstance on F9 Array : slice optional length, fixed neko slice & splice + fixed cast return type 2006-10-29: 1.08 fixed bug in flash -debug fixed Sqlite result .length fixed missing "." in OSX/Linux default classpath fixed haxelib NDLL autoloading on OSX fixed bug in deserialization of "\\\r" sequence added inheritance and fields getter/setter to xml output haxedoc 2.0 fixed neko native enum serialization fixed "all constructors matched" for enums without params fixed returned value semantics in neko (prevent remoting leak) more documentation added haxe.rtti package (classes can implement haxe.rtti.Infos) fixed windows line endings in exclude files under linux/osx fixed small bug in "cast" syntax added "callback" for partial function application added --auto-xml for future haxeFD usage fixed Reflect.isFunction minor bugfix in JS code generator new neko.net package allow recursive remoting proxys (skip instead of error) added neko.Thread and neko.Lock MultiThread classes added neko.net.ServerLoop for multiple clients handling 2006-09-11: 1.07 fixed resources in Neko typedef, override, package and f9dynamic are now keywords slighly changed error format output fixed "undefined" serialization and Type.typeof some fixes in haxelib set default classpath for non windows systems added variance fixed bug in bounded type parameters fixed scope bug in try/catch with Flash9 added remoting over XMLSocket and LocalConnection for Flash9 fixed Std.is(*,null) = false allowed >64K Haxe/neko strings -debug and stack traces support for Flash and JS minor changes in xml output 2006-08-28: 1.06 allowed extern enums use only matching construct when parameters are matched fixed bug preventing & char to be sent between JS and Flash remoting improved flash9 api (more strict) flash9 xml : use JS ReXml parser added neko.io package (Input/Output) moved neko.File and neko.Socket to neko.io package fixed flash optional arguments (when extending flash.MC) fixed neko native serialization problems variable modification does not have side effects in 'for x in a...b' jit disabled by default for neko web server enable flash7-8 libraries usage from flash9 unknown identifier become "class not found" when representing a classpath changed haxe.PosInfos handling added -debug (removed --flash-debug) effective on flash9 and neko only now added Type.typeof improved Serializer speed added Serialization support for Date, Hash, IntHash, List added flash9 and JS IE/Opera class reflection added haxe.xml.Check and haxe.xml.Fast added Xml.parent added haxelib added ArrayAccess interface 2006-08-16: 1.05 moved Md5 to haxe package. some method renamed in neko.FileSystem. added neko.remoting.Server.setLogger fixed bug in haxe.Serializer on neko (was preventing List serialization) fixed bugs in Haxe.Unserializer on neko (invalid enum tag & pbs with UTF8 strings) fixed sqlite escape & quote , added BOOL support allowed direct property access in getter/setter (prevent rec loop) allowed event-driven neko http requests forbidden "name" static in js don't allow variable redeclaration in subclasses added && || and ! in conditional compilation rules metas : removed __construct__ and class.toString. metas : __super__ and __interfaces__ now optional added Type api (seperated from Reflect) flash 9 support 2006-07-25: 1.04 added macros in haxe.Template allowed static variables access from a signature shortcut allowed new Signature when signature is a class fixed : modulo priority is now higher than mult and div fixed bug in haxe.Proxy generation fixed more stack overflows with recursive signatures fixed bug in class <: anonymous subtyping (inherited fields) override is not mandatory by default (need --override) added neko just-in-time fixed bugs in haxe.Serializer and haxe.Unserializer (enum format change) changed "signature" by "typedef" (more comprehensible) restricted objects comparisons fixed bug with js operator priority improved performances for haxe.Serializer and haxe.Unserializer fixed bug in static variable lookup (should look class in the last case) prevented several prints of "not enough arguments". 2006-06-23: 1.03 haxedoc executable now part of the distribution removed selectDB from the neko.db.Connection API added optional parameters with selection removed --no-flash-opt-args changes in SWF packages handling fixed optional leading comma in anonymous object and array values fixed bug in inheritend constructor type parameters fixed bug in type_field with inherited type parameters added haxe.Proxy added code transformations for swf/js block variables fixed very tricky bug with constraint parameters used together with polymorphic methods added selective import (import x.y.Class.InnerType) added optional enum constructor parameters added opened anonymous types (no more Unknown has no field...) fixed "MovieClip extends flash.MovieClip". added Reflect.copy added neko.Random added Date.fromString fixed bug in haxe.Unserializer, slighlty optimized haxe.Serializer added __setfield magic (complete __resolve) added explicit override when overriding methods 2006-06-08: 1.02 fixed stack overflow when recursive class <: recursive signature improved a bit commandline : allow several hxml arguments added {> Class, fields... } types declarations added cast without type (less dangerous than untyped) no stage objects by default, added --flash-use-stage added haxe.remoting.DelayedConnection added -exclude removed classpath from neko debug infos filenames fixed bug in Neko empty Array.pop and Neko EReg.replace "" fixed nodeValue for Neko XML comments, doctype, prolog improved DocView : formating, signatures, files generation added neko.zip package fixed bug in neko.File binary flags fixed problems when downloading large files using haxe.Http under Neko neko.db.Connection and neko.db.ResultSet are now interfaces added neko.db.Sqlite and neko sqlite ndll mod_neko2.ndll for Apache2 in Windows distribution fixed bug in static properties method resolution change js.Dom : use cascading signatures and improved api added haxe.unit Unit test framework 2006-05-25: 1.01 added neko.Utf8 Serializer/Unserializer now support utf8 strings allowed subtyping of prop accesses public/private when implementing an interface removed "eval" from Remoting APIs (only calls - more easy to handle). added flash6 support fixed Std.is on different platforms (interfaces implements interface) added AsyncConnection.amfConnect for flash added SWF overflow checks changed "property" to "var" don't allow monorph unification with Dynamic (more safe) allowed multiple parsing and typing errors review and completed commandline options error on backwards constant integer iterators remoting proxy constructor is now public fixed -swf-header override the swflib background color moved all remoting classes into the haxe.remoting package added haxe.remoting.LocalConnection 2006-05-17: 1.0 fixed small bugs in JS Xml Parser (empty attribute, newlines in attributes) added default Content-Type for haxe.Http in JS haxe.AsyncConnection : onError should not be call if error occur in onData fixed infinite loop if haxe.Unserializer.readDigits reach eof on JS/Flash fixed bugs in neko.Web and neko.Sys (some methods returning "null" instead of null) added neko.Socket.setBlocking for nonblocking sockets fixed bug in js generator when using cascading iterators fixed typing bug when overloading parametrized method fixed bug in js generator when "try" without curly braces. allowed enum catching added remoting proxys allowed neko.Web API commandline emulation outside mod_neko removed subtyping Anon :> Instance added signatures, Iterator is now a signature getter/setter and public/private unification allowed anonymous declaration with interface-style syntax (for signatures) optimized code generated for underscore in enum matches parameters fixed flash/js String.charCodeAt(outside) => null fixed neko charAt(outside) => "" added errors for strings containing \0 in JS and Flash added HAXE_LIBRARY_PATH environment variable support fixed interfaces inheritance : can't extend, can implement (type-sums) fixed fixed >64K resource bug in SWF fixed newline problems with Flash/JS Connection 2006-05-02: RC1 added the Socket class fixed a bug of returned value in neko with 6 or more parameters added "Missing type" error for catchs. added regular expressions (still missing Flash implementation) fixed type printing and parenthesis in type declarations different behavior when elements removed during Array.iteration fixed genswf : local variables used in for...function improved type parameters structure coherency enable usage of Spod without Transaction implemented neko.db.Transaction.isDeadlock slighly relaxed one of the javascript generator constraint added haxe.Template moved Log , PosInfos and ImportAll to haxe package completed private class/interface/enum support removed Array.indexes added __resolve compile-time support when class implement Dynamic added haxe Remoting added "module with different case" error (for windows) added Reflect.resolveClass, Reflect.resolveEnum, Reflect.setPrototype added access to classes by name in genneko added enum.__ename__ fixed Std.is(e,enum) fixed infinite loop in neko EReg split/replace and epsilon matching added neko native serialization support fixed syntax for multiple constraints in type parameter added recursive type parameters constraints (T : C constraints) updated Xml handling 2006-04-17: beta 5 fixed bug : continue in do...while changed typing order for do...while (infer condition after block) fixed JS "catch" generation fixed extending flash.* extern class fixed bug in neko generator w/ closures fixed bug in js generator (return switch need correct "this" context) fixed bug in for x in a...b : invalid local variables overridding added properties fixed bug in js generator : while...switch...break new List implementation can use static function __init__ on every platform bug fixes in Reflect.fields added Hash.remove, changed Hash/JS implementation added flash __delete__ support added neko.db.Object, Manager, Transaction fixed neko class.__interfaces__ added "assigning a value to itself" error added automatic PosInfos when is last parameter added polymorphic methods added check_flash_args support 2006-04-02: beta 4 fixed javascript events case fixed invalid use of physeq fixed + type inference added -altfmt allowed anonymous <: class subtyping relaxed unifications of expressions in "for" and "while" more methods in List syntax changes : mandatory parenthesis for "for" and "while" allowed any kind of identifier almost everywhere moved tools, flash, js and neko inside "std" no need for 0x in flash header bgcolor added -res fixed type parameter contraint holes Std.is Dynamic always returns true added Enum.toString neko : env locals can be modified in inner functions completed js keywords list in generator added Reflect.typeof prioritize neko.Lib.load static calls fixed bugs in for...in optimization with continue fixed Reflect fields, added documentation, added Class added javascript closures, fixed null closures on flash and Neko added javascript __init__ statics and js.XMLHttpRequest added neko.Stack fixed bug in Std.ord convert neko string to haxe string on catch automaticaly creates empty clips for classes extending flash.MovieClip unify stack : several meaningful unification errors added cast operation and keyword 2006-03-11: beta 3 javascript generator optimized for in interval renaming of locals (name must be unique) added uncaught exceptions handling in Flash fixed Bool.true == true and Bool.false == false on all platforms fixed matching on Bool different from enums removed -fplayer (use -D instead) and added -fheader fixed infinity is Int added "here" special identifier neko Apis : File, FileSystem, Sys added base JS API 2006-02-19: beta 2 renamed neko.db.Result to neko.db.ResultSet added Date support for Mysql results added private fields for static class anonymous types disambigous >=, >>= and >>>= fixed inheritance bug in swf and neko generators improved function parameters type error reporting. allowed variable number of args for flash.* constructors. added Math.random(), Reflect.empty() added flash.XMLSocket and flash.Timer classes completed Std class with conversion functions and others. completed flash.Lib class with flash toplevel functions. fixed bugs in neko webserver 2006-02-04: beta 1 allowed array literals to be dynamic use neko 1.2 commandline and prototypes changed #cond to #if cond for conditional compilation all fields are defined to null by default defined __class__ and other meta accesses for Flash and Neko fixed type hole for compiler-know types (should not resolve using imports) changed packages : neko.* and flash.* (with protection) added Lazy types : type the fields when they are needed with recursion untyped accesses are monomorphs, not dynamics generated __string check that toString() return an object XmlParser and other APIs for Neko fixed escaped chars in Neko generation conservative static initialization order allowed no type parameters for new Class function types carry parameter names anonymous types contain private variables (for private static accesses) added optional name for anonymous types in typer (for static accesses) private classes and enums (partial support) improved error message for invalid number of arguments flash extern classes can take variable number of args. added -swf-lib for importing SWF library added neko.db package 2005-12-23: alpha 5 added -main commandline parameter catches are now working with Neko restricted catch types for type-safety added constructor inheritance + check if superconstructor is called allowed Dynamic-only subtyping on type parameters added method closures to Neko generation added class Reflect added License : libraries are BSD added -xml documentation output allowed class instance :> anonymous subtyping 2005-12-10: alpha 4 forbid break and continue outside loops fixed SWF generation bugs added SWF "extends" support added method closures added some flash lowlevel operations (__xxx__) added Log, LogInfos and trace added Neko generation fixed problems with conditional compilation macros 2005-11-30: alpha 3 added Flash extern classes Boot initialization added "untyped" added conditional compilation added interfaces changed iterators from closures to objects added (XML)Node and XmlParser for Flash 2005-11-25: alpha 2 swf generation (missing iterators) some typing fixes 2005-11-17: alpha 1b fix some bugs changed package tests.lang 2005-11-14: alpha 1 lexer parser typer