Releases: HaxeFoundation/haxe
Releases · HaxeFoundation/haxe
2.7.0
- 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
2.6.0
- 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
2.5.0
- 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
2.4.0
- 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 » 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
2.3.0
- 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
2.2.0
- 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
2.1.0
- 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
2.0.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
2.0.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