CHANGES.txt 156 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327
  1. 2025-07-04 5.0.0-preview.1
  2. Removal:
  3. all : remove 32 bit windows builds (#11541)
  4. all : move `sys.db`, `php.Web` and `neko.Web` to `hx4compat` lib (#11385)
  5. all : move `haxe.remoting` to `hx4compat` lib (#11387)
  6. all : remove haxe.Ucs2 (#12103)
  7. hl : move some hl.Format into lib format/heaps (#11869)
  8. java/cs : remove C# and Java targets (#11551)
  9. macro : remove some API from haxe.macro.Compiler (#11540)
  10. macro : remove CompilationServer.setModuleCheckPolicy options (#11615)
  11. Breaking changes:
  12. all : rework module resolution (#11168)
  13. all : don't infer string on concat (#11318)
  14. all : delay typer creation to after init macros (#11323)
  15. all : disallow partial resolution (pack.SubType access when module is imported) (#11338)
  16. all : don't create a class field for every enum field (#11452)
  17. all : only set cf_expr_unoptimized if we think we need it (#11462)
  18. all : fix the way optional arguments are handled when using `bind` (#11533)
  19. all : don't bind foreign type parameters in definition mode (#11658)
  20. all : disallow duplicate argument name (#11978)
  21. all : fix types in null coal null check (#11726)
  22. macro : Build macro order vs inheritance (#11582)
  23. macro : disallow defining types into existing modules (#11845)
  24. General improvements:
  25. all : hxb (new server cache + pre compilation) (#11504)
  26. all : rework module resolution (#11168)
  27. all : add "Custom" target (#11128)
  28. all : private getters/setters (#12204)
  29. all : allow boolean operators in patterns (#11157)
  30. all : explicitly apply default type parameter (#12002)
  31. all : allow modification of loop var in IntIterator loop (#8581)
  32. all : support overloading true extern constructors (#11979)
  33. all : support f?.bind() (#11571)
  34. all : rework defines (#12130, #12251)
  35. all : abort compilation on first error with -D fail-fast (#11609)
  36. all : add position and error message to decode_error.txt (#12128)
  37. all : add configuration options for -D dump, set -D dump-ignore-var-ids by default (#12150, #12130)
  38. all : add support for binary literal (#11627)
  39. all : add support for --undefine to remove define (#11400)
  40. all : add optional WUnsafeEnumEquality (#11813)
  41. all : build macOS universal binaries (#11572)
  42. all : [experiments] run parts of the compiler in parallel with `-D enable-parallelism` (#12070, #12134, #12081, #12252)
  43. all : [std] add enum as haxe.Unit (#11563)
  44. all : [std] add BigInteger type (#10750)
  45. all : [std] add haxe.runtime.Copy (#11863)
  46. all : [std] haxe.Timer.milliseconds (#12260)
  47. all : [std] String.indexOf (#7402, #11569)
  48. all : [std] add StringBuf.clear() (#11848)
  49. all : [std] allow setting haxe.Exception.stack (#12213)
  50. all : [std] Serializer: implement reset method (#12068)
  51. all : [std] use Vectors in haxe.zip (#11034)
  52. all : [messageReparting] pretty errors as default message reporting (#11587)
  53. all : [messageReporting] add config to use absolute positions (#11439)
  54. all : [display] diagnostics as json rpc (#11412)
  55. all : [display] report null safety errors in diagnostics (#11729)
  56. all : [display] add server/resetCache (#11482)
  57. all : [server] add support for ipv6 addresses for --wait/--connect (#11310)
  58. all : [server] improve GC stats tracking (#12246)
  59. all : [server] remove custom ocaml GC handling (#12287)
  60. hl : bump default hl_version to 1.15 for haxe 5 (#12065)
  61. hl : add std.hl.Gc.getLiveObjects (#11599)
  62. hl : add element type to HArray (#11734)
  63. hl : optimize single char String and adding with empty string
  64. hl : added guid type
  65. hl : hl.Profile.event give code some meaning with enum abstract (#12262)
  66. jvm : improve NativeOutput performance (#11944)
  67. jvm : functional interface support (#11019)
  68. cpp : add Tracy profiler extern (#11772)
  69. cppia : generate full debug source paths (#12053)
  70. js : use native maps when ES6 is enabled (#11698)
  71. js : remove String.fromCodePoint polyfill for es6 (#11713)
  72. js : add the canParse() and parse() static methods to URL (#11802)
  73. js : add externs for the Screen Wake Lock API (#11421)
  74. js : add externs for the Web Share API (#11423)
  75. js : update Object and Symbol externs (#11331)
  76. js : clean up ES5 implementation of StringMap.keys() (#11895)
  77. js : add new WebGLPolygonMode extension (#12026)
  78. js : add js.lib.NativeStringTools (#12127)
  79. php : add externs for some POSIX functions (#11769)
  80. macro : delay typer creation to after init macros (#11323)
  81. macro : added Context.resolveComplexType
  82. macro : add TypeTools.toBaseType() (#11153)
  83. macro : add TypeTools.resolveTypeParameters (#11053)
  84. macro : add PositionTools.toZeroRange(pos) to avoid messing up display requests (#11892)
  85. macro : apply @:using after build macros (#11625)
  86. macro : include module path in virtual file names (#11852)
  87. macro : respect imports on @:build (#11373)
  88. macro : [server] expose compilation server stats (#12290)
  89. macro : [server] add memory print that support details for macro interpreter (#11644)
  90. eval : atomics (#12275)
  91. Bugfixes:
  92. all : fix @:wrappedException type (#11140)
  93. all : don't allow null-only switches if we need a value (#11366)
  94. all : detect recursive hxmls (#11580)
  95. all : use local name instead of temp name for ?? (#11464)
  96. all : fix local statics vs display requests (#11849)
  97. all : fix unclosed monomorphs in function signature (#11381)
  98. all : update target config after init macros (#11985)
  99. all : local static vs local functions (#11999)
  100. all : fix null coal assign (#11980)
  101. all : static extension with name `_new` resolving incorrectly to abstract new (#11994)
  102. all : allow Single div without cast to Float (#12039)
  103. all : recurse into singularly constrained monos for field collection (#11918)
  104. all : also skip mono ids if -D dump-ignore-var-ids (#12126)
  105. all : renamed `-D *-times` defines to `-D times.*` (#12101)
  106. all : apply @:haxe.warning rules to cached warnings too (#11775)
  107. all : avoid some capture variable wrapping in non-loops (#12235)
  108. all : @:noCompletion vs. static extensions (#12254)
  109. all : use available terminal columns instead of hardcoded 80 columns (#11404)
  110. all : track actual path position for path.Path<Params> (#11405)
  111. all : set --run args only when we're actually running (#11524)
  112. all : [std] do not close unowned socket in Http.customRequest (#12069)
  113. all : [std] fix zipfiles not having data descriptor after filedata (#11686)
  114. all : [std] implement EnumValueMap.compareArg properly (#12139)
  115. all : [std] Syntax.code: remove double curly braces escaping (#11231)
  116. all : [typer] check default type parameter constraints (#11556)
  117. all : [typer] fix custom array access temp var handling (#11248)
  118. all : [typer] valid redefinition rework (#11657)
  119. all : [typer] give better "Cannot extend by" error (#11352)
  120. all : [typer] delay unknown ident errors in overloads (#11372)
  121. all : [typer] support safe nav for assign ops (#11379)
  122. all : [typer] don't allow @:structInit to call abstract constructors (#11342)
  123. all : [typer] align null coalescing top down inference with normal if/else (#11425)
  124. all : [typer] deal with for (i in throw) (#11403)
  125. all : [typer] type operator lhs against expected type (#11428)
  126. all : [typer] consume bypass_accessor only if it's actually relevant (#11488)
  127. all : [typer] don't hide abstract type when resolving through @:forward (#11526)
  128. all : [typer] don't consider @:structInit + @:from when inferring (#11535)
  129. all : [typer] avoid lhs cast on ambiguous operators (#12146)
  130. all : [typer] abstract vs. mono hard unification error (#12182)
  131. all : [typer] follow through abstract underlying types for null-checks when matching (#11716)
  132. all : [typer] fix Monomorph vs Null<T> inference issue (#11851)
  133. all : [typer] fail softer on multiple read/write resolve methods (#11757)
  134. all : [typer] always allow local function type parameters (#11520)
  135. all : [typer] disallow ?.new and ?.match (#11799)
  136. all : [generics] use tclass instead of TType.t for substitution (#11784)
  137. all : [generics] ensure type substitution happens for closures too (#12173)
  138. all : [xml] fix when string ends with escape sequence (#11883)
  139. all : [xml] fixed xml cased escape sequences (#11914)
  140. all : [analyzer] inline ctors improved handling of ignored exprs (#11356)
  141. all : [analyzer] fix captured checks in constructor inliner (#11356)
  142. all : [analyzer] fix for inline constructors bug (#12169)
  143. all : [analyzer] fix stack overflow on empty TBlock (#11393)
  144. all : [analyzer] disallow Void in compound block expressions (#11391)
  145. all : [analyzer] reconstruct binops in return (#12243)
  146. all : [analyzer] send all types to analyzer for purity inference (#12224)
  147. all : [analyzer] const propagation typing fixes (#12059)
  148. all : [filters] avoid overlap work if we reserve anyway (#11174)
  149. all : [filters] recurse into expressions of local statics (#11469)
  150. all : [nullSafety] don't check return expr in assignments (#11114)
  151. all : [nullSafety] only process fields that do not have CfPostProcessed flag (#11185)
  152. all : [nullSafety] fix null arg check (#11076)
  153. all : [nullSafety] detect nulls in structs (#11099)
  154. all : [nullSafety] more nullSafety compatibility in std (#12141)
  155. all : [nullSafety] better error range for anon fields (#12188)
  156. all : [nullSafety] improve control flow in binops (#12197)
  157. all : [nullSafety] some inline api fixes (#12210)
  158. all : [nullSafety] allow statics init in main (#12211)
  159. all : [parser] fix ?? precedence (#11144)
  160. all : [parser] catch duplicate #else (#11208)
  161. all : [parser] check for Eof (#11368)
  162. all : [parser] detect trailing metadata (#11389)
  163. all : [parser] allow using anonymous functions in operator expressions (#12015)
  164. all : [parser] fix format string reentrency (#12159)
  165. all : [printer] use parentheses for arrow function with argument default value (#12248)
  166. all : [display] avoid display issues with missing fields (#11251)
  167. all : [display] don't populate cache from xml diagnostics (#11696)
  168. all : [display] run some filters in diagnostics (#11220)
  169. all : [display] insert EDisplay in the proper position when parsing a call expression. (#11441)
  170. all : [display] use correct position for alias imports (#11516)
  171. all : [display] do not silently replace missing types with Dynamic (#11760)
  172. all : [display] catch 'die' calls in diagnostics (#11984)
  173. all : [display] browse for EDisplay when calls fail (#11422)
  174. all : [server] do not crash when client exits before end of compilation
  175. hl : rework Null<Int/Float/Bool> comparison for spec/alloc (#11612)
  176. hl : fix -D hl-check error pos (#11727)
  177. hl : fix interface override function resolution (#11723)
  178. hl : fix debug info missing for catch e:String, arg with unify error (#11717)
  179. hl : fix debug pos in assign when reg reuse arg (#11808)
  180. hl : use HDyn instead of erroring on recursive types (#11844)
  181. hl : fix array pos check, force UInt (#11810)
  182. hl : fix debug assigns not sorted when not optimize (#12006)
  183. hl : allow assign struct to packed (#12043)
  184. hl : consider _ prefix when checking reserved keywords (#12090)
  185. hl : fix no analyzer-optimize (#12107)
  186. hl : make Reflect.field work with enums (#12117)
  187. hl : CArray add blit, fix unsafeSet (#12118)
  188. hl : fix `__string` null access when toString return null (#12143)
  189. hl : fix debug function pos in wrapper, enum, init (#12207)
  190. hl : use classpaths relative_path for get_relative_path (#12219)
  191. hl : fix Type.typeof(HI64) to return TInt (#12264)
  192. hl : `haxe.io.BytesBuffer.__expand` check overflow (#12267)
  193. hl : added hl.Api.unsafeCast, allow CArray unsafe set
  194. hl : hlopt rework try-catch control flow (#11581)
  195. hl : make sure -dce full will not remove @:struct fields as they match native code
  196. hl : fix do-while loop in genhl+hlopt (#11461)
  197. hl/c: fix reserved keywords (#11408)
  198. hl/c : fix SMOD/SDIV overflow exception when INT_MIN / -1 (#11917)
  199. hl/c : split hl_init_roots to prevent out of heap in msvc (#11988)
  200. jvm : allow - in resource names (#11275)
  201. jvm : function arguments with type parameters not generating correctly (#11362)
  202. jvm : refer to static instance methods correctly (#11023)
  203. jvm : annotation rework (#11398)
  204. jvm : deal with complex static inits (#11998)
  205. jvm : deal with local function default arguments (#12094)
  206. jvm : assign dynamic method only if it's null (#11530)
  207. jvm : fix invokeDynamic arity
  208. jvm : use HashMap for IntMap too
  209. jvm : remove redundant ordinal comparison on enums (#11591)
  210. cpp : enum Type Checking (#11444)
  211. cpp : fix abstract class functions with default values (#11667)
  212. cpp : absolute paths with -D absolute-path (#11763)
  213. cpp : fix mismatching type and getter return on pointer (#12055)
  214. cpp : allow setting callback for cppia script load (#12051)
  215. cpp : prevent use of AtomicObject (#11674)
  216. cpp : do not store AtomicInt Gc memory in cpp.Pointer (#12236)
  217. js : fix wrong calculation for Int64 (ushr / add) methods (#11868)
  218. js : avoid optimizing Std.is away in api_inline (#12133)
  219. js : avoid crash in HttpNodeJs when no connection (#12137)
  220. js : remove weird class name omission (#11071)
  221. js : fix enums parameters generation to make it compatible with advanced JS minification tools (#11328)
  222. lua : emit class name even if not required (#11112)
  223. lua : fix do while loops (#11807)
  224. lua : fix for wrong left shift with -1 (#11889)
  225. lua : fix internal loop var updates (#12193)
  226. lua : fix unnecessary `_hx_do_first` (#11453)
  227. lua : allow generating sourcemaps for Lua in the same format as JS (#11454)
  228. lua : share metatables with other class instances (#11103)
  229. neko : optimise BytesBuffer length field (#11090)
  230. python : mark threads as daemon threads (#12096)
  231. hl/neko/eval : don't avoid exception wrapping (#12049)
  232. macro : catch eval runtime failures when decoding (#11633)
  233. macro : skip abstract impl classes when applying addGlobalMetadata (#11546)
  234. macro : don't exception-wrap every API function (#11374)
  235. macro : don't apply @:native names (#11481)
  236. macro : display failing macro for "Build failure" errors (#11635)
  237. macro : delay exclude macro turning types into externs until filters (#11685)
  238. macro : use better error position for null_pos uncaught exceptions (#11788)
  239. macro : fail nicer if we can't find a macro function (#11776)
  240. macro : deal with module fields in Compiler.exclude (#11688)
  241. macro : avoid polluting lexer cache with Context.parseInlineString (#11920)
  242. macro : account for sub-types in ComplexTypeTools.toComplex() (#11273)
  243. macro : build metadata with basic types from current context (#11336)
  244. macro : fix TVar resolution (#11339)
  245. macro : don't lose static modifier in ExprTools.map (#12030)
  246. eval : fix ssl cert verification failures on clean windows environments (#11838)
  247. eval : fix field typo in haxe.zip.Compress (#11143)
  248. 2025-05-09 4.3.7
  249. General improvements:
  250. all : update bundled haxelib version to 4.1.1
  251. all : update bundled neko version to 2.4.1 (#12183)
  252. all : use -w rules instead of defines to configure warnings (#11826, #12013)
  253. Bugfixes:
  254. all : fix compiler hanging issue (#11820)
  255. all : local statics fixes (#11803, #11849)
  256. all : fix for inline constructor bug triggering "Unbound variable" (#12169)
  257. all : check caught error position when recovering from match typing failure (#12098)
  258. macro : local statics vs ExprTools.map (#12030)
  259. eval : https fixes (mbedtls update) (#11646)
  260. eval : ssl cert verification failures on windows (#11838)
  261. hl/c : fix comparison of HArray,HArray and HBytes,HBytes (#11610)
  262. cppia : generate scriptable functions for overriden functions (#11773)
  263. 2024-08-07 4.3.6
  264. Bugfixes:
  265. display : do not define "display" for json rpc diagnostics (#11746)
  266. cpp : null check interfaces (#11743)
  267. hl : ignore WANT_READ/WANT_WRITE errors when the socket is known to be blocking (#11655)
  268. hl : fix weird compiler error (#11690)
  269. jvm : fix --java out -D jvm deprecation warning (#11739)
  270. macro : Context.reportError should not abort build macros (#11741)
  271. 2024-07-18 4.3.5
  272. General improvements:
  273. all : macOS universal binaries (#11572)
  274. display : migrated diagnostics to Json RPC (#11707)
  275. macro : expose TVar VStatic flag in macros. (#11683)
  276. Bugfixes:
  277. all : fix `@:structInit` with getter + setter (#11662)
  278. all : add missing recursion when checking abstract casts (#11676)
  279. all : fail nicer if unify_min can't find a common type (#11684)
  280. all : fix pretty errors failure (#11700)
  281. all : disallow local statics when inlining (#11725)
  282. display : unused pattern variables should be marked as unused (#7282)
  283. display : diagnostics miss "used without being initialized" errors (#7931)
  284. display : recursive inline is not supported on enum abstract constructor (#11177)
  285. display : Void as value error disappears on second compilation (#11184)
  286. display : false positives of "This cast has no effect, but some of its sub-expressions" (#11203)
  287. cpp : inherit `@:unreflective` on generic classes
  288. hl : fix bit shift + assignment in while loop header (#10783)
  289. hl : fix do-while loop in genhl+hlopt (#11461)
  290. hl/c : use uint64 instead of uint64_t for shift cast (#11721)
  291. macro : don't choke on namePos for reification pattern matching (#11671)
  292. Deprecation / future version handling:
  293. macro : `Compiler.include()` warning when used outside init macros
  294. 2024-03-04 4.3.4
  295. General improvements:
  296. all : allow @:using with Class and Enum (#11553)
  297. display : expose list of metadata/defines (#11399)
  298. Bugfixes:
  299. all : typedef vs. GADT (#11446)
  300. all : don't double-throw exceptions (#11175)
  301. all : fix some abstract inlining failures (#11526)
  302. all : fix JsonPrinter empty parent class (#11560)
  303. all : dce: clean up operator handling (#11427)
  304. all : analyzer: deal with unreachable block in binops (#11402)
  305. all : analyzer: don't recursively check enum values when const propagating (#11429)
  306. all : analyzer: fix check for inlined purity meta
  307. display : fix errors from parser missing in diagnostics (#8687)
  308. display : fix display services with static extension (#11285)
  309. display : fix display services with safe navigation (#11205)
  310. hl : hlopt rework try-catch control flow (#11581)
  311. hl/c : fix reserved keywords (#11408)
  312. Deprecation / future version handling:
  313. all : don't infer string on concat, when using -D haxe-next (#11318)
  314. all : handle optional arguments with bind, when using -D haxe-next (#11533)
  315. macro : build order vs inheritance, when using -D haxe-next (#11582)
  316. macro : deprecate some API from haxe.macro.Compiler (see #11540)
  317. java/jvm : warn about --java ... -D jvm vs --jvm ...
  318. 2023-09-17 4.3.3
  319. General improvements:
  320. all : improve extra field error range (#11335)
  321. all : better error messages for --connect
  322. hl : improve error message when hl_version is missing (#11086)
  323. hl/c : compiler now adds hlc define when targeting hl/c (#11382)
  324. macro : update macro API restriction warnings when using -D haxe-next (#11377)
  325. Bugfixes:
  326. all : handle non existing files for positions in pretty errors (#11364)
  327. all : metadata support for local static vars
  328. all : catch trailing invalid syntax in string interpolation (#10287)
  329. eval : fix Array.resize retaining values (#11317)
  330. eval/hl : fix catching haxe.ValueException (#11321)
  331. hl : make genhl respect Meta.NoExpr (#11257)
  332. hl : don't add bindings for non existing methods
  333. hl/c : add missing I64 mod support
  334. hl/c : rework reserved keywords (#11293, #11378)
  335. hl/c : fix Int64 unsigned right shift overflow (#11382)
  336. java/cs: fix stack overflow from closures constraints (#11350)
  337. js : DOMElement insertAdjacentElement should not be pure (#11333)
  338. macro : catch trailing invalid syntax in Context.parseInlineString (#11368)
  339. macro : fix TDAbstract without flags in haxe.macro.Printer
  340. 2023-09-01 4.3.2
  341. General improvements:
  342. all : do not raise error on no-op reification outside macro
  343. Bugfixes:
  344. all : don't infer Null<?> if it already is Null<?> (#11286)
  345. all : fix ?? inference and precedence (#11252)
  346. all : bring back forced inline (#11217)
  347. all : allow non constant "inline" var init with -D no-inline (#11192)
  348. all : improve @:enum abstract deprecation warning handling (#11302)
  349. all : fix some stack overflow with pretty errors
  350. display : fix go to definition with final (#11173)
  351. display : fix completion requests with @:forwardStatics (#11294)
  352. eval : fix MainLoop.add not repeating (#11202)
  353. hl/eval/neko : fix exception stack when wrapping native exceptions (#11249)
  354. macro : map `this` when restoring typed expressions (#11212)
  355. macro : safe navigation fix for ExprTools.map (#11204)
  356. macro : safe navigation fix for haxe.macro.Printer (#11206)
  357. macro : macro generated EVars position fixes (#11163)
  358. macro : fix abstract casts for local statics (#11301)
  359. macro : add flags to TDAbstract to be able to construct enum abstracts (#11230)
  360. nullsafety : make break/continue expressions not-nullable (#11269)
  361. nullsafety : handle return in assignment (#11114)
  362. 2023-04-28 4.3.1
  363. Breaking changes:
  364. all : namespace message reporting defines (#11142)
  365. General improvements:
  366. all : support deprecation for defines
  367. Bugfixes:
  368. all : fix --times with compilation server (#11091)
  369. all : fix default type parameters not respecting imports (#11161)
  370. all : fix bytecode bindings issues (#11098)
  371. macro : allow local statics in macro functions (#11096)
  372. cpp : fix AtomicInt warnings on cppia (#11105)
  373. cpp : fix deprecated implicit casts of cpp.Int64 (#10998)
  374. cpp : add white space around template type syntax (#11107)
  375. java : don't check native signatures on extern functions (#11131)
  376. lua : remove non existent luautf8 charCodeAt extern (#11097)
  377. 2023-04-06 4.3.0
  378. New features:
  379. all : support defaults for type parameters (#10518)
  380. all : support @:op(a()) on abstracts (#10119)
  381. all : support abstract keyword to reference the abstract (#10513)
  382. all : support static var at expression-level (#10555)
  383. all : support ?. safe navigation operator (#10561)
  384. all : added ?? null coalescing operator (#10428)
  385. all : add -w compiler option to configure warnings (#10612)
  386. all : added new error reporting modes (#10863)
  387. all : support custom metadata and defines (#10858)
  388. General improvements:
  389. all : made various optimizations in the analyzer
  390. all : made various improvements to diagnostics
  391. all : made various improvements to null-safety
  392. all : optimize `.bind` for instance methods (#10737)
  393. all : improved various parser error messages
  394. all : improved compilation server performance
  395. all : improved code generation for try/catch (#10519)
  396. all : infer property accessor type from the property (#10569)
  397. all : improved inference of local functions typed against abstracts (#10336)
  398. all : improved completion on module-level fields
  399. all : improved handling of native libraries on the compilation server
  400. all : improved performance when generating locals (#10648)
  401. all : made Std.parseInt more consistent across targets (#10664)
  402. all : infer null literals as Null<?> (#7736)
  403. all : made field access errors more consistent (#10896)
  404. all : consistently allow trailing commas (#11009)
  405. all : migrated all relevant targets to PCRE2 (#10491)
  406. all : made analyzer reconstruct do-while loops (#7979)
  407. all : improved restrictions on init macros (#11043)
  408. all : improved positions of @:structInit fields (#9318)
  409. macro : support map literals in Context.makeExpr (#10259)
  410. macro : added haxe.macro.Compiler.getConfiguration() (#10871)
  411. macro : added withImports and withOption to haxe.macro.Context
  412. macro : added getMacroStack and onAfterInitMacros to haxe.macro.Context (#11043)
  413. macro : added haxe.macro.Context.makeMonomorph (#10728)
  414. eval : added dictionary mode to objects, increasing performance in some cases (#10284)
  415. eval : fixed Sys.exit handling messing up the compilation server (#10642)
  416. eval : added -D eval-print-depth and -D eval-pretty-print (#10952, #10963)
  417. cpp : supported type parameters on extern classes (#10415)
  418. cpp : haxe.Int64 improvements (#9935)
  419. cpp : non-blocking process exit code reading (#10321)
  420. js : improved type names for debugger (#10894)
  421. lua : added SSL implementation (#10593)
  422. lua : fixed String API when -D no-inline was in place (#11057)
  423. lua : non-zero exit code in case of uncaught exception (#11082)
  424. java : deal with default implementations when loading extern libraries (#10466)
  425. jvm : improved closure naming (#10571)
  426. jvm : supported --jvm dir (#10614)
  427. jvm : added some missing TShort and TFloat handling (#10722)
  428. jvm : added experimental support for functional interfaces (#11019)
  429. php : added and fixed several extern functions
  430. Standard Library:
  431. all : added atomic operations to several targets (#10610)
  432. all : added Vector.fill (#10687)
  433. sys : added sys.thread.Condition and Semaphore (#10503)
  434. sys : added Http.getResponseHeaderValues to deal with multiple values of same key (#10812)
  435. sys : make Sys.environment consistent between targets (#10460)
  436. sys : consistent way to unset environment variables with Sys.putEnv (#10402)
  437. Bugfixes:
  438. all : properly disallowed macro reification in invalid places (#10883)
  439. all : fixed behavior when extending abstract classes with final fields (#10139)
  440. all : addressed some issues with constructor inlining (#10304)
  441. all : fixed pattern matcher bug related to null-guards (#10291)
  442. all : fixed weird parser behavior on first offset in files (#10322)
  443. all : fixed various issues related to the final modifier
  444. all : fixed various issues related to overload handling
  445. all : fixed precedence of => vs. ?: (#10455)
  446. all : made error positions in structure declarations more accurate (#9584)
  447. all : brought back proper check when accessing super fields (#10521)
  448. all : fixed @:publicFields on abstracts (#10541)
  449. all : inherited some metadata to @:generic implementation classes (#10557)
  450. all : fixed various problems in EventLoop and MainLoop
  451. all : fixed infinite recursion from invalid inheritance (#10245)
  452. all : fixed strange interaction between static extensions and macro functions (#10587)
  453. all : fixed problems with @:generic on the compilation server (#10635)
  454. all : fixed Context.onTypeNotFound being called multiple times for the same thing (#10678)
  455. all : fixed type parameter problem involving abstract classes and interfaces (#10748)
  456. all : fixed #if (a != b) yielding true for nonexistent values (#10868)
  457. all : fixed interaction between @:generic and abstract class (#10735)
  458. all : fixed @:using loading types too eagerly (#10107)
  459. all : fixed parser ignoring subsequent documentation comments (#10171)
  460. all : fixed parser function messing up unrelated file state in some cases (#10763)
  461. all : unified Map printing to always use [] (#9260)
  462. cpp : fixed problem with cpp.Pointer being used in enum arguments (#10831)
  463. macro : improved handling of macro this expressions (#10793)
  464. eval : fixed bit shift operations > 31 (#10752)
  465. eval : fixed Bytes.toString causing an internal exception (#10623)
  466. jvm : fixed @:native processing (#10280)
  467. jvm : fixed Type.getEnumConstructs on native enums (#10508)
  468. jvm : fixed @:volatile being ignored (#10594)
  469. jvm : fixed some hashing issue when pattern matching on emojis (#10720)
  470. jvm : fixed stack handling on return return (#10743)
  471. hl : fixed various code generation problems
  472. python : fixed SslSocket for newer python versions (#8401)
  473. python : fixed syntax issue related to Vector (#11060)
  474. 2021-03-06 4.2.5:
  475. New features:
  476. php : support PHP attributes generation (#9964)
  477. Bugfixes:
  478. all : fixed compiler crash in complex constraints chains (#10445)
  479. all : fixed timers execution order for timers with small time delta (#10567)
  480. js : fixed constructors with rest arguments when compiling for ES3, ES5 (#10490)
  481. php : excluded E_DEPRECATED notices from error reporting (#10502)
  482. php : fixed safe casts to native arrays (#10576)
  483. nullsafety : fixed false error on extern var fields without initialization (#10448)
  484. 2021-10-22 4.2.4:
  485. New features:
  486. hl : add clipboard support in hl 1.12 (#10320)
  487. General improvements:
  488. all : improved error messages upon directory creation failures (#10361)
  489. eval : added `%` operator to `eval.numbers.Int64` and `eval.numbers.UInt64` (#10411)
  490. Bugfixes:
  491. all : fixed errors on final vars modification with `+=`, `*=` etc operations (#10325)
  492. all : fixed hanging of MainLoop.add on threaded targets (#10308, #10329)
  493. all : fixed compiler crash when resolving overloads with not enough arguments (#10434)
  494. all : fixed non-static `@:to` methods on `@:multiType` abstracts (#10145)
  495. analyzer : fixed analyzer on overloads (#10405)
  496. analyzer : fixed issues with fields initialization expressions (#10405)
  497. display : improved code completion in anonymous objects declarations (#10414)
  498. js : fixed IntMap for keys greater than 2^31 (#10316)
  499. js : workaround to fix sourcemaps on Firefox in Windows (#10217)
  500. js : delayed truncation of the output file on `Compiler.setCustomJSGenerator` (#10387)
  501. cs/java : fixed rest arguments for cases when only one argument is provided (#10315)
  502. php : fixed type of `php.db.PDO.ATTR_DRIVER_NAME` (#10319)
  503. eval : fixed signature of `eval.luv.Tcp.noDelay` method
  504. lua : fixed `string.length` when `string` has type of a type parameter constrained to `String` (#10343)
  505. jvm : fixed `Reflect.compare()` for different number types (#10350)
  506. python : fixed exceptions on tracing some native values (#10440)
  507. 2021-07-01 4.2.3:
  508. General improvements:
  509. all : analyzer optimizations
  510. macro : support maps in `haxe.macro.Context.makeExpr` (#10259)
  511. js : added `-D js-global=globalThis` to customize global object name (#10282)
  512. php : added externs for `quoted_printable_decode`, `quoted_printable_encode`, `Attribute`, `NumberFormat`, `IntlCalendar` and other `Intl*` classes
  513. Bugfixes:
  514. all : fixed compiler crash on some unreachable code blocks (#10261)
  515. jvm : fixed `@:native` (#10280)
  516. jvm : fixed `--xml` generation (#10279)
  517. 2021-05-14 4.2.2:
  518. Bugfixes:
  519. all : fixed piping stdin/stdout in `--cmd` (#4669, #6726)
  520. all : fixed rest args typing for overloaded functions (#10143)
  521. all : fixed using `var` fields as static extensions (#10144)
  522. all : fixed completion for a type in `expr is Type` (#10167)
  523. all : fixed subtypes in `expr is Module.SubType` expressions (#10174)
  524. all : fixed typing chains of calls with constrained type params (#10198)
  525. all : fixed mixed constraints of anonymous structures and other types (#10162)
  526. all : fixed operator overloading for enum abstracts (#10173)
  527. hl : fixed debugging of `catch` blocks (#10109)
  528. jvm : fixed manifest generation for cases with a lot of jar libraries (#10157)
  529. js : fixed extending extern classes for es5 (#10192)
  530. js : fixed checking `this` before `super` for es6 (#10193)
  531. eval : fixed null pointer exception in `eval.NativeString.fromString(null)`
  532. eval : fixed multiple locks of `sys.thread.Mutex` from the same thread (#10249)
  533. 2021-02-26 4.2.1:
  534. General improvements:
  535. threads : changed main thread initialization to make main event loop available during static initialization (#10114)
  536. php : added extern for `number_format` function (#10115)
  537. python : rewrote `sys.thread.Thread`, `Mutex` and `Lock` as classes instead of abstracts.
  538. Bugfixes:
  539. all : fixed compiler compatibility with OS X 10.13 (#10110)
  540. all : fixed compiler hanging on `switch` for abstracts with implicit casts involving type parameters and constraints (#10082)
  541. all : fixed inlining of `haxe.DynamicAccess.keyValueIterator` (#10118)
  542. all : fixed rest arguments typing against type parameters (#10124)
  543. analyzer : fixed side effect handling for enums (#10032)
  544. cpp : fixed handling of `cpp.ConstCharStar` with analyzer enabled (#9733)
  545. php : fixed failure with trailing slash in output dir (#6212)
  546. hl : fixed call stack of rethrown exceptions (#10109)
  547. 2021-02-09 4.2.0:
  548. New features:
  549. all : implemented "classic" abstract classes and functions (see [haxe-evolution#69](https://github.com/HaxeFoundation/haxe-evolution/pull/69)) (#9716)
  550. all : module-level static declarations (#8460)
  551. all : implemented rest arguments (variadic functions) for all targets with `haxe.Rest` type (#9961)
  552. all : per-thread event loops `sys.thread.Thread.events` (#9868)
  553. all : added `@:inheritDoc` meta to inherit documentation for a type or field from another type or field (#9817)
  554. all : support method overloading for extern methods on all targets (#9793)
  555. all : constructors forwarding for abstracts with `@:forward.new` (#9735)
  556. all : added `EIs` constructor to `haxe.macro.Expr` (#9689)
  557. all : added variance forwarding with `@:forward.variance` (#9741)
  558. all : treat `Any` as `Dynamic` in variance unification (#6649)
  559. all : added some common exception types to `haxe.exceptions` package
  560. all : support metadata in var declaration syntax (#9618)
  561. all : added `StringTools.unsafeCharAt` (#9467)
  562. eval : added libuv bindings under `eval.luv` package (#9903)
  563. eval : added bindings to native `Int64` and `UInt64` implementations under `eval.integers` package (#9903)
  564. cs : UDP socket implementation (#8498)
  565. cs : added `cs.Syntax` module (#10051)
  566. jvm : added `-D jvm.dynamic-level` to control the amount of dynamic support code being generated. 0 = none, 1 = field read/write optimization (default), 2 = compile-time method closures
  567. java,jvm : support `--java-lib <directory>` (#9551)
  568. python : threading API implementation (#9754)
  569. General improvements:
  570. all : `expr is SomeType` doesn't require parentheses anymore (#9672)
  571. all : increased priority of @:using extensions (#9681)
  572. all : allowed usage of static extensions with super (#10062)
  573. all : allow @:noDoc on fields too (#9893)
  574. all : made `Map` abstract transitive (#9877)
  575. all : support `@:native` on enum constructors (#9806)
  576. all : support `@:using` on typedefs (#9749)
  577. all : changed multiline errors format to use "..." as a prefix for subsequent lines (#9651)
  578. all : improved type inference with constrained monomorphs (#9549)
  579. all : print no-argument function types as `()->...` instead of `Void->...` (#8148)
  580. all : allow `function` as package name
  581. all : improved object inlining (#9599)
  582. display : narrow range for hover on parametrized types (#8073)
  583. cs : added .NET 5.0 support (#10043)
  584. cpp : support native constructors on extern classes (#9516)
  585. php: `php.Syntax.customArrayDecl` (#9113)
  586. php : added externs for various php functions and classes
  587. php : optimized anonymous objects instantiation (#7916)
  588. hl : skip compilation if no module has been changed (#9922)
  589. lua : use hx-lua-simdjson for Lua json parsing (#9885)
  590. jvm : less CPU consuming `sys.thread.Lock` implementation
  591. Bugfixes:
  592. all : fixed Template.resolve when current context is not an object (#9372)
  593. all : `get` and `set` functions of `haxe.io.Float64Array` actually use 64-bit floats now (#9972)
  594. all : treat empty blocks `{}` as object declarations in array comprehension (fixes #9971)
  595. all : `haxe.format.JsonParser`: preserve Float-typed values when they are written as such in JSON (ie. "5.0" or "0.0") (#9844)
  596. all : fixed priority of forwarded static extensions (#9680)
  597. all : fixed some inconsistency in variance unification for abstracts (#9743)
  598. display : fixed completion with platform-specific files (#9423)
  599. cpp : fixed conversion of `cpp.Int64` to/from `haxe.Int64` (#10101)
  600. cpp : fixed extending extern classes with `@:nativeGen` classes (#9431)
  601. php : fixed generation with subdirectories in `-D php-front=subdir/index.php` (#10037)
  602. php : fixed local vars with the same names as super global vars (#9924)
  603. eval : allow full range of 32bit integers in `Std.random` (#9974)
  604. js : fixed `haxe.CallStack.exceptionStack` (#9968)
  605. js : fixed compatibility issue with closure compiler upon unused `catch` vars (#9617)
  606. lua : fixed anonymous object printing issue with null fields on tables
  607. hl : drop data of terminated threads (#9875)
  608. macro : fixed `haxe.macro.Context.storeTypedExpr` for enum constructs (#9828)
  609. macro : emit a deprecation warning upon a macro call instead of upon a macro function declaration (#9425)
  610. macro : fixed uncatchable error from `haxe.macro.Context.getType` (#9449)
  611. jvm : fixed `Type.resolveEnum` for enums in the root package (#9809)
  612. jvm : fixed `Type.resolveEnumName` for enums in the root package (#9759)
  613. cs : fixed cs.Lib.rethrow (#9738)
  614. nullsafety : respect `@:nullSafety(Off)` on var declarations: `var @:nullSafety(Off) v`
  615. nullsafety : respect `@:nullSafety(Off)` in closures in constructors (#9643)
  616. nullsafety : fixed error "Type not found : haxe.macro._Compiler.NullSafetyMode_Impl_" (#9483)
  617. 2020-12-31 4.1.5:
  618. General improvements:
  619. all : added an argument to `haxe.CallStack.exceptionStack` to return full stack up to the topmost call (#9947)
  620. php : compatibility with PHP 8
  621. Bugfixes:
  622. all : fixed empty object declarations in array comprehension (#9971)
  623. jvm : fixed equality checks for `Null<Float>` and `Null<Int>` (#9897)
  624. hl : fixed crash if a thread finishes without invoking `sendMessage`/`readMessage` (#9920)
  625. php : fixed local vars with certain names (_SERVER, _GET etc) overriding super global values (#9924)
  626. php : fixed generation with directories in `-D php-front`. For example `-D php-front=sub/index.php` (#10037)
  627. macro : added return type hint to haxe.macro.MacroStringTools.formatString (#9928)
  628. cs : fixed catching exceptions from static closures (#9957)
  629. eval : fixed `Std.random(arg)` for `arg` values of more than 30 bits (#9974)
  630. js : fixed `haxe.CallStack.exceptionStack` (#9968)
  631. 2020-09-11 4.1.4:
  632. General improvements:
  633. all : allowed `Any` as type parameter in `catch(e:SomeType<Any>)` (#9641)
  634. all : improved compilation speed for `try..catch` expressions (#9848)
  635. Bugfixes:
  636. all : fixed `switch` typing error for arrow functions with `Void` return type (#9813)
  637. all : fixed typing of arrow functions with empty blocks as bodies (closes #9843)
  638. macro : fixed `haxe.macro.Context.getResources()` (#9838)
  639. php : fixed false detection of `catch` vars in anonymous functions as captured from outer scope
  640. php : fixed return type of extern definition for `fseek` function
  641. cs,java : fixed generation of `@:generic` classes with anonymous functions (#9799)
  642. jvm : fixed sending/reading messages with `sys.thread.Threads` for threads created outside of Haxe (#9863)
  643. jvm : fixed multiplication of `Null<Float>` and `Int` (#9870)
  644. flash : fixed loading swc libraries containing `Vector` without a type parameter (#9805)
  645. hl : fixed messages being send to wrong threads with `sendMessage`/`readMessage` in `sys.thread.Thread` (#9875)
  646. cpp : fixed `cpp.Lib.stringReference()` (#8457)
  647. 2020-07-22 4.1.3
  648. General improvements:
  649. all : added an error on `return` outside of a function (#9659)
  650. php : support @:native("") for extern classes (#6448)
  651. python : support @:native("") for extern classes (#6448)
  652. Bugfixes:
  653. all : fixed compilation server bug caused by removing `inline` from a method (#9690)
  654. macro : fixed compiler crash if `@:genericBuild` meta is removed by a macro during building (#9391)
  655. jvm : fixed "--java-lib-extern" (#9515)
  656. flash : fixed var shadowing issue for variables captured in a closure inside of a loop (#9624)
  657. flash : fixed `VerifyError` exception when `Void` end up as an argument type after inlining (#9678)
  658. php : fixed runtime error "cannot use temporary expression in write context" for call arguments passed by reference
  659. cs : fixed `cs.Lib.rethrow` (#9738)
  660. nullsafety: fixed `@:nullSafety(Off)` in closures inside of constructors (#9643)
  661. nullsafety: fixed "Type not found NullSafetyMode_Impl_" (#9483)
  662. 2020-06-19 4.1.2
  663. Bugfixes:
  664. all : added `contains` and `keyValueIterator` methods to haxe.ds.ReadOnlyArray
  665. all : fixed super constructor call when extending externs (#7837, #9501)
  666. all : fixed compiler crash for "--run" argument without a value (#9513)
  667. all : fixed local variable name collision in `try..catch` (#9533)
  668. all : fixed memory leak in completion server related to haxe.Exception (#9537)
  669. display : fixed completion for out-of-bounds argument in a call (#9435)
  670. display : fixed "find references" through interfaces (#9470)
  671. display : optimized "find references" (#9504)
  672. display : optimized "server/invalidate" requests (#9509)
  673. analyzer : fixed compiler crash upon handling code branches with enums with optional arguments (#9591)
  674. jvm : added "--java-lib-extern" to use jar files as externs without adding them to the compiled project (#9515)
  675. macro : fixed type intersection syntax in macro reification (#9404)
  676. eval : fixed exception message when catching compiler-generated `haxe.macro.Error` as `Dynamic` (#9600)
  677. lua : fixed lua code generation without `--main` compilation argument (#9489)
  678. php : added an overload signature for `session_set_cookie_params` function (#9507)
  679. js : fixed name collisions for catch variables to avoid closure compiler errors (#9617)
  680. nullsafety : fixed various scenarios of `if..else` branching (#9474)
  681. 2020-05-22 4.1.1
  682. New features:
  683. jvm : added `--jvm path/to.jar` CLI argument
  684. Bugfixes:
  685. all : fixed arguments ordering for @:structInit constructors (#9418)
  686. all : fixed display/references completion server request for static fields (#9440)
  687. all : fixed "Module not found" error reporting during macro execution in display requests (#9449)
  688. all : fixed module name completion for target-specific modules like `Mod.js.hx` (#9423)
  689. all : fixed completion for packages named "function" (#7697)
  690. all : fixed recursive typedefs with optional arguments in `@:overload` functions (#9455)
  691. cpp : fixed StringTools.endsWith() for unicode characters (#8980)
  692. cpp : fixed broken externs in `cpp` package (#9452)
  693. js/cpp : fixed catch var naming collision (#9413)
  694. interp : fixed throwing `haxe.macro.Error` outside of a macro context (#9390)
  695. lua : fixed lua.PairTools.ipairsMap method
  696. php : fixed an edge case in String methods generation (#9464)
  697. 2020-05-13: 4.1.0
  698. New features:
  699. all : added tail recursion elimination (#8908)
  700. all : added unified exception handling (#9124)
  701. all : allow `try {} catch(e) {}` as a shortcut for `try {} catch(e:haxe.Exception) {}` (#9269)
  702. eval : added SSL support (#9009)
  703. jvm : the JVM target is no longer considered experimental
  704. General improvements:
  705. all : implemented different display support approach (#8962)
  706. all : improved display services related to reference finding
  707. all : added go-to-implementation support (#9043)
  708. all : made various improvements to diagnostics
  709. all : support completion for map keys (#9133)
  710. all : improved parser robustness for incomplete syntax (#9148)
  711. all : disallowed the combination of `@:overload` and inline (#3846)
  712. all : improved renaming of local variables (#9304)
  713. all : better inlining of for-loops with anonymous iterators (#8848)
  714. all : remove redundant final `return` in `Void` functions (#6420)
  715. all : remove redundant `continue` in loops (#8952)
  716. all : improved various compilation errors reporting
  717. all : allowed `(get,default)` property access combination (#6195, #8825)
  718. all : allowed ++ and -- on member properties of abstracts (#8930)
  719. js : use abstract type name for generating its implementation class (#9006)
  720. js : improve haxe.ds.StringMap implementation (#8909)
  721. js : improve interface checking and make it more minifier-friendly (#9178)
  722. js : generate `let` instead of `var` when compiler with `-D js-es=6` (#9280)
  723. js : optimize `.bind` on constructors (#9227)
  724. jvm : rewrote function handling to me much faster and more portable (#9208)
  725. jvm : generate interfaces for typedefs for improved performance (#9195)
  726. jvm : added support for haxe.MainLoop
  727. jvm : support `@:jvm.synthetic` and use it to hide some generated fields (#9213)
  728. jvm : respect `@:private` and `@:protected`
  729. lua : improve error handling behavior when throwing objects/instances
  730. lua : optimize `haxe.iterators.StringIterator`
  731. php : optimize `Std.isOfType` for String, Bool and Float
  732. php : make Haxe Array implement native interfaces Iterator, IteratorAggregate, Countable (#8821, 9377)
  733. cs : support `@:assemblyMeta` and `@:assemblyStrict` (#8347)
  734. python : added `__contains__` and `__getitem__` implementations to generated python code for `_hx_AnonObject`, so it is subscribable and behaves like a python dict (#9109)
  735. Standard Library:
  736. all : negative `startIndex` argument of `String.indexOf` and `String.lastIndexOf` is unspecified (#8365)
  737. all : changed Array.iterator() to return instances of haxe.iterators.ArrayIterator (#8987)
  738. all : added Array.contains (#9179)
  739. all : added Array.keyValueIterator (#7422)
  740. all : added haxe.Constraints.NotVoid (#8357)
  741. all : added Lambda.findIndex() (#9071)
  742. all : added Lambda.foldi() (#9054)
  743. all : added array access and key-value iteration support to haxe.ds.HashMap (#9056)
  744. jvm : added JVM-specific versions of sys.thread.Lock and sys.thread.Thread
  745. jvm : added JVM-specific version of haxe.ds.StringMap
  746. java/jvm : use native versions of MD-5, SHA-1 and SHA-256 for `haxe.crypto` modules (#9298)
  747. macro : added haxe.macro.Context.containsDisplayPosition(pos) (#9077)
  748. nullsafety : treat Strict as a single-threaded mode; added StrictThreaded (#8895)
  749. Deprecations:
  750. all : deprecated `Std.is`; use `Std.isOfType` instead (#2976)
  751. all : added a warning for an uninitialized variable usage captured in a closure (#7447)
  752. js : deprecated `untyped __js__(code, args)`; use `js.Syntax.code(code, args)` instead
  753. php/neko : deprecated neko.Web and php.Web; will be moved to hx4compat library later (#9153)
  754. Bugfixes:
  755. all : fixed display support for static imports (#9012)
  756. all : fixed completion in macro mode picking up the wrong type (#7703)
  757. all : fixed wonky analyzer transformation related to locals captured in closures (#9305)
  758. all : allow `return;` in abstract constructors (#7809)
  759. all : fixed static @:op([]) functions (#9347)
  760. all : fixed `@:optional` handling in the inheritance of `@:structInit` classes (#7559)
  761. all : support negative numbers as constant type parameters for `@:generic` types (#9149)
  762. all : fixed false positive compilation server error with empty methods in inheritance (#9029)
  763. all : fixed default values for manually defined @:structInit constructors (#9177, #9258)
  764. all : fixed inference of `Void` return type for arrow functions (#9181)
  765. all : fixed inconsistencies in wildcard imports resolution (#9189, #9190)
  766. all : fix array comprehension for a chain of `if..else if` without final `else` (#9040)
  767. all : prohibit @:structInit on interfaces (#9017)
  768. macro : fixed handling `TAnonymous` in `haxe.macro.TypeTools.map` (#9147)
  769. eval : fixed EReg.matchSub handling with negative length (#9333)
  770. eval : fixed extern classes being generated and causing errors in some cases (#9366)
  771. eval : fixed StringBuf.addSub unicode handling (#9382)
  772. jvm : fixed Void being generated with the wrong casing (#8717)
  773. jvm : fixed debugging-related data being generated in the wrong place
  774. jvm : fixed switches on string values being too optimistic
  775. jvm : fixed problems with Std.parseInt and Std.parseFloat
  776. jvm : made sure type parameter types are boxed
  777. jvm : fixed dynamic access on `null` yielding `null` (#8452)
  778. cpp : fixed native compilation if there is a `hx` package in a project (#8543)
  779. cs : fixed `null` to `0` conversion in parametrized functions for `Null<Int>` params (#7428)
  780. cs : fixed integer division handling (#9232)
  781. php : fixed closure creation out of fields with `null` value (#9316)
  782. js : fixed interface generation for minification with Google Closure Compiler in advanced mode (#9172)
  783. js : fixed a crash at startup in IE8 (#9062)
  784. hl : fixed BLOB handling in SQLite (#9048)
  785. 2019-12-17: 4.0.5
  786. Bugfixes:
  787. java : fix boolean arguments for `Type.createInstance(cls, args)` (#9025)
  788. jvm : fix static overloads (#9034)
  789. java/cs : fixed `Reflect.makeVarArgs(fn)` for calls of `fn` without arguments (#9037)
  790. js : fix multiple appearances of the first object added to `ObjectMap` is passed to `ObjectMap.set(obj, v)` multiple times (#9026)
  791. js : automatically wrap compound expressions with parentheses when passed to `js.Syntax.code()` (#9024)
  792. windows : fix adding neko to PATH env var running windows installer (#9021)
  793. 2019-11-29: 4.0.3
  794. General improvements:
  795. hl : profiler API
  796. Bugfixes:
  797. all : fixed EnumValue handling in constant propagation with analyzer enabled (#8959)
  798. all : fixed compiler crash upon Void items in array declarations (#8972)
  799. hl : fixed `sys.thread.Lock` implementation for Hashlink 1.11+ (#8699)
  800. js/eval/java/jvm/cs/python/lua : fixed `Std.parseInt()` for hexadecimals with leading whitespaces (#8978)
  801. java/cs : fixed `Reflect.callMethod(o, method, args)` for `args` not containing optional arguments (#8975)
  802. cs : fixed Json.stringify for @:struct-annotated classes (#8979)
  803. cs : fixed bitwise shifts for `cs.types.Int64` (#8978)
  804. python : fixed invalid generation of some inlined code blocks (#8971)
  805. std : fixed an exception from `haxe.zip.Huffman` on reading a zip (#8875)
  806. windows : workaround windows installer being detected as a malware by some anti-virus software (#8951)
  807. windows : fix PATH env var modification when running windows installer without admin privileges (#8870)
  808. all : fixed null-safety checker for field access on a call to inlined function
  809. 2019-11-11: 4.0.2
  810. General improvements and optimizations:
  811. php : improved performance of `haxe.io.Bytes.get()` (#8938)
  812. php : improved performance of serialization/unserialization of `haxe.io.Bytes` (#8943)
  813. php : improved performance of enum-related methods in `Type` class of standard library
  814. Bugfixes:
  815. haxelib : Fixed too strict requirements to haxelib.json data for private libs
  816. all : fixed `@:using` static extensions on `Null<SomeType>` (#8928)
  817. php : fixed static methods with the same name in parent and child classes (#8944)
  818. 2019-11-04: 4.0.1
  819. Bugfixes:
  820. haxelib : fixed git dependencies in haxelib.json
  821. neko : updated windows & osx installer to install Neko 2.3.0 (#8906)
  822. jvm : fixed compilation failure caused by a specific usage of `Array<Dynamic>` (#8872)
  823. all : fixed compiler crash on loops with `continue` in all branches of the body (#8912)
  824. all : fixed erasing typedef in AST on field access to forwarded abstract fields (#8919)
  825. 2019-10-26: 4.0.0
  826. General improvements:
  827. js : updated externs for `Float32Array` and `Float64Array` (#8864)
  828. php : added array access to `php.NativeStructArray` (#8893)
  829. Bugfixes:
  830. cs : fixed "This expression may be invalid" false warning (#8589)
  831. php : fixed iterator fields on maps being removed (#8851)
  832. php : fixed `-2147483648` as init value for static vars (#5289)
  833. python : fixed modulo by a negative number (#8845)
  834. java : fixed backslash escaping on `EReg.replace` (#3430)
  835. lua : fixed `EReg.map` for unicode (#8861)
  836. hl : fixed sqlite connection on OSX/Linux (#8878)
  837. 2019-09-12: 4.0.0-rc.5
  838. General improvements and optimizations:
  839. eval: improved performance of regular expressions (#8693)
  840. Bugfixes:
  841. all: fixed regression, which caused compiler to crash on enum abstracts with explicit casting (#8765)
  842. all: fixed regression of macro `@:from` methods on abstracts (#8779)
  843. all: fixed switching on `this` (#8781)
  844. 2019-09-04: 4.0.0-rc.4
  845. Standard Library:
  846. all : added Map.clear (#8681)
  847. all : improved Date API (#8508)
  848. all : added JSON-RPC protocol types to haxe.display package (#8610)
  849. all : added default timeout to HTTP sockets (#8646)
  850. macro : added Context.info (#8478)
  851. macro : added Context.getMessages and Context.filterMessages (#8471)
  852. macro : added function kind to EFunction (#8653)
  853. macro : added string literal kind to CString (#8668)
  854. flash : added flash.AnyType (#8549)
  855. General improvements and optimizations:
  856. all : allowed enum constructors without arguments as static inline var (#8187)
  857. all : improved handling of default values when inlining (#8397)
  858. all : made various improvements to the display API as usual
  859. all : detect invalid #tokens in inactive code (#7108)
  860. all : allowed function types in @:generic (#3697)
  861. all : improved --help-defines and --help-metas
  862. all : improved overall file finding (#8202)
  863. all : improved server reaction to added and removed files (#8451)
  864. all : improved memory handling of the compilation server (8727)
  865. all : improved handling of native libraries on the compilation server (#8629)
  866. all : support partial completion results (#8642)
  867. all : improved support of hovering over inactive conditional compilation blocks
  868. all : improved completion support in .platform.hx files
  869. all : support hovering conditional compilation identifiers
  870. all : improved and unified identifier checks for names, fields and types (#8708)
  871. all : improved --times performance (#8733)
  872. all : remove some redundant cast expressions (#8725)
  873. all : added --server-connect (#8730)
  874. lua : improved -D lua-vanilla
  875. js : improved HTML externs
  876. Bugfixes :
  877. all : fixed various position and replace ranges in the display API
  878. all : fixed compiler hang related to @:arrayAccess (#5525)
  879. all : fixed bug regarding abstract `this` modification in inline methods (#8454)
  880. all : fixed `from Dynamic` on abstracts (#8425)
  881. all : fixed overeager recursive inline check (#8489)
  882. all : fixed the pattern matcher allowing inexhaustive switches in value-places (#8277)
  883. all : fixed pattern matcher allowing invalid abstract unification (#8579)
  884. all : fixed local variable type information being lost on the compilation server (#8511)
  885. all : don't generate return expressions in Void lambda functions (#6503)
  886. all : fixed unification of recursive typedefs again (#8523)
  887. all : fixed various hangs related to abstracts (#8588)
  888. all : fixed various GADT-related problems (#7672)
  889. all : fixed macro `@:from` methods allowing any return type (#8463)
  890. macro : fixed Sys.programPath assertion failure (#8466)
  891. js : fixed typed array APIs (#8422)
  892. java : fixed Std.is on non-reference and unrelated types (#5168)
  893. java/macro : fixed null-pointer exception in Reflect.getProperty (#4934)
  894. java/jvm : fix switch on null string (#4481)
  895. jvm : fixed boxed vs. unboxed comparison (#8577)
  896. jvm : generate toplevel types to haxe.root like genjava does (#8590)
  897. jvm : improved 32bit support (#8601)
  898. cs/python : fixed various issues with code generation
  899. cs : fixed NativeArray casting (#3949)
  900. 2019-06-13: 4.0.0-rc.3
  901. New features:
  902. all : added JVM target
  903. General improvements and optimizations:
  904. all : create temp vars in pattern matcher to avoid duplicate access (#8064)
  905. all : support parsing dots in conditional compilation, e.g. `#if target.sys`
  906. all : added `@:bypassAccessor`
  907. all : improved various aspects of the display API
  908. all : properly error on `@:op(a = b)` (#6903)
  909. all : made `@:using` actually work
  910. all : properly disallowed some modifier combinations related to `final` (#8335)
  911. all : support `@:pure(false)` on variable fields (#8338)
  912. flash : updated Flash externs to version 32.0 (now using `final`, `enum abstract` and `haxe.extern.Rest`)
  913. flash : rework support for native Flash properties (#8241)
  914. php : improved performance of various parser implementations (#8083)
  915. cs : support .NET core target (#8391)
  916. cs : generate native type parameter constraints (#8311, #7863)
  917. Standard Library:
  918. all : added StringTools.contains (#7608)
  919. all : turned sys.thread.Thread into abstracts (#8130)
  920. all : introduced `Std.downcast` as replacement for `Std.instance` (#8301)
  921. all : introduced `UnicodeString`, deprecated `haxe.Utf8` (#8298)
  922. java : added java.NativeString (#8163)
  923. cs : added sys.thread implementations (#8166)
  924. js : moved various classes to js.lib (#7390)
  925. Bugfixes
  926. all : fixed issue with `@:generic` type parameters not being bound to Dynamic (#8102)
  927. all : fixed various issues related to `@:structInit`
  928. all : fixed top-down inference on abstract setters (#7674)
  929. all : fixed DCE issue related to closures (#8200)
  930. all : fixed and restricted various Unicode-related issues in String literals
  931. all : fixed various priority issues regarding loops and iterators
  932. all : fixed cast handling in try-catch expressions (#8257)
  933. all : fixed `inline new` handling (#8240)
  934. all : fixed pattern matcher issue with wildcards in or-patterns (#8296)
  935. all : fixed `@:allow(package)` allowing too much (#8306)
  936. all : fixed various issues with startIndex handling on String.indexOf and String.lastIndexOf
  937. all : fixed infinite recursion related to printing of objects with circular references (#8113)
  938. sys : fixed various Unicode issues (#8135)
  939. macro : fixed Array.pop handling (#8075)
  940. macro : fixed assertion failure when throwing exception (#8039)
  941. macro : fixed various uncatchable exceptions being thrown
  942. php : error on case-insensitive name clashes (#8219)
  943. lua : fixed issue where Process output occasionally is missing some data
  944. hl : fixed various String Unicode issues
  945. java : fixed null exception in CallStack.exceptionStack (#8322)
  946. js : fixed code generation issue related to negative abstract values (#8318)
  947. flash : fix various issues, including native `protected` handling and method overloading
  948. Removals:
  949. all : remove support for `@:fakeEnum` enums
  950. all : disallowed `\x` with values > 0x7F (#8141)
  951. all : consistently disallowed metadata in lambda function arguments (#7800)
  952. all : removed `--gen-hx-classes` (#8237)
  953. 2019-03-22: 4.0.0-rc.2
  954. New features:
  955. all : added strictness settings for the null-safety checker, using loose checking by default (#7811)
  956. js : added ES6 class generation with `-D js-es=6` (#7806)
  957. General improvements and optimizations:
  958. all : inherit `@:native` for overriden methods (#7844)
  959. all : standardized identifiers allowed in markup literals (#7558)
  960. all : show typo suggestions when declaring `override` field (#7847)
  961. all : improved parser error messages (#7912)
  962. all : improved diagnostics of syntax errors (#7940)
  963. all : improved positions of `switch` and `case` expressions (#7947)
  964. all : allow parsing `#if (a.b)` (#8005)
  965. eval : improved performance of various string operations (#7982)
  966. eval : fixed many error positions
  967. eval : greatly improved debugger interaction (#7839)
  968. eval : properly support threads when debugging (#7991)
  969. eval : improved handling of capture variables (#8017)
  970. js : generate dot-access for "keyword" field names (#7645)
  971. js : optimized run-time type checking against interfaces (#7834)
  972. js : skip generation of interfaces when no run-time type checking needed (#7843)
  973. Standard Library:
  974. all : unified various Thread APIs in sys.thread (#7999)
  975. all : moved typed arrays from `js.html` to `js.lib` (#7894)
  976. all : added `iterator()` to `haxe.DynamicAccess` (#7892)
  977. all : added `keyValueIterator()` to `haxe.DynamicAccess` (#7769)
  978. eval : completed Thread API
  979. Bugfixes:
  980. all : fixed argument default value checking for externs (#7752)
  981. all : fixed optional status of overloaded arguments with default values (#7794)
  982. all : fixed DCE compilation server state issue (#7805)
  983. all : fixed compilation server module dependency issue related to macros (#7448)
  984. all : fixed call-site inlining on abstracts (#7886)
  985. all : fixed Constructible not checking constraints properly (#6714)
  986. all : fixed @:structInit not being compatible with `final` fields (#7182)
  987. all : fixed capture variables being allowed in `.match` (#7921)
  988. all : fixed infinite recursion on `@:generic` field access (#6430)
  989. all : fixed `-D no-deprecation-warnings` for typedefs and enums
  990. js : fixed bad stack handling on `Map` constraint checks (#7781)
  991. js : fixed DCE issues related to haxe.CallStack (#7908)
  992. cpp : fixed Socket flags not being preserved (#7989)
  993. lua : fixed broken output when compiling through the compilation server (#7851)
  994. lua : fixed `StringTools.fastCodeAt` with `-D lua-vanilla` (#7589)
  995. lua : fixed `@:expose` for classes inside packages (#7849)
  996. 2019-02-01: 4.0.0-rc.1
  997. New features:
  998. all : added experimental null-safety feature through `--macro nullSafety("package")` (#7717)
  999. General improvements and optimizations:
  1000. all : improved unification error messages (#7547)
  1001. all : added `haxe4` define
  1002. all : do not require semicolon for markup literals (#7438)
  1003. all : made `@:expose` imply `@:keep` (#7695)
  1004. all : unified cast, catch and Std.is behavior of null-values (#7532)
  1005. macro : static variables are now always re-initialized when using the compilation server (#5746)
  1006. macro : support `@:persistent` to keep macro static values across compilations
  1007. js : improve js.Promise extern: now `then` callback argument types can be properly inferred (#7644)
  1008. Bugfixes:
  1009. all : fixed various pattern matching problems
  1010. all : fixed various wrong positions when encoding data to macros
  1011. all : specified String.indexOf with out-of-bounds indices (#7601)
  1012. all : fixed various problems related to DCE and feature-handling (#7694)
  1013. all : fixed bad unary operator optimization (#7704)
  1014. js : fixed syntax problem related to `instanceof` (#7653)
  1015. flash : fixed var field access on interfaces being uncast (#7727)
  1016. cpp : fixed various issues related to casts
  1017. cpp : fixed some leftover unicode issues
  1018. php : fixed class naming conflicts (#7716)
  1019. eval : fixed Socket.setTimeout (#7682)
  1020. eval : fixed int switch bug related to overflows
  1021. Removals:
  1022. macro : deprecated Context.registerModuleReuseCall and onMacroContextReused (#5746)
  1023. 2018-10-13: 4.0.0-preview.5
  1024. New features:
  1025. all : support Unicode strings properly on all targets
  1026. all : support `for (key => value in e)` syntax for key-value iterators
  1027. all : added keyValueIterator to Map and its implementations
  1028. all : support loop-unrolling on `for (i in 0...5)` (#7365)
  1029. all : added support for write-mode `@:op(a.b)`
  1030. all : support `inline call()` and `inline new` expressions (#7425)
  1031. all : support `@:using` on type declarations (#7462)
  1032. all : support markup literal strings but require them to be macro-processed (#7438)
  1033. all : allow enum values without arguments as default function argument values (#7439)
  1034. lua : add -D lua-vanilla, which emits code with reduced functionality but no additional lib dependencies
  1035. General improvements and optimizations:
  1036. all : [breaking] reserved `operator` and `overload` as keywords (#7413)
  1037. all : made `final` on structure fields invariant (#7039)
  1038. all : [breaking] disallowed static variables that have no type-hint and expression (#6440)
  1039. all : added display/typeDefinition to display protocol (#7266)
  1040. all : fixed various display-related problems
  1041. all : made parser in display mode much more tolerant
  1042. all : allowed assigning `[]` where `Map` is expected (#7426)
  1043. all : unified various parts of the String API across all targets
  1044. php : Optimized haxe.ds.Vector (VectorData is not Array anymore)
  1045. php : Optimized `Map.copy()` and `Array.copy()`
  1046. php : Optimized iterators of `Map` and native arrays.
  1047. php : Support native PHP generators. See `php.Syntax.yield()` and `php.Generator`
  1048. js : updated HTML externs
  1049. eval : improved object prototype field handling (#7393)
  1050. eval : optimized int switches (#7481)
  1051. eval : improved IntMap and StringMap performance
  1052. eval : improved performance of instance calls
  1053. Removals :
  1054. all : disallowed get_x/set_x property syntax, use get/set instead (#4699)
  1055. all : disallowed default values on interface variables (#4087)
  1056. all : disallowed `implements Dynamic` on non-extern classes (#6191)
  1057. all : warn about expressions in extern non-inline fields (#5898)
  1058. all : removed `-D use-rtti-doc`, always store documentation instead (#7493)
  1059. all : disallowed macro-in-macro calls (#7496)
  1060. js : removed jQuery and swfobject externs (#7494)
  1061. Bugfixes:
  1062. all : fix GC compacting too often in server mode
  1063. all : [breaking] `function () { }(e)` is no longer parsed as a call (#5854)
  1064. all : fixed various minor inlining issues
  1065. all : disallowed `return null` from Void-functions (#7198)
  1066. all : fixed various pattern matching problems
  1067. all : fixed compiler hang in display mode (#7236)
  1068. all : fixed the XML printer trimming CDATA content (#7454)
  1069. all : fixed invalid visibility unification with statics (#7527)
  1070. php : Escape `$` in field names of anonymous objects (#7230)
  1071. php : Generate `switch` as `if...else if...else...` to avoid loose comparison (#7257)
  1072. cs : fixed bad evaluation order in structures (#7531)
  1073. eval : fixed various problems with the debugger
  1074. eval : fixed Vector.fromArrayCopy (#7492)
  1075. eval : fixed bad string conversions on invalid + operations
  1076. Standard Library:
  1077. all : [breaking] made Lambda functions return Array instead of List (#7097)
  1078. all : added haxe.iterators package
  1079. all : improved StringTools.lpad/rpad/htmlEscape implementation
  1080. 2018-06-12: 4.0.0-preview.4
  1081. New features:
  1082. all : added JSON-RPC-based display protocol
  1083. all : allow `enum abstract` syntax instead of `@:enum abstract` (#4282)
  1084. all : allow `extern` on fields instead of `@:extern`
  1085. all : support signature completion on incomplete structures (#5767)
  1086. all : support auto-numbering and auto-stringification in enum abstracts (#7139)
  1087. all : support `Type1 & Type2` intersection syntax for type parameter constraints and structures (#7127)
  1088. General improvements and optimizations:
  1089. all : reworked CLI usage/help output (#6862)
  1090. all : implemented `for` loop unrolling (#3784)
  1091. all : metadata can now use `.`, e.g. `@:a.b`. This is represented as a string (#3959)
  1092. all : [breaking] disallow static extensions through abstract field casts (#5924)
  1093. all : [breaking] disallow static extensions on implicit `this` (#6036)
  1094. all : allow true and false expressions as type parameters (#6958)
  1095. all : improved display support in many areas
  1096. all : support `override |` completion
  1097. all : make display/references and display/toplevel actually work sometimes
  1098. all : allow `var ?x` and `final ?x` parsing in structures (#6947)
  1099. all : improved overall robustness of the parser in display mode
  1100. all : allow `@:commutative` on non-static abstract functions (#5599)
  1101. js : added externs for js.Date (#6855)
  1102. js : respect `-D source-map` flag to generate source maps in release builds
  1103. js : enums are now generated as objects instead of arrays (#6350)
  1104. eval : improved debugger, support conditional breakpoints
  1105. Removals:
  1106. all : moved haxe.remoting to hx3compat
  1107. js : moved js.XMLSocket to hx3compat
  1108. neko : moved neko.net to hx3compat
  1109. all : removed support for `T:(A, B)` constraint syntax
  1110. Bugfixes:
  1111. all : fixed various issues with diagnostics
  1112. all : fixed fields with default values for `@:structInit` classes (#5449)
  1113. all : fixed `Null<T>` inconsistency in if/ternary expressions (#6955)
  1114. all : fixed visibility check related to private constructors of sibling classes (#6957)
  1115. all : fixed @:generic naming (#6968)
  1116. all : fixed handling of type parameters in local functions (#6560)
  1117. all : fixed resolution order between `untyped` and type parameters (#7113)
  1118. all : fixed unification behavior in try/catch expressions (#7120)
  1119. all : fixed field type being lost for Int expressions on Float fields (#7132)
  1120. all : cleaned up `inline` handling (#7155)
  1121. display : fixed completion in packages starting with underscore (#5417)
  1122. php : fixed Reflect.callMethod with classes as first argument (#7106)
  1123. eval : fixed internal exception surfacing in some context calls (#7007)
  1124. eval : fixed Type.enumEq (#6710)
  1125. flash : fixed silently swallowing exceptions in getters/setters when invoked with Reflect methods (#5460, #6871)
  1126. Standard Library:
  1127. all : added `resize` to Array (#6869)
  1128. all : [breaking] removed `return this` from some haxe.Http methods (#6980)
  1129. 2018-02-23: 4.0.0-preview.3
  1130. See full commit history at https://github.com/HaxeFoundation/haxe/compare/4.0.0-preview.2...4.0.0-preview.3, notable changes below:
  1131. New features:
  1132. all : added new function type syntax (`(a:Int, b:String)->Void`) (#6645)
  1133. all : added column to StackItem.FilePos (#6665)
  1134. all : added `-D warn-var-shadowing`
  1135. all : added haxe.Log.formatOutput (#6738)
  1136. js : added js.Syntax class for generating unsupported JavaScript syntax in a type-safe analyzer-friendly way
  1137. js : added js.Map and js.Set and js.JsIterator extern definitions (ES6)
  1138. hl : added hl.Format.digest, use it for native Sha1/Md5
  1139. General improvements and optimizations:
  1140. all : made all non-warning/non-error compiler messages output to stdout (#4480)
  1141. all : make DCE keep constructor if any instance field is kept (#6690)
  1142. all : make `final` in structures use class notation
  1143. display : added `this` and `super` to toplevel completion (#6051)
  1144. php : implemented direct method comparison. No need to use `Reflect.compareMethods()`
  1145. php : added `php.Syntax.code()` instead of deprecated `untyped __php__()` (#6708)
  1146. php : added methods to `php.Syntax` for each php operator: `??`, `?:`, `**` etc. (#6708)
  1147. python : add ssl support for http requests
  1148. python : improve Sys.print(ln) code generation (#6184)
  1149. js : generate faster code for `x.iterator()` calls (#6669)
  1150. js : rework exception handling, added js.Lib.getOriginalException (#6713)
  1151. js : generate `value instanceof MyClass` instead of `Std.is(value, MyClass)` (#6687)
  1152. js : use lazy getter for HaxeError.message instead of calling String(val) in the ctor (#6754)
  1153. Removals:
  1154. php : removed `php.Syntax.binop()` (#6708)
  1155. Deprecations:
  1156. php : deprecated support for `untyped __php__`, `untyped __call__` etc. Use `php.Syntax` instead.
  1157. Bugfixes:
  1158. all : delay interface accessor generation properly (#6225, #6672)
  1159. all : fixed unbound variable error in anonymous functions (#6674)
  1160. all : fixed abstract `@:to` used when `from` is available in a specific case (#6751)
  1161. all : sys.Http: fix chunked encoding handling (#6763)
  1162. all : fix some invalid Json being accepted by haxe.format.JsonParser (#6734)
  1163. all : fixed haxe.format.JsonPrinter for instances of classes to make it produce consistent result across targets (#6801)
  1164. all : fixed autogenerated constructor for extending @:structInit classes (#6822, #6078)
  1165. js : fixed saving setter to `tmp` var before invocation (#6672)
  1166. lua : fix toString behavior in the case of -0 (#6652)
  1167. lua : properly bind field functions when passed as arguments (#6722)
  1168. php : don't fail on generating import aliases for classes with the similar names (#6680)
  1169. php : fixed `Sys.environment()` to also return variables set by `Sys.putEnv()`
  1170. php : fixed `sys.net.Socket.bind()` (#6693)
  1171. php : fixed appending "sqlite:" prefix to the names of files created by `sys.db.Sqlite.open()` (#6692)
  1172. php : made php.Lib.objectOfAssociativeArray() recursive (#6698)
  1173. php : fixed php error on parsing expressions like `a == b == c` (#6720)
  1174. php : fixed multiple file uploads in php.Web.parseMultiPart() (#4173)
  1175. php : fixed an issue with "Object" used as a class name for PHP 7.2 (it's a new keyword in php) (#6838)
  1176. eval : don't lose dynamic function inits from parent classes (#6660)
  1177. cs : fix order-dependent enum type parameter issue (#6016)
  1178. 2017-10-08: 4.0.0-preview.2
  1179. New features:
  1180. all : added final keyword (#6596)
  1181. General improvements and optimizations:
  1182. all : replaced some occurrences of List with Array
  1183. all : changed haxe.xml.Fast to an abstract
  1184. all : improved optimization when comparing against `null`
  1185. all : added support for `case var x` syntax and detect possible typos (#6608)
  1186. php : changed `--php-prefix`, `--php-front` and `--php-lib` to `-D php-prefix=`, `-D php-front=` and `-D php-lib=` respectively
  1187. Removals:
  1188. all : moved haxe.unit to hx3compat
  1189. all : moved haxe.web.Request to hx3compat
  1190. php : dropped php5 support; minimum supported php version is 7.0 now
  1191. Bugfixes:
  1192. all : fixed issue with various functions not being displayed in macro context (#6000)
  1193. all : fixed invalid static extension lookup on `super` (#3607)
  1194. all : fixed typing error when constructing enums with abstracts over functions (#6609)
  1195. all : fixed bug that skipped checking @:from typing in some cases (#6564)
  1196. all : fixed Int64 parsing of negative numbers that end in a zero (#5493)
  1197. all : fixed top-down inference when constructing enums (#6606)
  1198. eval : fixed bug with equality handling
  1199. eval : fixed issue with file creation not defaulting to binary
  1200. eval : fixed invalid override detection (#6583)
  1201. eval : fixed infinite recursion when printing arrays/vectors
  1202. cs/java : fixed DCE bug that would lose toString method of thrown objects
  1203. php/python : fixed some bit operators for Int32 (#5938)
  1204. php : fixed accessing `static inline var` via reflection (#6630)
  1205. php : fixed Math.min() and Math.max() for NAN on PHP 7.1.9 and 7.1.10
  1206. js : fixed js syntax error for `value.iterator--` (#6637)
  1207. Standard Library:
  1208. macro : added have.display.Position and PositionTools.toRange (#6599)
  1209. all : moved List to haxe.ds (#6610)
  1210. 2017-09-12: 4.0.0-preview.1
  1211. New features:
  1212. all : reworked macro interpreter
  1213. all : added support for arrow functions
  1214. General improvements and optimizations:
  1215. js : improved generation of `break` inside `switch` inside loops (#4964)
  1216. cs : improved generation of enum classes (#6119)
  1217. sys : the `database` parameter of `Mysql.connect` is now optional
  1218. js : updated jQuery extern (js.jquery.*) for jQuery 1.12.4 / 3.2.1 support.
  1219. Makefile : default Unix installation location $(INSTALL_DIR) changed from /usr to /usr/local.
  1220. Makefile : default Unix std location $(INSTALL_STD_DIR) changed from $(INSTALL_LIB_DIR)/std to $(INSTALL_DIR)/share/haxe/std.
  1221. Removals:
  1222. all : removed --eval command line argument
  1223. sys : SPOD (sys.db.Object, sys.db.Manager and friends) was moved into a separate library `record-macros` (https://github.com/HaxeFoundation/record-macros)
  1224. js : js.JQuery and js.SWFObject were moved into hx3compat library (https://github.com/HaxeFoundation/hx3compat),
  1225. it's recommended to use more modern js.jquery.JQuery and js.swfobject.SWFObject classes.
  1226. all : moved haxe.web.Dispatch into hx3compat library (https://github.com/HaxeFoundation/hx3compat).
  1227. Bugfixes:
  1228. php7: fix Reflect.field() for strings (#6276)
  1229. php7: fix `@:enum abstract` generation without `-dce full` (#6175)
  1230. php7: fix using enum constructor with arguments as a call argument (#6177)
  1231. php7: fix `null` property access (#6281)
  1232. php7: fix setting values in a map stored in another map (#6257)
  1233. php7: fix haxe.io.Input.readAll() with disabled analyzer optimizations (#6387)
  1234. php/php7: fixed accessing enum constructors on enum type stored to a variable (#6159)
  1235. php/php7: fix "cannot implement previously implemented interface" (#6208)
  1236. php: fix invoking functions stored in dynamic static vars (#6158)
  1237. php: fix field access on `new MyClass()` expressions wrapped in a `cast` (#6294)
  1238. Standard Library:
  1239. all : added `EReg.escape` (#5098)
  1240. all : `BalancedTree implements `haxe.Constraints.IMap` (#6231)
  1241. 2018-01-31: 3.4.5
  1242. General improvements and optimizations:
  1243. dce : optimized DCE performance (#6181)
  1244. Bugfixes:
  1245. dce : don't remove constructor if any instance field is kept (#6062)
  1246. js : fixed saving setter to `tmp` var before invocation (#6672)
  1247. php7 : don't fail on generating import aliases for classes with the similar names (#6680)
  1248. php7 : fixed appending "sqlite:" prefix to the names of files created by `sys.db.Sqlite.open()` (#6692)
  1249. php7 : made php.Lib.objectOfAssociativeArray() recursive (#6698)
  1250. php7 : fixed php error on parsing expressions like `a == b == c` (#6720)
  1251. php/php7 : fixed `sys.net.Socket.bind()` (#6693)
  1252. 2017-10-08: 3.4.4
  1253. Bugfixes:
  1254. flash : fixed flash target broken when compiled with OCaml 4.05 (#6589)
  1255. php7 : fixed accessing `static inline var` via reflection (#6630)
  1256. js : fixed js syntax error for `value.iterator--` (#6637)
  1257. cpp : fixed evaluation order problem when constructing enums (#6643)
  1258. 2017-09-10: 3.4.3
  1259. Bugfixes:
  1260. all : fixed DCE issue with interface fields (#6502)
  1261. cpp : fixed return typing for embedded closures (#6121)
  1262. php7: fixed `@:enum abstract` generation without `-dce full` (#6175)
  1263. php7: fixed using enum constructor with arguments as a call argument (#6177)
  1264. php7: fixed accessing methods on dynamic values (#6211)
  1265. php7: fixed `null` property access (#6281)
  1266. php7: fixed setting values in a map stored in another map (#6257)
  1267. php7: implemented `php.Lib.mail()`
  1268. php7: implemented `php.Lib.loadLib()`
  1269. php7: implemented `php.Lib.getClasses()` (#6384)
  1270. php7: fixed exception on `Reflect.getProperty(o, field)` if requested field does not exist (#6559)
  1271. php/php7: fixed accessing enum constructors on enum type stored to a variable (#6159)
  1272. php/php7: fixed "cannot implement previously implemented interface" (#6208)
  1273. php: fixed invoking functions stored in dynamic static vars (#6158)
  1274. php: fixed field access on `new MyClass()` expressions wrapped in a `cast` (#6294)
  1275. macro : fixed bug in addClassPath that overwrites macro class paths with context class paths
  1276. 2017-03-20: 3.4.2
  1277. Bugfixes:
  1278. cpp : fixed issue with @:native names being prefixed with :: (#6086)
  1279. cpp : fixed issue with return type handling (#6103)
  1280. cpp : fixed inaccurate line numbers that threw off debugging
  1281. php7 : fixed generation of `[][0]` constructs (#6090)
  1282. 2017-03-17: 3.4.1
  1283. New features:
  1284. php7 : added source maps generation with `-D source_map` flag.
  1285. General improvements and optimizations:
  1286. cpp : added cpp.Star and cpp.Struct to help with extern typing
  1287. lua : cleaned up various parts of the standard library
  1288. Bugfixes:
  1289. all : fixed compilation server issue with two identical @:native paths on extern abstracts (#5993)
  1290. all : fixed invalid inling in a specific case (#6067)
  1291. all : fixed various display related issues
  1292. all : fixed inline super() calls missing field initializations (#6097)
  1293. all : consider UNC paths to be absolute in haxe.io.Path.isAbsolute (#6061)
  1294. cpp : improved typing of some Function/Callable-related types
  1295. cpp : fixed problem with line numbers when debugging
  1296. hl : various fixes and improvements
  1297. php : fixed FileSystem.stat() for directories on Windows (#6057)
  1298. php/php7 : fixed invalid result of Web.getPostData() (#6033)
  1299. php7 : fixed invalid access to length of string in some cases (#6055)
  1300. php7 : fixed infinite recursion on MysqlConnection.close() (#6056)
  1301. 2017-01-31: 3.4.0
  1302. General improvements and optimizations:
  1303. all : support completion for static extensions (#5766)
  1304. all : removed neko dependency for macros, use PCRE instead
  1305. all : disabled analyzer optimizations by default, re-enable with -D analyzer-optimize
  1306. php7 : generate native `$v instanceof MyType` instead of `Std.is(v, MyType)` where possible for better performance
  1307. php7 : added @:phpNoConstructor meta for externs which do not have native php constructors and yet can be constructed
  1308. php7 : greatly reduced amount of generated tmp vars
  1309. php7 : `Array` performance improvements
  1310. hl : made various improvements
  1311. Bugfixes:
  1312. all : fixed `using` picking up non-static abstract functions (#5888)
  1313. all : fixed issue with side-effect detection when optimizing (#5911)
  1314. all : fixed issue with zlib bindings causing zlib_deflate errors (#5941)
  1315. php7 : Allow user-defined modules in `php` package (#5921)
  1316. php7 : Dereference some of `php.Syntax` methods if required (#5923)
  1317. php : fixed assigning a method of dynamic value to a variable (#5469)
  1318. php : fixed missing initialization of dynamic methods in classes with empty constructors (#4723)
  1319. 2016-12-24: 3.4.0-RC2
  1320. New features:
  1321. js : added API documentation to HTML externs (#5868)
  1322. php : added php7 target, enabled with -D php7
  1323. Bugfixes:
  1324. all : fixed top-down inference infinite recursion issue (#5848)
  1325. all : fixed regression in Compiler.include (#5847)
  1326. all : fixed Not_found exception related to try/catch (#5851)
  1327. all : fixed metadata completion showing up in trace arguments (#5775)
  1328. all : fixed problem with useless pattern detection (#5873)
  1329. all : fixed issue with toString handling in trace arguments (#5858)
  1330. all : fixed inline constructor scoping (#5855)
  1331. cpp : fixed issue with cpp.Pointer variables being eliminated (#5850)
  1332. js : added Notification API to HTML externs (#5852)
  1333. js : fixed several options structures in HTML externs (#5849)
  1334. php/cs : FileSystem.deleteFile() and FileSystem.deleteDirectory() now throw on non-existent path (#5742)
  1335. php/lua : fixed field access on `null` (#4988)
  1336. php : fixed static field access on a `Class<T>` stored to a field (#5383)
  1337. php : fixed invalid detection of `NativeArray` by `Std.is()` (#5565)
  1338. php : fixed `stdin()`, `stdout()`, `stderr()` of `Sys` to use predefined constants for corresponding channels (#5733)
  1339. php : fixed Std.parseInt() on hexstrings for PHP7+ (#5521)
  1340. php : fixed typed cast in assign operations (#5135)
  1341. php : fixed exception thrown by `Reflect.fields(o)` when `o` is `Class<T>` (#5608)
  1342. php : fixed json encoding of empty objects (#5015)
  1343. php : fixed checking floats for equality (#4260)
  1344. php : throw if invalid json string supplied to Json.parse() (#4592)
  1345. php : fixed ssl connections (#4581)
  1346. php : fixed writing bytes containing zero byte to MySQL & SQLite (#4489)
  1347. php : fixed call()() cases for PHP5 (#5569)
  1348. 2016-11-29: 3.4.0-RC1
  1349. New features:
  1350. all : support metadata completion
  1351. all : support type-hint completion
  1352. all : added @signature display mode (#4758)
  1353. all : finalized HashLink (HL) target
  1354. General improvements and optimizations:
  1355. all : greatly improved support for display mode in general
  1356. all : made --times output look much nicer
  1357. all : remove calls to functions that have no side-effect
  1358. all : hid private property accessors from completion (#5678)
  1359. js : updated jQuery extern (js.jquery.*) for jQuery 1.12.4 / 3.1.0 support.
  1360. js : jQuery extern (js.jquery.*) now includes deprecated fields marked with @:deprecated.
  1361. js : no longer rewrite `o["s"]` to `o.s` (#5724)
  1362. cpp : greatly improved ObjC output and integration options
  1363. lua : greatly improved code output quality
  1364. Bugfixes:
  1365. all : fixed various optimization issues
  1366. all : fixed various issues with side-effect detection
  1367. all : fixed performance drain in the DCE implementation (#5716)
  1368. all : fixed issue with assignments when inlining constructors (#5340)
  1369. all : fixed major inlining issue when using compilation server (#5320)
  1370. all : fixed pattern matching evaluation order issue (#5274)
  1371. cpp : fixed various minor code generation issues
  1372. js : fixed issue regarding iterating over abstracts (#5385)
  1373. python : fixed evaluation order issue for array writing (#5366)
  1374. Standard Library:
  1375. all : added Any type (#5500)
  1376. all : added haxe.extern.AsVar
  1377. all : added haxe.macro.CompilationServer (experimental)
  1378. all : fixed haxe.Template.resolve (#5301)
  1379. 2016-05-27: 3.3.0-RC1
  1380. New features:
  1381. all : support @:resolve on abstracts (#3753)
  1382. all : support extern abstracts and extern @:enum abstracts (#4862)
  1383. all : support completion on { if the expected type is a structure (#3907)
  1384. all : support (expr is Type) with mandatory parentheses (#2976)
  1385. all : allowed passing package dot-paths on command line (#4227)
  1386. all : support import.hx modules that define per-directory import/using directives (#1138)
  1387. all : support parsing of postfix ! operator (can be used by abstract operator overloading and macros) (#4284)
  1388. all : support parsing of ||= and &&= operators (can be used by abstract operator overloading and macros) (#4427)
  1389. all : support @:structInit classes (#4526)
  1390. all : reworked static analyzer and enabled it by default
  1391. flash : update flash externs to version 21
  1392. hl : added HL target (interpreter and C output)
  1393. lua: added lua target
  1394. js : introduced new jQuery extern (js.jquery.*) for jQuery 1.12.4 / 2.2.4 support. (#4377)
  1395. js : introduced new SWFObject extern (js.swfobject.SWFObject) for SWFObject 2.3.20130521 (#4451)
  1396. js : added js.Lib.rethrow (#4551)
  1397. cs/java : added -D fast_cast as an experimental feature to cleanup casts
  1398. Bugfixes:
  1399. all : properly disallowed assigning methods to structures with read-accessors (#3975)
  1400. all : fixed a bug related to abstract + Int/Float and implicit casts (#4122)
  1401. all : disallowed duplicate type parameter names (#4293)
  1402. all : made UInt's >>> behave like >> (#2736)
  1403. all : fixed various type loading issues
  1404. all : fixed code generation problems with `inline` (#1827)
  1405. php/as3 : support run-time metadata on interfaces (#2042)
  1406. php : fixed argument passing to closures (#2587)
  1407. neko/cpp : fixed various sys.Filesystem issues with Windows drive paths (#3266)
  1408. as3 : fixed problem with covariant return types (#4222)
  1409. as3 : fixed rare problem with static initialization order (#3563)
  1410. python : fixed various reflection problems
  1411. General improvements and optimizations:
  1412. all : added support for determining minimal types in Map literals (#4196)
  1413. all : allowed @:native on abstracts to set the name of the implementation class (#4158)
  1414. all : allowed creating closures on abstract inline methods (#4165)
  1415. all : type parameter declarations can now have metadata (#3836)
  1416. all : optimize Math.ceil/floor on constant arguments (#4223)
  1417. all : allowed extern classes to have field names being used for both static and instance (#4376)
  1418. all : added haxe.Constraints.Constructible (#4761)
  1419. all : rewrote pattern matcher to improve output in many cases (#4940)
  1420. python : use spaces instead of tabs to indent the output (#4299)
  1421. cpp : reworked backend to improve overall code output quality and fix various issues
  1422. swf : added scene-tag to allow creating accessible SWF files
  1423. Standard Library:
  1424. all : added Lambda.flatten and Lambda.flatMap (#3553)
  1425. all : added haxe.Constraints.Constructible (#4761)
  1426. sys : proper quoting/escaping (can be opt-out) for Sys.command and sys.io.Process (#3603)
  1427. js : added position parameter to haxe.macro.Compiler.includeFile
  1428. js : removed -D embed-js (#4074)
  1429. js : updated HTML externs
  1430. Macro features and changes:
  1431. macro : added overloads field to ClassField (#3460)
  1432. macro : added Context.getLocalImports (#3560)
  1433. macro : added Context.onAfterTyping (#4714)
  1434. macro : added Context.resolveType
  1435. 2015-10-11: 3.2.1
  1436. Bugfixes:
  1437. cs/java : fixed `-dce no` issues
  1438. cs/java : fixed how KExpr type parameters are generated
  1439. cs : fixed enum creation by reflection problem
  1440. cpp : do not rely in reflection to make interfaces work for non-first interface parents
  1441. cpp : fixed setting of static variables via reflection when class has no member variables
  1442. cpp : make sure StringMap's h field is kept if we use StringMap
  1443. js : Avoid the use of `eval`/`Function` to get the top-level defined type/var to not break ContentSecurityPolicy
  1444. 2015-05-12: 3.2.0
  1445. New features:
  1446. all : added @:noPrivateAccess to re-enable access restrictions within @:privateAccess
  1447. cpp : some support for @:nativeGen metadata
  1448. Bugfixes:
  1449. all : fixed detection of @:generic classes with constructor constraints
  1450. all : fixed variable initialization check issue in loop condition
  1451. all : fixed pattern matching on @:enum abstracts via field access (#4084)
  1452. all : fixed missing implicit casts in Map literals (#4100)
  1453. all : fixed various minor issues in haxe.xml.Parser
  1454. all : fixed class path issue when HAXE_STD_PATH is set (#4163)
  1455. js : fixed DCE issue related to printing enums (#4197)
  1456. js : fixed various issues with the new Bytes implementation
  1457. php : fixed EOF handling in FileInput.readByte (#4082)
  1458. cs/java : fixed Math.fround implementation (#4177)
  1459. cs/java : fixed some cases of Std.parseInt failing (#4132)
  1460. cpp : fixed compilation without -main (#4199)
  1461. General improvements and optimizations:
  1462. all : --macro keep no longer causes types to be included for compilation
  1463. php : support interpolation in __php__ code
  1464. js : added variable number of arguments support in js.html.* classes
  1465. js : refined new HTML externs
  1466. Macro features and changes:
  1467. macro : [breaking] synced FClosure and FInstance with the compiler updates
  1468. 2015-03-15: 3.2.0-RC1
  1469. This release removes support for Flash 8 target
  1470. New features:
  1471. all : added --display mode for toplevel completion
  1472. all : added --display mode for position and usage information
  1473. all : allowed @:callable on abstracts to forward calls to their underlying type
  1474. all : allowed pattern matching on getters
  1475. all : allowed @:native on class fields
  1476. all : added static analyzer with constant propagation
  1477. all : added Haxe-based XML implementation
  1478. python : added python target
  1479. flash : flash player 12-14 support
  1480. js : added @:jsRequire and js.Lib.require
  1481. js : support haxe.CallStack.exceptionStack
  1482. cs : added @:bridgeProperties
  1483. cs : added -D erase_generics
  1484. cs : added -D dll_import to import haxe-generated dlls
  1485. java/cs : added `sys.db` package
  1486. java/cs : clean unused files in output folder, unless `-D keep_old_output` is defined
  1487. java/cs : added `-c-arg` to add C#/Java compiler arguments
  1488. cpp : inititial implementation of cppia scripting
  1489. Bugfixes:
  1490. all : fixed nullability of abstracts over functions
  1491. all : fixed some equality checks between UInt and Int
  1492. all : fixed rare issue with abstract casts
  1493. all : fixed some internal code which relied on unspecified evaluation order
  1494. all : fixed exhaustiveness checks involving guards
  1495. all : fixed issue involving recursively constrained type parameters and @:generic
  1496. all : fixed type inference issue in map literals
  1497. all : fixed type inference issue when calling abstract method from within the abstract
  1498. all : fixed several abstract variance issues
  1499. all : fixed DCE issues with interface properties
  1500. all : fixed variance issue with function variables and dynamic methods on interfaces
  1501. all : fixed pattern matching on empty arrays that are typed as Dynamic
  1502. all : fixed various @:generic issues
  1503. all : fixed default cases on @:enum abstract being omitted
  1504. all : fixed various expression positions
  1505. all : disallowed break/continue in closures in loops
  1506. all : disallowed inline functions in value places
  1507. all : fixed parsing of cast followed by parentheses
  1508. all : fixed resource naming in case of invalid file system characters
  1509. all : fixed issue with inlined array declarations with field access
  1510. cpp : fixed issue with the side-effect handler
  1511. cpp : fixed issue with NativeArray in --no-inline mode
  1512. php : fixed issue with invalid references for closures in for-loops
  1513. php : fixed Reflect.compare and string comparison for numeric strings
  1514. cs/java : fixed various issues with -java-lib and -net-lib.
  1515. cs/java : added @:libType to skip checking on -java-lib / -net-lib types
  1516. cs/java : compilation server now works with C#/Java [experimental support]
  1517. cs : fixed Type.enumIndex / switch on C# native enums
  1518. cs : fixed reflection on COM types
  1519. java : fixed sys.net.Socket server implementation
  1520. spod : various fixes - working now on cpp, java, neko, php and c#
  1521. cpp : improved boot order, with enums constants first
  1522. General improvements and optimizations:
  1523. all : disallowed using `super` in value positions
  1524. all : check exhaustiveness of explicit Null types
  1525. all : resolve unqualified identifiers to @:enum abstract constructors
  1526. all : determine @:generic type parameters from constructor call if possible
  1527. all : properly disallowed field redefinition in extending interface
  1528. all : properly disallowed leading zeroes for Int and Float literals
  1529. all : allowed variance on interface variables
  1530. all : allowed pattern matching on arrays if they are typed as Dynamic
  1531. all : allowed pattern matching on fields of parent classes
  1532. all : -D doc-gen no longer implies -dce no
  1533. all : allowed matching against null on any enum instance
  1534. flash/js: optimized haxe.ds.StringMap
  1535. neko : create output directory if it does not exist
  1536. js : inline Math methods and fields
  1537. cs/java : optimized Reflect.fields on dynamic structures
  1538. cs/java : haxe will now clear output directory of old files (use -D keep-old-output to keep them)
  1539. cs : optimized field lookup structure
  1540. cs : optimized casting of parametrized types
  1541. cs : beautify c# code output
  1542. cs : added `cs.Flags` to manipulate C# enums that can be also flags
  1543. xml : improved documentation generation and fixed missing entity escaping
  1544. cpp : property access via Dynamic variables now requires property to be declared with @:nativeProperty
  1545. cpp : allow injection of code from relative paths using @:sourceFile and @:cppInclude
  1546. cpp : stronger typing of native functions via cpp.Function + cpp.Callable
  1547. cpp : moved 'Class' implementation to hx namespace to improve objective C interaction
  1548. cpp : added file_extension define to change the output filename extension (eg, ".mm")
  1549. cpp : added pre-calculated hashes to string constants to allow faster lookups
  1550. cpp : map implementation allows strongly typed interactions in some cases (avoids boxing)
  1551. cpp : added native WeakMap implementation
  1552. cpp : put each resource into own cpp file to allow more data/smaller files
  1553. Standard Library:
  1554. all : added typed arrays to haxe.io package
  1555. all : added haxe.ds.Either
  1556. all : added haxe.extern.Rest type for representing "rest" arguments in extern method signatures
  1557. all : added haxe.extern.EitherType abstract type for dealing with externs for dynamic targets
  1558. all : added haxe.DynamicAccess type for working with dynamic anonymous structures using a Map-like interface
  1559. all : [breaking] changed haxe.ds.Vector.get to return T instead of Null<T>
  1560. all : added haxe.macro.Compiler.addGlobalMetadata
  1561. all : changed haxe.Int64 to be an abstract type instead of a class
  1562. js : updated HTML externs
  1563. Macro features and changes:
  1564. macro : added Context.getLocalTVars
  1565. macro : added TypedExprTools.iter
  1566. macro : added Context.getCallArguments
  1567. macro : changed @:genericBuild macros to prefer ComplexType returns
  1568. macro : [breaking] extended TAnonymous structures now have AExtend status instead of AClosed
  1569. macro : added Context.getDefines
  1570. macro : fixed file_seek from end (position was inversed)
  1571. macro : added Context.storeTypedExpr
  1572. macro : allowed type name reification
  1573. Deprecations:
  1574. all : deprecated structurally extending classes and interfaces
  1575. sys : Sys.command shell special chars (&|<>#;*?(){}$) are now properly escaped
  1576. java/cs : Lib.nativeType is now renamed to Lib.getNativeType
  1577. 2014-04-13: 3.1.3
  1578. Bugfixes:
  1579. all : fixed handling of abstract variance
  1580. flash : ensure correct endianess in haxe.io.BytesBuffer
  1581. cpp : fixed issue involving class paths with spaces
  1582. php : fixed >>>
  1583. macro : fixed haxe.macro.Compiler.keep
  1584. General improvements and optimizations:
  1585. all : give @:deprecated warnings by default, allow -D no-deprecation-warnings
  1586. cpp : optimized Vector implementation
  1587. Standard Library:
  1588. all : renamed Bytes.readDouble/Float to getDouble/Float to avoid inheritance issues
  1589. all : deprecated Bytes.readString in favor of getString
  1590. all : added pretty-printing to haxe.format.JsonPrinter (and haxe.Json)
  1591. 2014-03-29: 3.1.2
  1592. Bugfixes:
  1593. all : disallowed spaces between >>, >>>, >>= and >>>=
  1594. all : fix branching issue when switching on Dynamic values with only one case
  1595. all : added missing abstract cast call when checking for equality
  1596. all : fixed member fields initializations on parent classes that have no constructor
  1597. all : fixed toString usage of abstracts which are argument to Std.string
  1598. flash : avoid rare FP 12 PPAPI JIT crash
  1599. cpp : fixed bug in side-effect handler which caused incorrect behavior of while loops
  1600. js : fixed missing print function for enum values with DCE
  1601. macro : make sure member field initializations are respected
  1602. General improvements and optimizations:
  1603. all : cached file exist checks to speed up compilations with a lot of class paths
  1604. all : improved completion related to super class fields
  1605. all : allowed iterating on abstract which have get_length and @:arrayAccess fields
  1606. js : improved Type.allEnums implementation to avoid issues with obfuscation
  1607. Standard Library:
  1608. all : added haxe.io.Bytes.readDouble/Float
  1609. all : added haxe.io.BytesBuffer.addString/Float/Double
  1610. 2014-03-15: 3.1.1
  1611. New features:
  1612. all : added -D deprecation-warnings
  1613. all : allowed \u escape sequences in strings
  1614. cs : implemented haxe.CallStack
  1615. Bugfixes:
  1616. all : fixed wrong handling of "" and null in haxe.io.Path.join
  1617. all : fixed invalid cast-to-self generation on some abstracts
  1618. all : removed @:to Dynamic from UInt to avoid issues in the Map selection algorithm
  1619. all : fixed various issues with UInt
  1620. all : fixed position setter in haxe.io.BytesInput
  1621. all : fixed various issues with member/static extension macros
  1622. flash : fixed invalid override involving single-constraint type parameters
  1623. flash8 : fixed various bugs
  1624. js : fixed a problem with Std.string(null) being optimized incorrectly
  1625. js : fixed custom generators
  1626. cpp : dealt with string literals that are too long for MSVC
  1627. cs : fixed various issues with -net-lib
  1628. 2014-03-04: 3.1.0
  1629. New features:
  1630. all : allowed null-patterns in pattern matching
  1631. all : allowed extractors in pattern matching using => syntax
  1632. all : allowed extending generic type parameters
  1633. all : allowed (expr : type) syntax (ECheckType)
  1634. all : allowed @:enum and @:forward on abstracts
  1635. all : allowed using abstracts as static extension
  1636. all : allowed Class.new
  1637. all : added EnumValue.match
  1638. all : allow multiple structural extension using { > T1, > T2, fields }
  1639. all : inline array and structure declarations if possible
  1640. cs : added -net-lib
  1641. cs : support for native delegates
  1642. cs : support for attributes
  1643. cs : support for events
  1644. Standard Library:
  1645. all : support abstract types in haxe.rtti.XmlParser
  1646. all : added Std.instance
  1647. all : added length field to BytesBuffer, BytesOutput, BytesInput and StringBuf
  1648. all : added UInt for all targets
  1649. all : added Array.indexOf and Array.lastIndexOf
  1650. all : added haxe.xml.Printer
  1651. all : added haxe.Int32 as abstract type
  1652. all : added haxe.format.JsonParser/Printer
  1653. General improvements and optimizations:
  1654. all : optimized pattern matching output
  1655. all : allowed recursive type parameter constraints
  1656. all : improved support of custom @:coreType abstracts
  1657. all : evaluate conditional expressions in @:require
  1658. all : improved inline constructors by detecting more cases where it can be applied
  1659. js : improved inlining
  1660. js : always use JSON extern (compile with -D old-browser to disable)
  1661. js : added -D js-flatten
  1662. js : added -D js-es5
  1663. cpp : improved side-effect detection
  1664. Bugfixes:
  1665. all : inlining a parameter which has side effects will not remove it even if not used
  1666. all : implemented constraints check on enum and enum field type parameters
  1667. all : fixed memory leak in compilation server and optimized caching in general
  1668. all : fixed issue with invalid lowercase class name in Windows completion
  1669. flash : fixed font embedding with UTF8 chars
  1670. flash : give error if non-nullable basic types are skipped in a call
  1671. flash : give error if assigned parent class field values would be overwritten by super()
  1672. Macro features and changes:
  1673. macro : add Context.onAfterGenerate
  1674. macro : add Context.typeExpr
  1675. macro : add Context.getExpectedType
  1676. macro : add ExprTools.getValue
  1677. macro : allowed $v{(c:Float|Int|String)}
  1678. macro : resolve error line number in external files
  1679. macro : rewrote macros used as static extension
  1680. macro : exposed typed AST
  1681. macro : added @:genericBuild
  1682. macro : [breaking] first argument of ComplexType.TExtend is now Array<TypePath> instead of TypePath
  1683. macro : improved expression printing
  1684. 2013-09-25: 3.0.1
  1685. all : minor DCE bug fix
  1686. 2013-05-25: 3.0.0
  1687. all : added haxe.ds.BalancedTree
  1688. all : added haxe.ds.EnumValueMap
  1689. all : allow enum constructors as keys to Map
  1690. all : haxe.ds.ObjectMap is now correctly constrained on all targets
  1691. all : preliminary support of -D display-mode=usage|position|metadata
  1692. all : improved pattern matcher error messages
  1693. all : allow inline constructors
  1694. all : allow abstract member macros (not for @:op, @:arrayAccess, @:from, @:to)
  1695. all : allow abstract type parameter variance
  1696. all : do not generate hidden null on if without else
  1697. macro : made abstract structure available
  1698. 2013-05-08: 3.0.0-RC2
  1699. all : improved abstract support
  1700. all : renamed HAXE_LIBRARY_PATH to HAXE_STD_PATH
  1701. all : added inlinable constructors
  1702. all : renamed haxe.ds.FastCell to GenericCell
  1703. all : fixed >= operator in #if conditionals
  1704. all : improved completion support for Unknown results
  1705. all : allowed [] access for Map
  1706. all : added haxe.ds.WeakMap (not yet supported on all platforms)
  1707. all : all trace parameters are now printed by default
  1708. all : added --help-metas
  1709. all : improved completion
  1710. all : improved pattern matching variable capture and GADT support
  1711. js : cached $bind results (unique closure creation per instance)
  1712. js : removed --js-modern (now as default)
  1713. cpp : added socket.setFastSend
  1714. flash : update player 11.7 api
  1715. flash : improved @:font, @:sound and @:bitmap support
  1716. neko/java/cs : improved Array performances when growing with []
  1717. java : added -java-lib support
  1718. java : added sys.net package implementation (alpha)
  1719. java : complete java std library through hxjava haxelib
  1720. java/cs : added support for overloaded function declarations
  1721. java/cs : overload selection algorithm
  1722. cs : operator overloading is now accessible through Haxe
  1723. cs : source mapping; can be disabled with -D real_position
  1724. as3 : fixed rare syntax ambiguity
  1725. php : removed initialization of some inline fields
  1726. macro : fixed several issues with 'using' a macro function
  1727. macro : improved expression printing
  1728. 2013-02-24: 3.0.0-RC
  1729. flash : updated player 11.4 api
  1730. all : allowed named functions as r-value
  1731. all : fixed using + overload usage
  1732. all : allow any type constraint for type parameters
  1733. all : make property type optional (when a initial value is set)
  1734. all : Std.random(x) when x <= 0 is now always 0
  1735. spod : added serialized data with SData<T>
  1736. all : Dispatcher will now throw DETooManyValues
  1737. all : speed up neko compilation by using native compiler
  1738. all : allow @:generic on functions
  1739. all : allow constructing generic type parameters
  1740. swf : added support for SWC files in -swf-lib
  1741. macro : added Context.onTypeNotFound callback for unresolved types
  1742. js : no JS embed as default (use -D embed-js instead)
  1743. all : added abstract types (Int/Float/Bool/Void/Class/Enum/EnumValue)
  1744. all : added --help-defines
  1745. all : changed DCE with three modes : std(default), no and full
  1746. all : Haxe3 packages changes (see http://haxe.org/manual/haxe3)
  1747. all : Removed haxe.Int32, haxe.Firebug, haxe.TimerQueue
  1748. all : added -D key=value and #if (key >= value) operations
  1749. all : StringTools.htmlEscape/unescape nows handle "/&quot; and '/&#039;
  1750. all : using and import must now appear before any type declaration in a file
  1751. all : no longer create variable fields for pure getter/setter properties (unless @:isVar is used)
  1752. all : use default get_prop/set_prop instead of custom getter/setter names for properties
  1753. js : added JQuery.delegateTarget
  1754. macro : removed EType and CType, added EMeta, modified ESwitch
  1755. all : allow @metadata expr
  1756. all : replaced haxe.rtti.Generic interface with @:generic metadata
  1757. all : no longer infer arrays of mixed types as Array<Dynamic>
  1758. all : all type/import/enum constructor resolution now follows the shadowing principle (latest has priority)
  1759. all : added EReg.matchSub, renamed EReg.customReplace to map
  1760. all : no longer allow initialization of extern non-inline variables
  1761. swf : fixed out of memory errors on very large swf-lib files
  1762. swf : added -D swf_preloader_frame, swf_gpu, swf_direct_blit
  1763. swf : added -D swf_script_timeout=seconds, swf_debug_password=password, swf_metadata=file
  1764. swf : added -swf-lib-extern
  1765. swf : added @:font support (beta)
  1766. all : added GADT support in enums
  1767. all : added pattern matching (beta)
  1768. all : changed callback(func, args) to func.bind(args)
  1769. macro : added haxe.macro.ExprTools/ComplexTypeTools/TypeTools
  1770. macro : changed reification syntax to ${expr}, $a{array}, $p{path}, $v{value}
  1771. macro : allow macro @:pos(pos-expr) to inject positions for reification
  1772. all : added array comprehension
  1773. flash : Vector.length is now Int instead of UInt
  1774. all : moved haxe.BaseCode, haxe.Md5 and haxe.SHA1 to haxe.crypto package
  1775. all : disallow Void variables and arguments (still allow S -> T to S -> Void)
  1776. all : added Array.map/filter
  1777. all : added spell check suggestions for enum constructors and fields
  1778. all : added opaque abstract(T) types
  1779. all : allow operator overloading on opaque abstract types
  1780. all : renamed IntIter to IntIterator
  1781. all : added Map
  1782. all : added haxe.ds with StringMap, IntMap, HashMap, ObjectMap, Vector, GenericStack
  1783. all : removed Hash, IntHash and haxe.FastList in favor of the types in haxe.ds
  1784. all : haxe.xml.Parser now handles entities consistently across platforms
  1785. all : renamed HAXE_LIBRARY_PATH environment variable to HAXE_STD_PATH
  1786. 2012-07-16: 2.10
  1787. java/cs : added two new targets (beta)
  1788. all : fixed List and Null<T> for first, last, pop
  1789. js : added js.Lib.debug()
  1790. flash : fixed Xml.parent() when no parent
  1791. flash : fixed haxe.io.Bytes.blit when len=0
  1792. js/php/flash8 : fixed haxe.Int32.mul overflow on 52 bits
  1793. js : fixed haxe.Utf8 usage (static 'length' issue)
  1794. all : does not allow overriding var/prop
  1795. flash : removed wrapping for Xml nodes, use instead specific compare when comparing two typed nodes
  1796. js : use new haxe.xml.Parser (faster, not based on Regexp)
  1797. flash : fixed completion issue with for( x in Vector )
  1798. all : optimized Std.int(123) and Std.int(123.45)
  1799. flash : bugfix for @:bitmap with 24-bits PNG (flash decode wrong colors)
  1800. as3 : fixed EnumValue becomes Object
  1801. js : removed js.Lib.isIE/isOpera (not complete, use js.JQuery.browser instead)
  1802. all : function parameters are nullable if they are declared with '?'
  1803. all : added support for finding common base types of multiple types (unify_min) for array, switch, if
  1804. php : do not implement duplicate interfaces
  1805. haxelib : added git support through haxelib git
  1806. all : allow derived classes to widen method visibility
  1807. macro : added haxe.macro.Context.getLocalMethod
  1808. macro : improved support of "using" macro functions
  1809. php : optimized Xml implementation
  1810. php : fixed Reflect.get/setProperty not working on PHP < 5.3
  1811. all : support for callback(f, _, x)
  1812. all : allow private access between classes that have a common base class
  1813. all : added Output.writeFloat/Double and Input.readFloat/Double
  1814. all : support for var:{x:Float} = { x = 1 } constant structure subtyping
  1815. all : allow contravariant function arguments and covariant function returns in overrides
  1816. macro : support for final Array<Expr> argument as rest argument
  1817. macro : use top-down inference on macro calls
  1818. all : made "using" imply "import"
  1819. all : made String concat more consistent across platforms (add Std.string wrappers)
  1820. all : allow direct member variable/property and static property initialization
  1821. js : greatly reduced amount of generated code by using smarter DCE
  1822. php : made modulo operations more consistent
  1823. all : allow local functions to have both type parameters and be inlined
  1824. all : functions type parameters can be constraint (will be checked at end of compilation)
  1825. macro : use NekoVM runtime for regexps, process and xml parsing
  1826. flash : allow @:getter/@:setter in interfaces
  1827. flash : added support for "arguments" in methods
  1828. all : not used enums and inline var/methods are now removed by DCE
  1829. all : allow @:overload to use type parameters and not-absolute type paths
  1830. all : ensure that Std.string of arrays and enums are now consistent across platforms
  1831. all : allow to inline functions containing other functions
  1832. xml : added metadata output to xml generator
  1833. macro : added macro <expr> and macro : <type> reification
  1834. all : renamed type(e) to $type(e)
  1835. as3 : support for metadata and resources, and other fixes
  1836. 2012-04-14: 2.09
  1837. all : optimized const == const and const != const (with different const types)
  1838. all : add Type.allEnums(e)
  1839. all : big improvements with completion speed and fixed many issues
  1840. flash9 : fixed -D swfprotected with swc output
  1841. neko : added ~ implementation
  1842. js : upgraded jquery version, more api overloads
  1843. sys : added "in" operator for spod macros, added relation access in expressions
  1844. macro : added ECheckType
  1845. macro : added TLazy for not-yet-typed class fields
  1846. js/php/neko : added haxe.web.Request
  1847. all : added Std.format
  1848. js : trace() output fallback on console.log if no id="haxe:trace"
  1849. all : ensure that Std.is(2.0,Int) returns true on all platforms
  1850. js : replaced $closure by function.$bind + changes in output format
  1851. all : allowed @:extern on static methods (no generate + no closure + force inlining)
  1852. all : added documentation in --display infos + display overloads in completion
  1853. js : removed --js-namespace, added $hxClasses
  1854. flash : output traces to native trace() when using -D fdb or -D nativeTrace
  1855. all : allowed abitrary string fields in anonymous objects
  1856. all : allowed optional structure fields (for constant structs)
  1857. all : allowed optional args in functions types (?Int -> Void)
  1858. all : added Reflect.getProperty/setProperty (except flash8)
  1859. all : added --wait and --cwd and --connect (parsed files and module caching)
  1860. all : fixed completion in macros calls arguments
  1861. all : fixed DCE removing empty but still used interfaces/superclasses
  1862. all : added haxe.Utf8 (crossplatform)
  1863. neko : Reflect now uses $fasthash (require neko 1.8.2)
  1864. all : allow \uXXXX in regexp (although not supported everywhere)
  1865. js : make difference between values and statements expressions in JSGenApi
  1866. js : added source mapping with -debug (replace previous stack emulation)
  1867. flash : added @:file("a.dat") class File extends flash.utils.ByteArray
  1868. flash : added @:sound("file.wav|mp3") class S extends flash.media.Sound
  1869. js : added --js-modern for wrapping output in a closure and ES5 strict mode
  1870. all : null, true and false are now keywords
  1871. all : neko.io.Path, cpp.io.Path and php.io.Path are now haxe.io.Path
  1872. neko, cpp, php : added Sys class, sys.io and sys.net packages and "sys" define
  1873. all : allow to access root package with std prefix (std.Type for example)
  1874. all : added haxe.EnumFlags
  1875. sys : io.File.getChar/stdin/stdout/stderr are now in Sys class
  1876. cpp : Reflect.getField and Reflect.setField no longer call property functions. Use Reflect.getProperty and Refelect.setProperty instead.
  1877. cpp : Default arguments now use Null<T> for performance increase and interface compatibility
  1878. cpp : Added metadata options for injecting native cpp code into headers, classes and functions
  1879. php : added php.Lib.mail
  1880. (hotfix) fixed bug in completion and disabled profiling on Linux
  1881. (hotfix) fixed $ssize when doing new String(v) in neko
  1882. (hotfix) fixed bug with properties in interfaces for Flash & PHP
  1883. 2011-09-25: 2.08
  1884. js : added js.JQuery
  1885. all : added @:overload
  1886. js : upgraded js.SWFObject from 1.4.4 inlined to 1.5 embedded
  1887. js : code generator beautify
  1888. all : ensure that modifying returned Type.getEnumConstructs array does not affect enum
  1889. all : allow macro typed parameters (other than Expr)
  1890. flash : added flash11 apis
  1891. neko : added support for https to haxe.Http (using hxssl library)
  1892. all : added haxe.Int64
  1893. all : added haxe.Int32 isNeg,isZero,ucompare, fixed overflows for js/flash8/php
  1894. all : bugfix when optimizing inlined immediate function call
  1895. all : fixed "using" on macro function
  1896. all : allowed member macros functions (called as static)
  1897. neko : allowed serialization of haxe.Int32 (as Int)
  1898. all : fixed invalid optimization of two constant numbers comparison
  1899. flash8 : bugfix Std.parseInt with some hex values
  1900. flash9 : added flash.utils.RegExp
  1901. all : changed @:build behavior, now takes/returns a var with anonymous fields
  1902. all : added @:native support for enums
  1903. neko : changed the result of array-assign expression (was null)
  1904. flash9 : no longer auto create enums from SWF classes
  1905. (need explicit "enum" type patch)
  1906. all : optimized variable tracking/renaming
  1907. all : optimized macro engine (speed x2)
  1908. all : added -D macrotimes support
  1909. flash9 : store resources in bytes tag instead of bytecode
  1910. all : allow $ prefixed identifiers (for macros usage only)
  1911. all : allow to access modules subtype statics with pack.Mod.Type.value
  1912. and fixed identifier resolution order
  1913. flash9 : added @:bitmap("file") for simple embedding
  1914. all : added haxe.web.Dispatch
  1915. js : added js.Storage
  1916. all : allow this + member variables access in local functions
  1917. added untyped __this__ support and transition error
  1918. all : added haxe.macro.MacroType
  1919. neko : neko.Lib.serialize/unserialize now returns bytes
  1920. neko : added sys.db package (crossplatform with -D spod_macro support)
  1921. spod_macro now uses wrappers for Bytes (require neko 1.8.2)
  1922. php : added --php-prefix for prefixing generated files and class names
  1923. all : added type_expr_with_type enum support
  1924. php/js : fixed adding 'null' to StringBuf
  1925. all : added haxe.macro.Context.defineType
  1926. 2011-01-30: 2.07
  1927. all : fixed completion support with --remap
  1928. all : added macros, added --interp
  1929. all : removed 'here' special identifier
  1930. neko : fixed neko.Web.getParamsString() returning "null" instead of ""
  1931. flash9 : fixed issue with @:bind
  1932. flash9 : added some missing errors
  1933. flash9 : fixed TypedDictionary.exists
  1934. all : added @:build and @:autoBuild for enums and classes
  1935. neko : Std.parseFloat now returns NaN with invalid string
  1936. php: fixed Array.push must return the current length (issue 219)
  1937. php: fixed EReg.replace (issue 194)
  1938. php: FileSystem.readDirectory now skips '.' and '..' to be consistent with neko (issue 226)
  1939. flash9 : add trace text on stage (always over current and subclips)
  1940. flash9 : delay SWF initialization until it's added on stage and stageWidth > 0
  1941. (this can be disabled with -D dontWaitStage)
  1942. all : added haxe.Timer.measure
  1943. all : added Lambda.indexOf and Lambda.concat
  1944. all : no longer allow inline vars as metadata values
  1945. neko : added getFieldsNames to neko.db.ResultSet (supported in Neko 1.8.2 mysql driver)
  1946. all : added --macro and haxe.macro.Compiler
  1947. all : allow macro type patches
  1948. flash9 : changed --gen-hx-classes implementation
  1949. now use 'haxe -swf-lib lib.swf --gen-hx-classes' instead
  1950. flash9 : added @:getter and @:setter
  1951. all : added @:require
  1952. flash9 : moved vector utils functions from flash.Lib to flash.Vector
  1953. flash9 : added support for FP 10.1 and 10.2
  1954. flash9 : added @:meta(Meta(k="v")) support
  1955. all : improved #if support (fixed ! precedence)
  1956. all : lookup unqualified types in all package hierarchy and not only in current package
  1957. flash : set default flash version to 10 (-swf9 deprecated, use -swf-version 8 for avm1)
  1958. php : added --php-lib to allow to rename the destination path of the generated lib
  1959. all : added --dead-code-elimination, removes unused functions from the output
  1960. (beta feature could not make in the final release)
  1961. all : added @:keep to prevent --dead-code-elimination of class/method
  1962. flash9 : fixed issues with loading a Haxe SWF (boot_XXXX class extends flash.Boot)
  1963. all : allow to inline override methods (if the superclass method is not inlined already)
  1964. all : fixed escape sequences in literal regular expressions
  1965. flash9 : fixed Xml.setNodeValue
  1966. all : removed -excluded, replaced by --macro excludeFile('filename')
  1967. all : added --macro exclude('package') and --macro include('package')
  1968. all : importing a typedef of an enum allow to access its constructors
  1969. all : removed String.cca (replaced by StringTools.fastCodeAt + StringTools.isEOF)
  1970. flash9 : fixed use of default values when null is passed for nullable basic types
  1971. all : fixed issues with inlining and class/function type parameters
  1972. all : big speedup for compiler internal completion
  1973. all : added --macro keepClass('classname')
  1974. flash9 : fixed Xml.nodeValue for comments (does not include <!--/-->)
  1975. all : added named local functions (allow self-recursion)
  1976. all : use left-assoc for (==,!=,>,>=,<,<=)(==,!=,>,>=,<,<=) (&&)(&&) and (||)(||)
  1977. all : give prefix unary operators higher priority than ?:
  1978. php : fixed XML parsing
  1979. cpp : many fixes
  1980. 2010-08-14: 2.06
  1981. neko : change serializer to be able to handle instances of basic classes from other modules
  1982. js : add Document.createTextNode
  1983. all : bugfix with inline when modifying var with same name as one of current local
  1984. flash9 : classes implementing ArrayAccess<T> are now dynamic (including TypedDictionary)
  1985. all : allow "using" on typedefs
  1986. as3 : minor fixes in genas3 and --gen-hx-classes
  1987. as3 : fix with readonly/writeonly properties accesses
  1988. flash9 : list native getter/setters in Type API class/instance fields
  1989. all : make haxe.rtti.Generic typing lazy (fix for self-recursion)
  1990. all : allow haxe.rtti.Generic + inheritance
  1991. all : added resource size limit to 12MB (ocaml max_string_size is 16MB + b64)
  1992. flash : changes in swf handling to work with >16MB swfs
  1993. flash9 : only init dynamic methods if not already defined (in subclass)
  1994. std : added haxe.SHA1
  1995. compiler : added TCast, allow cast optimization on flash9/cpp
  1996. as3 : fixed Std.__init__ generating 'null'
  1997. compiler : fixed -no-opt
  1998. flash : allow several -swf-lib
  1999. no longer support automatic creation of classes for f8 swfs in f9 mode
  2000. classes defined in f9 swf are not redefinable in Haxe code (use extern)
  2001. flash9 : allow direct access and completion with classes defined in -swf-lib's
  2002. flash9 : remove imported libraries debug infos when not compiled with -debug
  2003. all : only display errors with --display if no completion matched
  2004. all : some completion related errors fixed
  2005. flash9 : added @:bind support
  2006. all : fixed StringTools.hex with negative numbers
  2007. flash9 : fixed Type.typeof(1<<28) was TFloat
  2008. flash9 : use flash.XML parser for Xml class implementation
  2009. neko : fixed Array.splice (was not setting null at end of array)
  2010. neko : rewrote Array class using neko.NativeArray
  2011. all : core classes implementation are now in std/(platform)/_std
  2012. all : added @:final support
  2013. all : added haxe.rtti.Meta
  2014. flash9 : added flash.desktop.Clipboard* classes (added in flash10)
  2015. as3 : fixed Date.toString issue in flash.Boot (now use .toStringHX instead)
  2016. this will only work if .toString called explicitely on Date class
  2017. all : only allow "using" on Dynamic if first parameter is Dynamic
  2018. php : haxe.Http now supports Https connections when OpenSSL extension is enabled (issue 143)
  2019. php : fixed enum constructors sequence (issue 142)
  2020. php : added error message when using 2 fields with different cases in the same class/enum
  2021. php : fixed field declaration for properties with getter and setter (issue 124)
  2022. php : fixed comparison issues between strings (issue 132)
  2023. php : enhanced FileInput.readLine using native fgets function (issue 103)
  2024. flash9 : renamed flash.Error to flash.errors.Error
  2025. php : removed eval() everywhere and simplified _hx_lambda
  2026. php : fixed return type for Std.string() with integers and floats
  2027. php : fixed php.Lib.rethrow
  2028. all : added custom Haxe serialization
  2029. php : aligned php.Web.parseMultipart signature with neko implementation
  2030. cpp : Added source location and stack dump for errors in debug mode
  2031. cpp : Remapped more keywords
  2032. cpp : Added templated fast iterator code for arrays and FastLists
  2033. cpp : Added option for tracing GC references in debug mode
  2034. cpp : Switch the native string implementation from wchar_t to utf8 - for regex speed
  2035. cpp : Added extra "()" to ensure correct order of operations
  2036. cpp : Fixed various bugs for unusual (and not so unusual) language constructs
  2037. cpp : Fixed order of enum generation from index
  2038. cpp : Added __unsafe_get and __unsafe_set to Array as possible optimizations
  2039. cpp : Default to mult-thread compiling on windows for cl version >= 14
  2040. cpp : Seed Math.random
  2041. cpp : Use strftime for Dates
  2042. cpp : Fix socket sellect passing _s
  2043. cpp : Throw error when match count does not match regex
  2044. cpp : Improve register capture in GC
  2045. cpp : Fix Dynamic integer compare
  2046. cpp : Implement makeVarArgs
  2047. cpp : Fix toString for nulls in Enums and Arrays
  2048. cpp : Added initial Android support
  2049. cpp : Move initializers to entry functions in standard ndlls.
  2050. cpp : Changes some CFFI register funtions to char*, from wchar_t*
  2051. cpp : Added some initial support for v8 script target
  2052. cpp : Use non-recursive GC marking to avoid overflow in big lists
  2053. cpp : Added __hxcpp_obj_id
  2054. 2010-01-09: 2.05
  2055. js : added js.Scroll
  2056. js : package names are now checked at runtime to avoid clashes with existing libs
  2057. js : added --js-namespace to create a namespace for types that are defined in the root
  2058. all : updated xml output and html doc - add inline, override, dynamic functions support
  2059. all : added error when comparing enum with arguments
  2060. all : optimize constant equality for enums
  2061. flash9 : fixed verify error with inline + null type
  2062. flash9 : bugfix when overriding/implementing an method with an applied type parameter
  2063. php : fixed issues with classes that implement Dynamic
  2064. all : ignore #! line at beginning of the hx file
  2065. haxelib : added tags, added documentation
  2066. flash8 : don't use b64 encoding for text ressources
  2067. php : fixed bug in Hash.exists for null values and Reflect.callMethod
  2068. js/flash9 : throw exception in Xml.parse when unclosed node
  2069. all : improve return type progagation in inlined expression (fix some VerifyErrors)
  2070. all : optimize {const} into const
  2071. all : added structure / Dynamic<T> subtyping
  2072. all : fixed List.map2 error when inline + optional args
  2073. flash9 : encode all ISO constant strings into UTF8 at compilation time
  2074. all : allow hxml with only -cmd statements
  2075. spod : moved Manager.addQuote to Connection.addValue
  2076. flash9 : removed .iterator() from Vector (not implementable)
  2077. all : fixed haxe.rtti.Generic on interfaces
  2078. php : fixed issue with Reflect.callMethod
  2079. php : fixed issue with PHP reserved word used in callbacks
  2080. all : bugfix with non-constant enums in switches
  2081. flash9 : fix for interfaces (use namespace)
  2082. all : "using" now works for identifiers in member methods
  2083. flash9 : bugfix with switch on some big integers
  2084. all : bugfix when optimizing (function(x) return x)(x)
  2085. neko : improved speed of Xml.toString()
  2086. all : added -D dump (for debugging purposes)
  2087. neko : added neko.Web.isTora
  2088. php : added php.db.PDO (php.db.Sqlite is now deprecated)
  2089. php : fixed bug in Type.getClassFields() that reported duplicated entries
  2090. php : fixed errror in XML error reporting
  2091. all : allow sub-types declarations everywhere (pack.Type.Sub)
  2092. all : added completion for sub-types declarations
  2093. all : improved completion with lambda function
  2094. as3 : several generation fixes
  2095. all : bugfix haxe.rtti.Generic on private class
  2096. php/js/cpp : sanitize binary expressions to prevent inlining errors
  2097. spod : remove object from cache when deleted
  2098. 2009-07-26: 2.04
  2099. flash9 : fixed get_full_path error with -D fdb
  2100. js : fixed Array.remove on IE
  2101. flash8 : removed extra empty AS3 tag (causing some issue with F8 loadMovie)
  2102. improved speed of Bytes unserializing (no need for BytesBuffer)
  2103. flash9 : bugfix, Null<Typedef> was generating dynamic code
  2104. flash9 : added error message in flash.Vector if used without flash 10
  2105. flash9 : fixed some "never" property access issues
  2106. all : added "never" property access support for all platforms
  2107. js : small syntax fix with value-blocks
  2108. js : fixed Type.enumEq with null values
  2109. js/flash8 : use &0xFF in haxe.io.Bytes.set
  2110. flash9 : fixed switch on Null<Int> verify error
  2111. flash9 : fixes related to UInt type + error when using Int/UInt comparison
  2112. as3 : improved Vector support, inline flash.Lib.as
  2113. as3 : bugfix with skip_constructor
  2114. as3 : added Enum.__constructs__ (allow Type.getEnumConstructs)
  2115. as3 : make all constructor parameters optional (allow Type.createEmptyInstance)
  2116. as3 : bugfix with property access inside setter (stack overflow)
  2117. all : Enum is now Enum<T>
  2118. all : added Type.createEnumIndex
  2119. all : forbid same name for static+instance field (not supported on several platforms)
  2120. all : renamed haxe.Http.request to "requestUrl"
  2121. all : renamed neko.zip.Compress/Uncompress.run to "execute"
  2122. spod : fix very rare issue with relations and transactions
  2123. compiler : added TClosure - optimize closure creation and ease code generation
  2124. cpp : added CPP platform
  2125. all : added 'using' syntax
  2126. neko : added 'domains' optional param to ThreadRemotingServer to answer policy-file-request
  2127. php : fixed php.db.Mysql so that getResult is consistent with Neko behavior
  2128. php : fixed __toString for anonymouse objects
  2129. php : fixed bug in overridden dynamic functions
  2130. php : fixed round to be consistent with other platforms
  2131. php : fixed bug concatenating two dynamic variables
  2132. php : php.Lib.rethrow now works as expected
  2133. flash9 : fixed bug with SWC output and recursive types
  2134. flash8 : fixed inversed arguments in __new__
  2135. neko : added neko.net.Socket.setFastSend
  2136. php: fixed String.charCodeAt
  2137. php: minor optimization (removed foreach from std code)
  2138. php: implemented haxe.Stack
  2139. php: changed exception handler to use Haxe call stack
  2140. php: changed special vars to use the '\xBB' prefix instead of __
  2141. php: fixed use of reserved keywords for var names
  2142. php: List iterator is now class based (faster)
  2143. php: fixed behavior of class variables having assigned functions
  2144. php: fixed php.db.Manager (was uncorrectly removing superclass fields)
  2145. php: added support for native Iterator and IteratorAggregate interfaces
  2146. all : added --display classes and --display keywords
  2147. all : fixed issue with optional parameters in inline functions
  2148. all : allow implementing interfaces with inline methods
  2149. all : enable inlining for getter/setter/iterator/resolve/using
  2150. 2009-03-22: 2.03
  2151. optimized Type.enumEq : use index instead of tag comparison for neko/flash9/php
  2152. bugfix for flash.display.BitmapDataChannel and GraphicsPathCommand (allow inline static)
  2153. resolve environment variable in -cmd commands
  2154. added flash.Vector.indexOf and lastIndexOf
  2155. fixed bug in interfaces that define the method toString (Haxe/PHP)
  2156. fixed bug in haxe.io.BytesInput.readBytes in Flash9 (was throwing Eof if full buffer can't be read)
  2157. fixed implements/extends special classes when they are imported
  2158. StringBuf now uses an array for JS implementation (around same on FF, faster on IE)
  2159. fixed assignment of field length in anonym objects (Haxe/PHP)
  2160. fixed addEventListener typing for flash9
  2161. fixed __vector__ generation for AS3 target
  2162. fix with inline functions : position is now the inserted position and not the original one (better error reporting)
  2163. added SWC output support
  2164. fixed issues with unset of values in for loops and executing blocks that return functions (Haxe/PHP)
  2165. "throw" type is now Unknown instead of Dynamic (prevent type-hole in "if A else if B else throw")
  2166. added __foreach__ for flash9/as3
  2167. fixed f9 verify error with different kind of functions
  2168. moved eof() from neko.io.FileOutput to FileInput
  2169. added haxe.rtti.HtmlEditor
  2170. added neko.db.Manager.setLockMode
  2171. genAS3 : fixed Error classes issues
  2172. genAS3 : fixed default basic type value in interfaces
  2173. flash9 : fixed UInt default parameter verify error
  2174. flash9 : fixed issue with flash.* string enums verify error
  2175. compiler : allowed \r line separators for HXML files
  2176. flash9 : fixed verify error with loop variable beeing a specific class
  2177. compiler : prevent truncating float dynamic values to int when using numerical operations
  2178. neko.db.Manager fix : synchronize fields after locking an unlocked cached object
  2179. compiler : fixed issue with cascading inline+haxe.rtti.Generic
  2180. optimizer : reduce constant int/float/bool expressions and immediate function calls
  2181. flash9/as3/php : don't add Boot.skip_constructor test if no side effects in constructor
  2182. compiler : added --no-opt to disable expr reduction
  2183. compiler : separated basic and advanced commandline options
  2184. compiler : fixed printing of sub-function types
  2185. genHX : fixed generation of classes that extends another class (shouldn't be turned into enums)
  2186. speedup Array.remove on flash9/js
  2187. 2008-11-23: 2.02
  2188. Std.is(MyInterface, Class) now returns true (Haxe/PHP)
  2189. php arrays are wrapped into _hx_array instances, fixes issues with references (array cast, access out of bounds ...)
  2190. removed untested php classes (php.DBase, php.IniHash)
  2191. added -D use_rtti_doc
  2192. flash.Lib.getTimer() now returns Int and is inlined
  2193. fixed php.FileSystem.stat
  2194. added memory related functions to php.Sys
  2195. added error when trying to extend Array, String, Date and Xml
  2196. fixed handling of implements ArrayAccess
  2197. fixed some minor things in flash10 api
  2198. switch/for/while/do/try/if are no longer using parse_next (parenthesises requ. instead)
  2199. fixed Type.typeof and Std.is in case of too much large integers for Flash6-8/JS
  2200. haxe.xml.Check : treat comments the same as PCDATA spaces
  2201. haxe.io.BytesData now uses strings instead of arrays for PHP
  2202. compiler : optimized line calculus from ast position
  2203. lexer : allow identifiers starting with _[0-9]
  2204. fixed access to flash.Vector methods : use AS3 namespace (faster)
  2205. bugfix in inline functions : modifying a parameter can't modify a real local var anymore
  2206. bugfix in inline functions : handle class type parameters and method type parameters
  2207. fixed issue with Int default value for Float parameter
  2208. flash9 : bugfix when using the retval after setting a closure variable
  2209. added flash.Memory API for flash10 alchemy opcodes access
  2210. changed #if as3gen to #if as3 when generating as3 code
  2211. fixed as3 flash.Vector generation
  2212. fixed haxe.io.BytesOutput for flash9 : set default to little-endian
  2213. some flash9 fixes related to extern enums
  2214. updated flash.text.engine package with haxe enums
  2215. flash9 : use target file path for Boot unique ID instead of random number
  2216. as3 : fixed bug when anonymous field was a reserved identifier
  2217. flash9 : added flash.Lib.vectorOfArray and vectorConvert for flash10
  2218. added -D check-js-packages to allow several haxe-generated js files in same page
  2219. 2008-10-04: 2.01
  2220. fixed php.Sys
  2221. added neko.NativeString and neko.NativeArray
  2222. fixed php.Boot.__string_rec() when invoked from toString
  2223. fixed null references in class constructors for array arguments
  2224. fixed Type.enumParameters() and Type.typeOf() for PHP
  2225. fixed SPOD/MySql for PHP
  2226. fixed php.net.Socket.setTimeout(), php.io.Process
  2227. fixed php.Web.setCookie() for expire time
  2228. fixed php rethrow in catches and added the possibility to catch native exceptions
  2229. added runttime check for php.io.Socket.shutdown (uses fclose in php 5.1.x)
  2230. allowed optional Context in remoting connections
  2231. fixed extern classes for flash < 8
  2232. fixed inherited protected/private properties in as3 SWF library
  2233. fixed haxe.io float/double in Neko (when bigEndian was null)
  2234. added __FSCommand2__ support
  2235. optimized haxe.Unserializer (use faster buffer access)
  2236. use "Dynamic" instead of Dynamic->Void for flash9 IEventDispatcher
  2237. always use full classes paths for genAS3
  2238. prevent different get/set property accesses when implementing an interface
  2239. fixed assign of dynamicfunction references in PHP
  2240. Haxe/PHP now generates code for extern classes __init__
  2241. added strings literal support in haxe.Template
  2242. fixed Process arguments and exitCode() in Haxe/PHP
  2243. fixed hierarchy problem for classes with the name from different packages Haxe/PHP
  2244. php.db.Mysql now throws an exception when tries to connect to an unexistant DB
  2245. fixed blocks in if statements for Haxe/PHP
  2246. added php check on the full hierarchy for colliding names
  2247. added support for "g" modifier in EReg for PHP
  2248. PHP now generates __toString for classes that have toString defined
  2249. implemented php.Lib.getClasses()
  2250. fixed duplicate fields in Type.getInstanceFields on subclass
  2251. Enum is no longer defined inside Type but is standalone class
  2252. fixed Date.getDay on Neko/Windows (use %w instead of %u)
  2253. fixed memory leak with PHP closures
  2254. fixed wrong scope in PHP closures
  2255. fixed Array.reverse() in PHP
  2256. fixed Reflect.compareMethods in Neko (require Neko 1.8.0)
  2257. fixed flash7-8 register usage for __init__ and static variables initialization
  2258. moved StringTools.baseEncode/Decode to haxe.BaseCode
  2259. fixed binary resources for Flash, JS and PHP outputs
  2260. fixed compiler bug with inline + optional arguments
  2261. fixed Type.createInstance and createEmptyInstance with Array for flash6-8
  2262. 2008-07-28: 2.0
  2263. fixed current package bug in inherited constructor type
  2264. delayed type-parameter constraints check (allow mutual rec extends for SPOD)
  2265. improved unclosed macro error reporting
  2266. Haxe/PHP integration
  2267. renamed NekoSocketConnection to SyncSocketConnection (php support)
  2268. fixes in genAs3
  2269. fix for flash9 : always coerce call return type
  2270. set all private+protected names from SWF lib to public (allow override+reflect)
  2271. flash9 : use findprop instead of findpropstrict for 'this' access (allow dynamic)
  2272. don't allow nullness changes in overrided/implemented
  2273. prevent typing hole with overridden polymorphic methods
  2274. added neko.vm.Mutex and neko.vm.Deque (included in neko 1.7.1)
  2275. added package remapping using --remap
  2276. 2008-07-17: 2.0-RC1
  2277. genneko : remove big array error (fixed in neko 1.7.1)
  2278. fixed neko.net.ThreadRemotingServer.onXML
  2279. genswf9 : fixed verify error with Null<Class> (was using dynamic access)
  2280. small patch for jsfl support
  2281. added .cca for faster string operations on Flash9/Flash/JS
  2282. bugfix with inlined local variables
  2283. upgraded flash9 api to flex3/player 9.0.115
  2284. override is now mandatory, no more --override
  2285. dynamic is now a keyword
  2286. f9dynamic is now dynamic and is mandatory on all platforms
  2287. public/private/dynamic are inherited by default when overriding a method
  2288. removed Reflect.empty() : use {} instead
  2289. changed #else by #elseif, added #else
  2290. flash9 : optimized Hash,IntHash,StringBuf (use typed value)
  2291. Reflect.field/setField/callMethod , Type.enumIndex and StringBuf methods are now inlined
  2292. optimized haxe.Md5 : don't use statics
  2293. allow up to 8 parameters in Reflect.createInstance
  2294. flash9 : some minor optimizations in haxe.Serializer
  2295. added haxe.io package (removed things from neko.io)
  2296. __resolve becomes resolve (and should be documented)
  2297. added haxe.Int32
  2298. removed neko.Int32
  2299. removed neko.io.Input/Output/Eof/Error/Logger/Multiple/StringInput/StringOutput
  2300. removed neko.net.RemotingServer
  2301. changed neko apis to use haxe.io and Bytes instead of String buffers
  2302. fixed big bug in js/flash8 debug stack handling
  2303. complete rewrite of haxe.remoting package
  2304. haxe.io.Bytes serialization support (replace deprecated string support)
  2305. removed === and !==
  2306. removed Std.bool
  2307. fixed : Reflect.field(null) in flash9 doesn't throw an error anymore
  2308. removed Type.toClass and Type.toEnum
  2309. Dynamic type is now a class and not an enum
  2310. moved reflection support for core types from Boot to Std
  2311. fixed Type.getClassName/getEnumName/resolve for core flash9 types
  2312. renamed haxe.rtti.Type to haxe.rtti.CType (with changes in prefix)
  2313. added haxe.TimerQueue, added haxe.Timer.delay, remove haxe.Timer.delayed
  2314. flash9 : bugfix, generated interfaces were empty
  2315. fixed bug while writing block-vars in flash/js
  2316. added parameters default value (constants)
  2317. removed Std.resource, Std.ord, Std.chr
  2318. added haxe.Resource, allow binary data in resources
  2319. added Type.createEnum
  2320. check that local variables get correctly initialized before usage
  2321. haxe.Stack support for flash9
  2322. 2008-04-05: 1.19
  2323. fixed flash9 Array.toString
  2324. fixed inline return bug
  2325. added haxe.rtti.Generic behavior
  2326. added haxe.FastList
  2327. bugfix to prevent recursive anonymous
  2328. fixed some incorrectly reported "recursive inline" errors
  2329. fixes in genas3 + genswf9 for Dynamic/* in methods
  2330. {} is now an empty object and not an empty block
  2331. fixed some verify errors left in flash9
  2332. fixed private/protected differences in gen-hx-classes
  2333. genswf9 : allowed to store a Class in a typed register
  2334. fixed switch-on-bool (don't use matching)
  2335. genswf9 : optimized switch on ints
  2336. some renames in haxe.rtti.Type
  2337. added flash.utils.TypedDictionary for F9
  2338. genswf9 : fixe debug filename with inline code
  2339. fixed completion for packages starting with 'a' or 'z'
  2340. added flash9.Lib.as
  2341. prevent double Movieclip class declaration when linking flash9 lib
  2342. allow numerical operations on type parameters constraint by Float
  2343. genswf9 : fixed dynamic inheritance
  2344. 2008-02-23: 1.18
  2345. some optimization and bugfix for as3 codegen
  2346. bugfix : allow bitmaps and fonts classes for F9 library
  2347. bugfix : neko.Web.setCookie
  2348. bugfix : as3 switches in -swf-lib, and enable to "repair" corrupted as3 bytecode
  2349. fixed --i return value in flash9
  2350. fixed some transforms in flash9
  2351. added js.Selection
  2352. simplified js.Dom (more events)
  2353. added haxe.xml.Fast.innerHTML
  2354. added Reflect.compare
  2355. fixed "".split() in Neko (now returns [""] instead of [])
  2356. bugfix for swf-lib f9 classes ordering
  2357. added EReg.customReplace
  2358. added neko.Lib.lazyLoad and improved neko.net.Poll for Neko 1.6.1
  2359. prevented static fields in interfaces
  2360. added neko.Sys.cpuTime()
  2361. fix for protected as3 classes
  2362. added support for flash9 XML (in flash.xml package)
  2363. added neko.vm.Tls for Neko 1.6.1
  2364. added --no-inline
  2365. renamed neko.zip.File to neko.zip.Reader
  2366. added neko.zip.Writer and neko.zip.CRC32
  2367. fixed multilevel Transform.block_vars
  2368. added js.SWFObject
  2369. fixes for if/switch with null or Null<T> on Flash9
  2370. 2008-01-13: 1.17
  2371. fixed Int32.compare, added Int32.read and Int32.write
  2372. fixed type of unitialized registers in flash9
  2373. fixed Sqlite transactions (commit and rollback now restart a transaction)
  2374. several flash9 optimizations
  2375. flash9 debug support (with -D fdb)
  2376. set align to TopLeft if not defined for flash9
  2377. added neko.vm.Gc
  2378. fixed Null should not be a value
  2379. bugfix in serialization format with USE_ENUM_INDEXES
  2380. added apis in DateTools for time manipulation
  2381. bugfix in flash9 : strictly typed local vars used in local functions
  2382. always force swf version and sandbox redefinition
  2383. added as3hl layer
  2384. merge as3 classes
  2385. use flash9 fast switch for enums
  2386. always use match for enums (no switch even if constant)
  2387. fixed DateTools.format %I and %l in Flash/JS
  2388. securized Hash for JS and Flash
  2389. compiletime F9 class generation for F8 swflib
  2390. optimized for loops (Array and IntIter)
  2391. added #line support
  2392. more f9 Null<T> support for "if" and array declarations
  2393. more neko.Web.setCookie parameters
  2394. added "inline" for methods and static vars
  2395. fixed % type in flash9
  2396. 2007-10-31: 1.16
  2397. use _sans font for default flash traces (better Linux support)
  2398. fixed haxe.remoting.Connection compilation for Flash<8
  2399. added fix to prevent 64K identifiers limit on Flash<9
  2400. ensure order of anonymous fields initialization
  2401. fixed haxe.remoting.Connection.urlConnect in JS
  2402. use amortized O(1) for Neko Array implementation
  2403. ndlls libraries should now use .neko() instead of __a
  2404. allowed 'u' utf8 for regexp (needs Neko 1.6.1 regexp.ndll on windows)
  2405. onclick and onsubmit JS events returns Bool
  2406. fixed inherited constructor of extern class was always private
  2407. fixed Ereg.split without 'g' flag on JS/Flash9
  2408. fixed haxe.Stack in JS without -debug
  2409. added support for -D no-swf-compress
  2410. fixed ByteArray.readObject
  2411. fixed implements Dynamic in Flash9
  2412. removed neko.io.FileInput.eof, fixed neko.io.Input.readLine
  2413. fixed haxe.Template for Flash9
  2414. added neko.Sys.command optional array of arguments
  2415. removed haxe.Proxy
  2416. added flash.XMLRequest
  2417. fixed Type.enumParameters for Neko
  2418. guaranteed order of Type.getEnumConstructs same as code
  2419. used index-based dispatch for enums
  2420. added Type.enumIndex
  2421. fixed enum.toString for Flash and JS
  2422. support for -Dnetwork-sandbox
  2423. trim -cp and -resource
  2424. various genas3 fixes
  2425. 2007-08-29: 1.15
  2426. fixed bug with Enum.construct when Enum have type parameters
  2427. change with "untyped" : arguments types are checked (because of opt select)
  2428. haxedoc : fixed type parameters display
  2429. fix for JS and Flash9 XML parser : allow newlines in attributes
  2430. disable Flash9 resources with AS3Gen
  2431. error on extra anonymous fields
  2432. error on too much big neko array declaration (neko 1.6 max_stack limit)
  2433. fixed Flash9 statics slots (FP 9,0,60 compatibility)
  2434. fixed Flash9 Type.getClassName
  2435. optional enums arguments on Flash9 are now automatically Null
  2436. forbid usage of type parameters in static functions
  2437. fixed Std.int with negative numbers
  2438. fixed some F9 issues with Haxe-specific Array, Date and Math methods
  2439. used AS3 namespace for F9 Array and String instance methods
  2440. fixed F9 with uninitialized integer registers
  2441. fixed F9 + operator with Dynamic/Null operands
  2442. added Enum subtyping
  2443. fix with remoting threadserver and exceptions
  2444. fixed Flash9 dynamic runtime type field access
  2445. fixed very tricky typing bug with constructors inheritance
  2446. fixed some documentation related parser bug
  2447. fixed stack overflow with static setter
  2448. fixed package completion bug when -cp points to an not existing dir
  2449. fix duplicate sandboxes tags with -swf
  2450. __resolve in Haxe Remoting is now public
  2451. 2007-07-25: 1.14
  2452. fixed no error when invalid "catch" expression
  2453. remove variance
  2454. fixed prototype bug in neko when "Main" class is defined
  2455. fixed flash9 xml iterator methods
  2456. bugfix in flash9 ByteArray serialization
  2457. fixed genAS3 conflicting classes and interfaces
  2458. preserve neko output file extension
  2459. added flash.Event for Flash9
  2460. added --no-output
  2461. fixed neko.net.Socket peer and host methods
  2462. added neko.io.Process and neko.vm.Ui
  2463. added haxe.xml.Proxy
  2464. some flash6 fixes
  2465. allowed simplequotes for xml attributes in Flash9 and JS
  2466. flash9 optimizing compiler
  2467. new faster neko binary AST
  2468. added haxe.remoting.NekoSocketConnection and SocketProtocol
  2469. don't allow for...in iteration with Dynamic or Unknown
  2470. added flash9 resources
  2471. fixed precedence of ternary operator ?:
  2472. 2007-05-18: 1.13
  2473. fixed bug with local variable masking package in catch type
  2474. fixed "Not_found" when enum params differs
  2475. added "override" for AS3 generator
  2476. fixed stack overflow in typedefs
  2477. added haxe.Timer.queue, removed delayedArg (use callback instead)
  2478. fixed haxe.remoting.SocketConnection (msg invertions might occur)
  2479. add uniqueness check for switch constants
  2480. js : HtmlCollection and MetaDom.childNodes are not true Arrays
  2481. allowed semicolon after typedef declaration
  2482. fixed in-loop closure usage of "for" variable for Flash and JS
  2483. added neko.net.ThreadRemotingServer.onXml (to handle crossdomain xml)
  2484. more accurate stack trace for socket remoting
  2485. prevent some memory leak in haxe.Timer / JS
  2486. added flash fullscreen support
  2487. added cond?a:b syntax support
  2488. added utf8 buffer api
  2489. added haxelib "dev" mode
  2490. renamed Http.asyncRequest to customRequest
  2491. add classes to Neko module export table
  2492. fixed parametrized enums for Flash6
  2493. fixed bug with completion and interfaces
  2494. fixed --flash-use-stage in Flash9
  2495. 2007-03-06: 1.12
  2496. added flash lite support with -D flash_lite
  2497. bugfix for Unknown<X> should Unknown<X>
  2498. prevent some exceptions in neko.net.ProxyDetect
  2499. fixed ByteArray serialization
  2500. added neko.Int32
  2501. added -x for fast neko scripting
  2502. prevent locals from breaking class access (works with imports)
  2503. fix in function overriding subtyping
  2504. added haxe.remoting.FlashJsConnection
  2505. fixed tar support in neko.zip.File
  2506. ide completion support using --display
  2507. give access to neko.net.Host ip (as Int32)
  2508. fixed bug when calling super.UpperCaseMethod()
  2509. hide additional flash Array methods
  2510. allow leading comma in anonymous types
  2511. added haxe.Public interface
  2512. added AS3 code generator
  2513. field lookup gives priority to superclass over interfaces
  2514. improved haxedoc output
  2515. fixed bug in neko regexp split/replace when empty match at eol
  2516. fixed bug in flash 6-7-8 resources generation
  2517. 2007-01-28: 1.11
  2518. changed StringBuf.add implementation
  2519. added haxe.Firebug
  2520. allowed variable return type for overridden/implemented methods
  2521. display error position in front of each error line
  2522. improved error messages when optional arguments not matched
  2523. added neko.io.Path
  2524. added neko.net.ProxyDetect
  2525. bugfix in unify : prevent recursive anonymous objects
  2526. haxe.Http call "prepare" only if size is known
  2527. added multiple expressions in "case"
  2528. serialization : deprecated old string format, use urlEncode/Decode
  2529. added flash9 bytearray serialization (to binary string, for neko com)
  2530. fixed Type.typeof on some flash9 instances
  2531. no more dontUseCache (haxe.Serializer.USE_CACHE, default to false)
  2532. small genxml/haxedoc improvements
  2533. added Type.enumEq
  2534. local function parameters are now inferred in several cases
  2535. optional RTTI for Spod Object
  2536. bugfix related to callback in neko code generator
  2537. more type error stack (now includes type parameters)
  2538. type system fixes in anonymous subtyping
  2539. added Iterable<T>, changed Lambda
  2540. added TAR and GZIP support to neko.io.Zip
  2541. compute minimal array content type
  2542. fixes in enum switchs
  2543. 2007-01-01: 1.10
  2544. fix in haxe.remoting.SocketConnection.readAnswer
  2545. fix in postfix incr/decr and getter/setter
  2546. added haxe.Http.fileTransfert for Neko
  2547. fixed haxelib to 1.02 (use multipart file transfert)
  2548. fixed Array.reverse
  2549. added flash.Lib.getURL and fscommand for Flash9
  2550. fixed some ignored parse errors
  2551. fixed minor syntax : immediate object access
  2552. allow extend/implements a typedef
  2553. fixed Flash9 AMF remoting
  2554. fixed Flash9 bugs in Date object
  2555. fixed dynamic Array typing bug
  2556. allowed typedef private field access
  2557. added Class<T> base class type
  2558. AsyncConnection.call callback is now optional
  2559. fixed if/switch with no else/default compilation
  2560. moved Reflect.createInstance to Type
  2561. added Reflect.makeVarArgs
  2562. haXelib 1.03 : several developers per project + web interface
  2563. 2006-11-22: 1.09
  2564. added neko.vm.Module and neko.vm.Loader
  2565. haxelib : allowed spaces in "run" arguments
  2566. allowed Thread comparison
  2567. fixed bug in SWF6 compilation
  2568. allowed either Mysql or Mysql5 usage
  2569. replaced db.Connection.hasFeature by db.Connection.dbName
  2570. added Socket.custom field
  2571. moved neko.Thread to neko.vm.Thread
  2572. define haxe_109 (for api changes)
  2573. fixes in haxe.remoting.Connection and haxe.Unserializer for F9
  2574. added haxe.remoting.Connection.urlConnect for JS
  2575. allowed private typedef fields
  2576. added neko.net.ThreadServer, ThreadRemotingServer and Poll
  2577. removed neko.net.RemotingBuffer
  2578. relaxed enums switchs (allow value in first case)
  2579. changed "cast" codegeneration (fix some F9 usages)
  2580. change in POST data handling in mod_neko (max 256K, except multipart)
  2581. added neko.Web.getClientHeaders and neko.Web.flush
  2582. "callback" is now a keyword
  2583. fixed stack overflow when typedef = Dynamic
  2584. fixed Reflect.createInstance on F9
  2585. Array : slice optional length, fixed neko slice & splice
  2586. + fixed cast return type
  2587. 2006-10-29: 1.08
  2588. fixed bug in flash -debug
  2589. fixed Sqlite result .length
  2590. fixed missing "." in OSX/Linux default classpath
  2591. fixed haxelib NDLL autoloading on OSX
  2592. fixed bug in deserialization of "\\\r" sequence
  2593. added inheritance and fields getter/setter to xml output
  2594. haxedoc 2.0
  2595. fixed neko native enum serialization
  2596. fixed "all constructors matched" for enums without params
  2597. fixed returned value semantics in neko (prevent remoting leak)
  2598. more documentation
  2599. added haxe.rtti package (classes can implement haxe.rtti.Infos)
  2600. fixed windows line endings in exclude files under linux/osx
  2601. fixed small bug in "cast" syntax
  2602. added "callback" for partial function application
  2603. added --auto-xml for future haxeFD usage
  2604. fixed Reflect.isFunction
  2605. minor bugfix in JS code generator
  2606. new neko.net package
  2607. allow recursive remoting proxys (skip instead of error)
  2608. added neko.Thread and neko.Lock MultiThread classes
  2609. added neko.net.ServerLoop for multiple clients handling
  2610. 2006-09-11: 1.07
  2611. fixed resources in Neko
  2612. typedef, override, package and f9dynamic are now keywords
  2613. slighly changed error format output
  2614. fixed "undefined" serialization and Type.typeof
  2615. some fixes in haxelib
  2616. set default classpath for non windows systems
  2617. added variance
  2618. fixed bug in bounded type parameters
  2619. fixed scope bug in try/catch with Flash9
  2620. added remoting over XMLSocket and LocalConnection for Flash9
  2621. fixed Std.is(*,null) = false
  2622. allowed >64K Haxe/neko strings
  2623. -debug and stack traces support for Flash and JS
  2624. minor changes in xml output
  2625. 2006-08-28: 1.06
  2626. allowed extern enums
  2627. use only matching construct when parameters are matched
  2628. fixed bug preventing & char to be sent between JS and Flash remoting
  2629. improved flash9 api (more strict)
  2630. flash9 xml : use JS ReXml parser
  2631. added neko.io package (Input/Output)
  2632. moved neko.File and neko.Socket to neko.io package
  2633. fixed flash optional arguments (when extending flash.MC)
  2634. fixed neko native serialization problems
  2635. variable modification does not have side effects in 'for x in a...b'
  2636. jit disabled by default for neko web server
  2637. enable flash7-8 libraries usage from flash9
  2638. unknown identifier become "class not found" when representing a classpath
  2639. changed haxe.PosInfos handling
  2640. added -debug (removed --flash-debug) effective on flash9 and neko only now
  2641. added Type.typeof
  2642. improved Serializer speed
  2643. added Serialization support for Date, Hash, IntHash, List
  2644. added flash9 and JS IE/Opera class reflection
  2645. added haxe.xml.Check and haxe.xml.Fast
  2646. added Xml.parent
  2647. added haxelib
  2648. added ArrayAccess interface
  2649. 2006-08-16: 1.05
  2650. moved Md5 to haxe package.
  2651. some method renamed in neko.FileSystem.
  2652. added neko.remoting.Server.setLogger
  2653. fixed bug in haxe.Serializer on neko (was preventing List serialization)
  2654. fixed bugs in Haxe.Unserializer on neko (invalid enum tag & pbs with UTF8 strings)
  2655. fixed sqlite escape & quote , added BOOL support
  2656. allowed direct property access in getter/setter (prevent rec loop)
  2657. allowed event-driven neko http requests
  2658. forbidden "name" static in js
  2659. don't allow variable redeclaration in subclasses
  2660. added && || and ! in conditional compilation rules
  2661. metas : removed __construct__ and class.toString.
  2662. metas : __super__ and __interfaces__ now optional
  2663. added Type api (seperated from Reflect)
  2664. flash 9 support
  2665. 2006-07-25: 1.04
  2666. added macros in haxe.Template
  2667. allowed static variables access from a signature shortcut
  2668. allowed new Signature when signature is a class
  2669. fixed : modulo priority is now higher than mult and div
  2670. fixed bug in haxe.Proxy generation
  2671. fixed more stack overflows with recursive signatures
  2672. fixed bug in class <: anonymous subtyping (inherited fields)
  2673. override is not mandatory by default (need --override)
  2674. added neko just-in-time
  2675. fixed bugs in haxe.Serializer and haxe.Unserializer (enum format change)
  2676. changed "signature" by "typedef" (more comprehensible)
  2677. restricted objects comparisons
  2678. fixed bug with js operator priority
  2679. improved performances for haxe.Serializer and haxe.Unserializer
  2680. fixed bug in static variable lookup (should look class in the last case)
  2681. prevented several prints of "not enough arguments".
  2682. 2006-06-23: 1.03
  2683. haxedoc executable now part of the distribution
  2684. removed selectDB from the neko.db.Connection API
  2685. added optional parameters with selection
  2686. removed --no-flash-opt-args
  2687. changes in SWF packages handling
  2688. fixed optional leading comma in anonymous object and array values
  2689. fixed bug in inheritend constructor type parameters
  2690. fixed bug in type_field with inherited type parameters
  2691. added haxe.Proxy
  2692. added code transformations for swf/js block variables
  2693. fixed very tricky bug with constraint parameters used together with polymorphic methods
  2694. added selective import (import x.y.Class.InnerType)
  2695. added optional enum constructor parameters
  2696. added opened anonymous types (no more Unknown has no field...)
  2697. fixed "MovieClip extends flash.MovieClip".
  2698. added Reflect.copy
  2699. added neko.Random
  2700. added Date.fromString
  2701. fixed bug in haxe.Unserializer, slighlty optimized haxe.Serializer
  2702. added __setfield magic (complete __resolve)
  2703. added explicit override when overriding methods
  2704. 2006-06-08: 1.02
  2705. fixed stack overflow when recursive class <: recursive signature
  2706. improved a bit commandline : allow several hxml arguments
  2707. added {> Class, fields... } types declarations
  2708. added cast without type (less dangerous than untyped)
  2709. no stage objects by default, added --flash-use-stage
  2710. added haxe.remoting.DelayedConnection
  2711. added -exclude
  2712. removed classpath from neko debug infos filenames
  2713. fixed bug in Neko empty Array.pop and Neko EReg.replace ""
  2714. fixed nodeValue for Neko XML comments, doctype, prolog
  2715. improved DocView : formating, signatures, files generation
  2716. added neko.zip package
  2717. fixed bug in neko.File binary flags
  2718. fixed problems when downloading large files using haxe.Http under Neko
  2719. neko.db.Connection and neko.db.ResultSet are now interfaces
  2720. added neko.db.Sqlite and neko sqlite ndll
  2721. mod_neko2.ndll for Apache2 in Windows distribution
  2722. fixed bug in static properties method resolution
  2723. change js.Dom : use cascading signatures and improved api
  2724. added haxe.unit Unit test framework
  2725. 2006-05-25: 1.01
  2726. added neko.Utf8
  2727. Serializer/Unserializer now support utf8 strings
  2728. allowed subtyping of prop accesses public/private when implementing an interface
  2729. removed "eval" from Remoting APIs (only calls - more easy to handle).
  2730. added flash6 support
  2731. fixed Std.is on different platforms (interfaces implements interface)
  2732. added AsyncConnection.amfConnect for flash
  2733. added SWF overflow checks
  2734. changed "property" to "var"
  2735. don't allow monorph unification with Dynamic (more safe)
  2736. allowed multiple parsing and typing errors
  2737. review and completed commandline options
  2738. error on backwards constant integer iterators
  2739. remoting proxy constructor is now public
  2740. fixed -swf-header override the swflib background color
  2741. moved all remoting classes into the haxe.remoting package
  2742. added haxe.remoting.LocalConnection
  2743. 2006-05-17: 1.0
  2744. fixed small bugs in JS Xml Parser (empty attribute, newlines in attributes)
  2745. added default Content-Type for haxe.Http in JS
  2746. haxe.AsyncConnection : onError should not be call if error occur in onData
  2747. fixed infinite loop if haxe.Unserializer.readDigits reach eof on JS/Flash
  2748. fixed bugs in neko.Web and neko.Sys (some methods returning "null" instead of null)
  2749. added neko.Socket.setBlocking for nonblocking sockets
  2750. fixed bug in js generator when using cascading iterators
  2751. fixed typing bug when overloading parametrized method
  2752. fixed bug in js generator when "try" without curly braces.
  2753. allowed enum catching
  2754. added remoting proxys
  2755. allowed neko.Web API commandline emulation outside mod_neko
  2756. removed subtyping Anon :> Instance
  2757. added signatures, Iterator is now a signature
  2758. getter/setter and public/private unification
  2759. allowed anonymous declaration with interface-style syntax (for signatures)
  2760. optimized code generated for underscore in enum matches parameters
  2761. fixed flash/js String.charCodeAt(outside) => null
  2762. fixed neko charAt(outside) => ""
  2763. added errors for strings containing \0 in JS and Flash
  2764. added HAXE_LIBRARY_PATH environment variable support
  2765. fixed interfaces inheritance : can't extend, can implement (type-sums)
  2766. fixed fixed >64K resource bug in SWF
  2767. fixed newline problems with Flash/JS Connection
  2768. 2006-05-02: RC1
  2769. added the Socket class
  2770. fixed a bug of returned value in neko with 6 or more parameters
  2771. added "Missing type" error for catchs.
  2772. added regular expressions (still missing Flash implementation)
  2773. fixed type printing and parenthesis in type declarations
  2774. different behavior when elements removed during Array.iteration
  2775. fixed genswf : local variables used in for...function
  2776. improved type parameters structure coherency
  2777. enable usage of Spod without Transaction
  2778. implemented neko.db.Transaction.isDeadlock
  2779. slighly relaxed one of the javascript generator constraint
  2780. added haxe.Template
  2781. moved Log , PosInfos and ImportAll to haxe package
  2782. completed private class/interface/enum support
  2783. removed Array.indexes
  2784. added __resolve compile-time support when class implement Dynamic
  2785. added haxe Remoting
  2786. added "module with different case" error (for windows)
  2787. added Reflect.resolveClass, Reflect.resolveEnum, Reflect.setPrototype
  2788. added access to classes by name in genneko
  2789. added enum.__ename__
  2790. fixed Std.is(e,enum)
  2791. fixed infinite loop in neko EReg split/replace and epsilon matching
  2792. added neko native serialization support
  2793. fixed syntax for multiple constraints in type parameter
  2794. added recursive type parameters constraints (T : C<T> constraints)
  2795. updated Xml handling
  2796. 2006-04-17: beta 5
  2797. fixed bug : continue in do...while
  2798. changed typing order for do...while (infer condition after block)
  2799. fixed JS "catch" generation
  2800. fixed extending flash.* extern class
  2801. fixed bug in neko generator w/ closures
  2802. fixed bug in js generator (return switch need correct "this" context)
  2803. fixed bug in for x in a...b : invalid local variables overridding
  2804. added properties
  2805. fixed bug in js generator : while...switch...break
  2806. new List implementation
  2807. can use static function __init__ on every platform
  2808. bug fixes in Reflect.fields
  2809. added Hash.remove, changed Hash/JS implementation
  2810. added flash __delete__ support
  2811. added neko.db.Object, Manager, Transaction
  2812. fixed neko class.__interfaces__
  2813. added "assigning a value to itself" error
  2814. added automatic PosInfos when is last parameter
  2815. added polymorphic methods
  2816. added check_flash_args support
  2817. 2006-04-02: beta 4
  2818. fixed javascript events case
  2819. fixed invalid use of physeq
  2820. fixed + type inference
  2821. added -altfmt
  2822. allowed anonymous <: class subtyping
  2823. relaxed unifications of expressions in "for" and "while"
  2824. more methods in List
  2825. syntax changes : mandatory parenthesis for "for" and "while"
  2826. allowed any kind of identifier almost everywhere
  2827. moved tools, flash, js and neko inside "std"
  2828. no need for 0x in flash header bgcolor
  2829. added -res
  2830. fixed type parameter contraint holes
  2831. Std.is Dynamic always returns true
  2832. added Enum.toString
  2833. neko : env locals can be modified in inner functions
  2834. completed js keywords list in generator
  2835. added Reflect.typeof
  2836. prioritize neko.Lib.load static calls
  2837. fixed bugs in for...in optimization with continue
  2838. fixed Reflect fields, added documentation, added Class
  2839. added javascript closures, fixed null closures on flash and Neko
  2840. added javascript __init__ statics and js.XMLHttpRequest
  2841. added neko.Stack
  2842. fixed bug in Std.ord
  2843. convert neko string to haxe string on catch
  2844. automaticaly creates empty clips for classes extending flash.MovieClip
  2845. unify stack : several meaningful unification errors
  2846. added cast operation and keyword
  2847. 2006-03-11: beta 3
  2848. javascript generator
  2849. optimized for in interval
  2850. renaming of locals (name must be unique)
  2851. added uncaught exceptions handling in Flash
  2852. fixed Bool.true == true and Bool.false == false on all platforms
  2853. fixed matching on Bool different from enums
  2854. removed -fplayer (use -D instead) and added -fheader
  2855. fixed infinity is Int
  2856. added "here" special identifier
  2857. neko Apis : File, FileSystem, Sys
  2858. added base JS API
  2859. 2006-02-19: beta 2
  2860. renamed neko.db.Result to neko.db.ResultSet
  2861. added Date support for Mysql results
  2862. added private fields for static class anonymous types
  2863. disambigous >=, >>= and >>>=
  2864. fixed inheritance bug in swf and neko generators
  2865. improved function parameters type error reporting.
  2866. allowed variable number of args for flash.* constructors.
  2867. added Math.random(), Reflect.empty()
  2868. added flash.XMLSocket and flash.Timer classes
  2869. completed Std class with conversion functions and others.
  2870. completed flash.Lib class with flash toplevel functions.
  2871. fixed bugs in neko webserver
  2872. 2006-02-04: beta 1
  2873. allowed array literals to be dynamic
  2874. use neko 1.2 commandline and prototypes
  2875. changed #cond to #if cond for conditional compilation
  2876. all fields are defined to null by default
  2877. defined __class__ and other meta accesses for Flash and Neko
  2878. fixed type hole for compiler-know types (should not resolve using imports)
  2879. changed packages : neko.* and flash.* (with protection)
  2880. added Lazy types : type the fields when they are needed with recursion
  2881. untyped accesses are monomorphs, not dynamics
  2882. generated __string check that toString() return an object
  2883. XmlParser and other APIs for Neko
  2884. fixed escaped chars in Neko generation
  2885. conservative static initialization order
  2886. allowed no type parameters for new Class
  2887. function types carry parameter names
  2888. anonymous types contain private variables (for private static accesses)
  2889. added optional name for anonymous types in typer (for static accesses)
  2890. private classes and enums (partial support)
  2891. improved error message for invalid number of arguments
  2892. flash extern classes can take variable number of args.
  2893. added -swf-lib for importing SWF library
  2894. added neko.db package
  2895. 2005-12-23: alpha 5
  2896. added -main commandline parameter
  2897. catches are now working with Neko
  2898. restricted catch types for type-safety
  2899. added constructor inheritance + check if superconstructor is called
  2900. allowed Dynamic-only subtyping on type parameters
  2901. added method closures to Neko generation
  2902. added class Reflect
  2903. added License : libraries are BSD
  2904. added -xml documentation output
  2905. allowed class instance :> anonymous subtyping
  2906. 2005-12-10: alpha 4
  2907. forbid break and continue outside loops
  2908. fixed SWF generation bugs
  2909. added SWF "extends" support
  2910. added method closures
  2911. added some flash lowlevel operations (__xxx__)
  2912. added Log, LogInfos and trace
  2913. added Neko generation
  2914. fixed problems with conditional compilation macros
  2915. 2005-11-30: alpha 3
  2916. added Flash extern classes
  2917. Boot initialization
  2918. added "untyped"
  2919. added conditional compilation
  2920. added interfaces
  2921. changed iterators from closures to objects
  2922. added (XML)Node and XmlParser for Flash
  2923. 2005-11-25: alpha 2
  2924. swf generation (missing iterators)
  2925. some typing fixes
  2926. 2005-11-17: alpha 1b
  2927. fix some bugs
  2928. changed package tests.lang
  2929. 2005-11-14: alpha 1
  2930. lexer
  2931. parser
  2932. typer