Skip to content

Releases: HaxeFoundation/haxe

2.7.0

26 Sep 07:30
Compare
Choose a tag to compare
  • 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

26 Sep 07:31
Compare
Choose a tag to compare
  • 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

26 Sep 07:33
Compare
Choose a tag to compare
  • 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

26 Sep 07:33
Compare
Choose a tag to compare
  • 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

26 Sep 07:34
Compare
Choose a tag to compare
  • 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

26 Sep 07:34
Compare
Choose a tag to compare
  • 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

26 Sep 07:35
Compare
Choose a tag to compare
  • 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

26 Sep 07:35
Compare
Choose a tag to compare
  • 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

26 Sep 07:38
Compare
Choose a tag to compare
2.0.0-rc1 Pre-release
Pre-release
  • 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