-
-
Notifications
You must be signed in to change notification settings - Fork 646
/
CHANGES.txt
1750 lines (1619 loc) · 79.4 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2017-??-??: 3.4.0
Bugfixes:
all : fixed issue with side-effect detection when optimizing (#5911)
php7 : Allow user-defined modules in `php` package (#5921)
php7 : Dereference some of `php.Syntax` methods if required (#5923)
2016-12-24: 3.4.0-RC2
New features:
js : added API documentation to HTML externs (#5868)
php : added php7 target, enabled with -D php7
Bugfixes:
all : fixed top-down inference infinite recursion issue (#5848)
all : fixed regression in Compiler.include (#5847)
all : fixed Not_found exception related to try/catch (#5851)
all : fixed metadata completion showing up in trace arguments (#5775)
all : fixed problem with useless pattern detection (#5873)
all : fixed issue with toString handling in trace arguments (#5858)
all : fixed inline constructor scoping (#5855)
cpp : fixed issue with cpp.Pointer variables being eliminated (#5850)
js : added Notification API to HTML externs (#5852)
js : fixed several options structures in HTML externs (#5849)
php/cs : FileSystem.deleteFile() and FileSystem.deleteDirectory() now throw on non-existent path (#5742)
php/lua : fixed field access on `null` (#4988)
php : fixed static field access on a `Class<T>` stored to a field (#5383)
php : fixed invalid detection of `NativeArray` by `Std.is()` (#5565)
php : fixed `stdin()`, `stdout()`, `stderr()` of `Sys` to use predefined constants for corresponding channels (#5733)
php : fixed Std.parseInt() on hexstrings for PHP7+ (#5521)
php : fixed typed cast in assign operations (#5135)
php : fixed exception thrown by `Reflect.fields(o)` when `o` is `Class<T>` (#5608)
php : fixed json encoding of empty objects (#5015)
php : fixed checking floats for equality (#4260)
php : throw if invalid json string supplied to Json.parse() (#4592)
php : fixed ssl connections (#4581)
php : fixed writing bytes containing zero byte to MySQL & SQLite (#4489)
php : fixed call()() cases for PHP5 (#5569)
2016-11-29: 3.4.0-RC1
New features:
all : support metadata completion
all : support type-hint completion
all : added @signature display mode (#4758)
all : finalized HashLink (HL) target
General improvements and optimizations:
all : greatly improved support for display mode in general
all : made --times output look much nicer
all : remove calls to functions that have no side-effect
all : hid private property accessors from completion (#5678)
js : updated jQuery extern (js.jquery.*) for jQuery 1.12.4 / 3.1.0 support.
js : jQuery extern (js.jquery.*) now includes deprecated fields marked with @:deprecated.
js : no longer rewrite `o["s"]` to `o.s` (#5724)
cpp : greatly improved ObjC output and integration options
lua : greatly improved code output quality
Bugfixes:
all : fixed various optimization issues
all : fixed various issues with side-effect detection
all : fixed performance drain in the DCE implementation (#5716)
all : fixed issue with assignments when inlining constructors (#5340)
all : fixed major inlining issue when using compilation server (#5320)
all : fixed pattern matching evaluation order issue (#5274)
cpp : fixed various minor code generation issues
js : fixed issue regarding iterating over abstracts (#5385)
python : fixed evaluation order issue for array writing (#5366)
Standard Library:
all : added Any type (#5500)
all : added haxe.extern.AsVar
all : added haxe.macro.CompilationServer (experimental)
all : fixed haxe.Template.resolve (#5301)
2016-05-27: 3.3.0-RC1
New features:
all : support @:resolve on abstracts (#3753)
all : support extern abstracts and extern @:enum abstracts (#4862)
all : support completion on { if the expected type is a structure (#3907)
all : support (expr is Type) with mandatory parentheses (#2976)
all : allowed passing package dot-paths on command line (#4227)
all : support import.hx modules that define per-directory import/using directives (#1138)
all : support parsing of postfix ! operator (can be used by abstract operator overloading and macros) (#4284)
all : support parsing of ||= and &&= operators (can be used by abstract operator overloading and macros) (#4427)
all : support @:structInit classes (#4526)
all : reworked static analyzer and enabled it by default
flash : update flash externs to version 21
hl : added HL target (interpreter and C output)
lua: added lua target
js : introduced new jQuery extern (js.jquery.*) for jQuery 1.12.4 / 2.2.4 support. (#4377)
js : introduced new SWFObject extern (js.swfobject.SWFObject) for SWFObject 2.3.20130521 (#4451)
js : added js.Lib.rethrow (#4551)
cs/java : added -D fast_cast as an experimental feature to cleanup casts
Bugfixes:
all : properly disallowed assigning methods to structures with read-accessors (#3975)
all : fixed a bug related to abstract + Int/Float and implicit casts (#4122)
all : disallowed duplicate type parameter names (#4293)
all : made UInt's >>> behave like >> (#2736)
all : fixed various type loading issues
all : fixed code generation problems with `inline` (#1827)
php/as3 : support run-time metadata on interfaces (#2042)
php : fixed argument passing to closures (#2587)
neko/cpp : fixed various sys.Filesystem issues with Windows drive paths (#3266)
as3 : fixed problem with covariant return types (#4222)
as3 : fixed rare problem with static initialization order (#3563)
python : fixed various reflection problems
General improvements and optimizations:
all : added support for determining minimal types in Map literals (#4196)
all : allowed @:native on abstracts to set the name of the implementation class (#4158)
all : allowed creating closures on abstract inline methods (#4165)
all : type parameter declarations can now have metadata (#3836)
all : optimize Math.ceil/floor on constant arguments (#4223)
all : allowed extern classes to have field names being used for both static and instance (#4376)
all : added haxe.Constraints.Constructible (#4761)
all : rewrote pattern matcher to improve output in many cases (#4940)
python : use spaces instead of tabs to indent the output (#4299)
cpp : reworked backend to improve overall code output quality and fix various issues
swf : added scene-tag to allow creating accessible SWF files
Standard Library:
all : added Lambda.flatten and Lambda.flatMap (#3553)
all : added haxe.Constraints.Constructible (#4761)
sys : proper quoting/escaping (can be opt-out) for Sys.command and sys.io.Process (#3603)
js : added position parameter to haxe.macro.Compiler.includeFile
js : removed -D embed-js (#4074)
js : updated HTML externs
Macro features and changes:
macro : added overloads field to ClassField (#3460)
macro : added Context.getLocalImports (#3560)
macro : added Context.onAfterTyping (#4714)
macro : added Context.resolveType
2015-10-11: 3.2.1
Bugfixes:
cs/java : fixed `-dce no` issues
cs/java : fixed how KExpr type parameters are generated
cs : fixed enum creation by reflection problem
cpp : do not rely in reflection to make interfaces work for non-first interface parents
cpp : fixed setting of static variables via reflection when class has no member variables
cpp : make sure StringMap's h field is kept if we use StringMap
js : Avoid the use of `eval`/`Function` to get the top-level defined type/var to not break ContentSecurityPolicy
2015-05-12: 3.2.0
New features:
all : added @:noPrivateAccess to re-enable access restrictions within @:privateAccess
cpp : some support for @:nativeGen metadata
Bugfixes:
all : fixed detection of @:generic classes with constructor constraints
all : fixed variable initialization check issue in loop condition
all : fixed pattern matching on @:enum abstracts via field access (#4084)
all : fixed missing implicit casts in Map literals (#4100)
all : fixed various minor issues in haxe.xml.Parser
all : fixed class path issue when HAXE_STD_PATH is set (#4163)
js : fixed DCE issue related to printing enums (#4197)
js : fixed various issues with the new Bytes implementation
php : fixed EOF handling in FileInput.readByte (#4082)
cs/java : fixed Math.fround implementation (#4177)
cs/java : fixed some cases of Std.parseInt failing (#4132)
cpp : fixed compilation without -main (#4199)
General improvements and optimizations:
all : --macro keep no longer causes types to be included for compilation
php : support interpolation in __php__ code
js : added variable number of arguments support in js.html.* classes
js : refined new HTML externs
Macro features and changes:
macro : [breaking] synced FClosure and FInstance with the compiler updates
2015-03-15: 3.2.0-RC1
This release removes support for Flash 8 target
New features:
all : added --display mode for toplevel completion
all : added --display mode for position and usage information
all : allowed @:callable on abstracts to forward calls to their underlying type
all : allowed pattern matching on getters
all : allowed @:native on class fields
all : added static analyzer with constant propagation
all : added Haxe-based XML implementation
python : added python target
flash : flash player 12-14 support
js : added @:jsRequire and js.Lib.require
js : support haxe.CallStack.exceptionStack
cs : added @:bridgeProperties
cs : added -D erase_generics
cs : added -D dll_import to import haxe-generated dlls
java/cs : added `sys.db` package
java/cs : clean unused files in output folder, unless `-D keep_old_output` is defined
java/cs : added `-c-arg` to add C#/Java compiler arguments
cpp : inititial implementation of cppia scripting
Bugfixes:
all : fixed nullability of abstracts over functions
all : fixed some equality checks between UInt and Int
all : fixed rare issue with abstract casts
all : fixed some internal code which relied on unspecified evaluation order
all : fixed exhaustiveness checks involving guards
all : fixed issue involving recursively constrained type parameters and @:generic
all : fixed type inference issue in map literals
all : fixed type inference issue when calling abstract method from within the abstract
all : fixed several abstract variance issues
all : fixed DCE issues with interface properties
all : fixed variance issue with function variables and dynamic methods on interfaces
all : fixed pattern matching on empty arrays that are typed as Dynamic
all : fixed various @:generic issues
all : fixed default cases on @:enum abstract being omitted
all : fixed various expression positions
all : disallowed break/continue in closures in loops
all : disallowed inline functions in value places
all : fixed parsing of cast followed by parentheses
all : fixed resource naming in case of invalid file system characters
all : fixed issue with inlined array declarations with field access
cpp : fixed issue with the side-effect handler
cpp : fixed issue with NativeArray in --no-inline mode
php : fixed issue with invalid references for closures in for-loops
php : fixed Reflect.compare and string comparison for numeric strings
cs/java : fixed various issues with -java-lib and -net-lib.
cs/java : added @:libType to skip checking on -java-lib / -net-lib types
cs/java : compilation server now works with C#/Java [experimental support]
cs : fixed Type.enumIndex / switch on C# native enums
cs : fixed reflection on COM types
java : fixed sys.net.Socket server implementation
spod : various fixes - working now on cpp, java, neko, php and c#
cpp : improved boot order, with enums constants first
General improvements and optimizations:
all : disallowed using `super` in value positions
all : check exhaustiveness of explicit Null types
all : resolve unqualified identifiers to @:enum abstract constructors
all : determine @:generic type parameters from constructor call if possible
all : properly disallowed field redefinition in extending interface
all : properly disallowed leading zeroes for Int and Float literals
all : allowed variance on interface variables
all : allowed pattern matching on arrays if they are typed as Dynamic
all : allowed pattern matching on fields of parent classes
all : -D doc-gen no longer implies -dce no
all : allowed matching against null on any enum instance
flash/js: optimized haxe.ds.StringMap
neko : create output directory if it does not exist
js : inline Math methods and fields
cs/java : optimized Reflect.fields on dynamic structures
cs/java : haxe will now clear output directory of old files (use -D keep-old-output to keep them)
cs : optimized field lookup structure
cs : optimized casting of parametrized types
cs : beautify c# code output
cs : added `cs.Flags` to manipulate C# enums that can be also flags
xml : improved documentation generation and fixed missing entity escaping
cpp : property access via Dynamic variables now requires property to be declared with @:nativeProperty
cpp : allow injection of code from relative paths using @:sourceFile and @:cppInclude
cpp : stronger typing of native functions via cpp.Function + cpp.Callable
cpp : moved 'Class' implementation to hx namespace to improve objective C interaction
cpp : added file_extension define to change the output filename extension (eg, ".mm")
cpp : added pre-calculated hashes to string constants to allow faster lookups
cpp : map implementation allows strongly typed interactions in some cases (avoids boxing)
cpp : added native WeakMap implementation
cpp : put each resource into own cpp file to allow more data/smaller files
Standard Library:
all : added typed arrays to haxe.io package
all : added haxe.ds.Either
all : added haxe.extern.Rest type for representing "rest" arguments in extern method signatures
all : added haxe.extern.EitherType abstract type for dealing with externs for dynamic targets
all : added haxe.DynamicAccess type for working with dynamic anonymous structures using a Map-like interface
all : [breaking] changed haxe.ds.Vector.get to return T instead of Null<T>
all : added haxe.macro.Compiler.addGlobalMetadata
all : changed haxe.Int64 to be an abstract type instead of a class
js : updated HTML externs
Macro features and changes:
macro : added Context.getLocalTVars
macro : added TypedExprTools.iter
macro : added Context.getCallArguments
macro : changed @:genericBuild macros to prefer ComplexType returns
macro : [breaking] extended TAnonymous structures now have AExtend status instead of AClosed
macro : added Context.getDefines
macro : fixed file_seek from end (position was inversed)
macro : added Context.storeTypedExpr
macro : allowed type name reification
Deprecations:
all : deprecated structurally extending classes and interfaces
sys : Sys.command shell special chars (&|<>#;*?(){}$) are now properly escaped
java/cs : Lib.nativeType is now renamed to Lib.getNativeType
2014-04-13: 3.1.3
Bugfixes:
all : fixed handling of abstract variance
flash : ensure correct endianess in haxe.io.BytesBuffer
cpp : fixed issue involving class paths with spaces
php : fixed >>>
macro : fixed haxe.macro.Compiler.keep
General improvements and optimizations:
all : give @:deprecated warnings by default, allow -D no-deprecation-warnings
cpp : optimized Vector implementation
Standard Library:
all : renamed Bytes.readDouble/Float to getDouble/Float to avoid inheritance issues
all : deprecated Bytes.readString in favor of getString
all : added pretty-printing to haxe.format.JsonPrinter (and haxe.Json)
2014-03-29: 3.1.2
Bugfixes:
all : disallowed spaces between >>, >>>, >>= and >>>=
all : fix branching issue when switching on Dynamic values with only one case
all : added missing abstract cast call when checking for equality
all : fixed member fields initializations on parent classes that have no constructor
all : fixed toString usage of abstracts which are argument to Std.string
flash : avoid rare FP 12 PPAPI JIT crash
cpp : fixed bug in side-effect handler which caused incorrect behavior of while loops
js : fixed missing print function for enum values with DCE
macro : make sure member field initializations are respected
General improvements and optimizations:
all : cached file exist checks to speed up compilations with a lot of class paths
all : improved completion related to super class fields
all : allowed iterating on abstract which have get_length and @:arrayAccess fields
js : improved Type.allEnums implementation to avoid issues with obfuscation
Standard Library:
all : added haxe.io.Bytes.readDouble/Float
all : added haxe.io.BytesBuffer.addString/Float/Double
2014-03-15: 3.1.1
New features:
all : added -D deprecation-warnings
all : allowed \u escape sequences in strings
cs : implemented haxe.CallStack
Bugfixes:
all : fixed wrong handling of "" and null in haxe.io.Path.join
all : fixed invalid cast-to-self generation on some abstracts
all : removed @:to Dynamic from UInt to avoid issues in the Map selection algorithm
all : fixed various issues with UInt
all : fixed position setter in haxe.io.BytesInput
all : fixed various issues with member/static extension macros
flash : fixed invalid override involving single-constraint type parameters
flash8 : fixed various bugs
js : fixed a problem with Std.string(null) being optimized incorrectly
js : fixed custom generators
cpp : dealt with string literals that are too long for MSVC
cs : fixed various issues with -net-lib
2014-03-04: 3.1.0
New features:
all : allowed null-patterns in pattern matching
all : allowed extractors in pattern matching using => syntax
all : allowed extending generic type parameters
all : allowed (expr : type) syntax (ECheckType)
all : allowed @:enum and @:forward on abstracts
all : allowed using abstracts as static extension
all : allowed Class.new
all : added EnumValue.match
all : allow multiple structural extension using { > T1, > T2, fields }
all : inline array and structure declarations if possible
cs : added -net-lib
cs : support for native delegates
cs : support for attributes
cs : support for events
Standard Library:
all : support abstract types in haxe.rtti.XmlParser
all : added Std.instance
all : added length field to BytesBuffer, BytesOutput, BytesInput and StringBuf
all : added UInt for all targets
all : added Array.indexOf and Array.lastIndexOf
all : added haxe.xml.Printer
all : added haxe.Int32 as abstract type
all : added haxe.format.JsonParser/Printer
General improvements and optimizations:
all : optimized pattern matching output
all : allowed recursive type parameter constraints
all : improved support of custom @:coreType abstracts
all : evaluate conditional expressions in @:require
all : improved inline constructors by detecting more cases where it can be applied
js : improved inlining
js : always use JSON extern (compile with -D old-browser to disable)
js : added -D js-flatten
js : added -D js-es5
cpp : improved side-effect detection
Bugfixes:
all : inlining a parameter which has side effects will not remove it even if not used
all : implemented constraints check on enum and enum field type parameters
all : fixed memory leak in compilation server and optimized caching in general
all : fixed issue with invalid lowercase class name in Windows completion
flash : fixed font embedding with UTF8 chars
flash : give error if non-nullable basic types are skipped in a call
flash : give error if assigned parent class field values would be overwritten by super()
Macro features and changes:
macro : add Context.onAfterGenerate
macro : add Context.typeExpr
macro : add Context.getExpectedType
macro : add ExprTools.getValue
macro : allowed $v{(c:Float|Int|String)}
macro : resolve error line number in external files
macro : rewrote macros used as static extension
macro : exposed typed AST
macro : added @:genericBuild
macro : [breaking] first argument of ComplexType.TExtend is now Array<TypePath> instead of TypePath
macro : improved expression printing
2013-09-25: 3.0.1
all : minor DCE bug fix
2013-05-25: 3.0.0
all : added haxe.ds.BalancedTree
all : added haxe.ds.EnumValueMap
all : allow enum constructors as keys to Map
all : haxe.ds.ObjectMap is now correctly constrained on all targets
all : preliminary support of -D display-mode=usage|position|metadata
all : improved pattern matcher error messages
all : allow inline constructors
all : allow abstract member macros (not for @:op, @:arrayAccess, @:from, @:to)
all : allow abstract type parameter variance
all : do not generate hidden null on if without else
macro : made abstract structure available
2013-05-08: 3.0.0-RC2
all : improved abstract support
all : renamed HAXE_LIBRARY_PATH to HAXE_STD_PATH
all : added inlinable constructors
all : renamed haxe.ds.FastCell to GenericCell
all : fixed >= operator in #if conditionals
all : improved completion support for Unknown results
all : allowed [] access for Map
all : added haxe.ds.WeakMap (not yet supported on all platforms)
all : all trace parameters are now printed by default
all : added --help-metas
all : improved completion
all : improved pattern matching variable capture and GADT support
js : cached $bind results (unique closure creation per instance)
js : removed --js-modern (now as default)
cpp : added socket.setFastSend
flash : update player 11.7 api
flash : improved @:font, @:sound and @:bitmap support
neko/java/cs : improved Array performances when growing with []
java : added -java-lib support
java : added sys.net package implementation (alpha)
java : complete java std library through hxjava haxelib
java/cs : added support for overloaded function declarations
java/cs : overload selection algorithm
cs : operator overloading is now accessible through Haxe
cs : source mapping; can be disabled with -D real_position
as3 : fixed rare syntax ambiguity
php : removed initialization of some inline fields
macro : fixed several issues with 'using' a macro function
macro : improved expression printing
2013-02-24: 3.0.0-RC
flash : updated player 11.4 api
all : allowed named functions as r-value
all : fixed using + overload usage
all : allow any type constraint for type parameters
all : make property type optional (when a initial value is set)
all : Std.random(x) when x <= 0 is now always 0
spod : added serialized data with SData<T>
all : Dispatcher will now throw DETooManyValues
all : speed up neko compilation by using native compiler
all : allow @:generic on functions
all : allow constructing generic type parameters
swf : added support for SWC files in -swf-lib
macro : added Context.onTypeNotFound callback for unresolved types
js : no JS embed as default (use -D embed-js instead)
all : added abstract types (Int/Float/Bool/Void/Class/Enum/EnumValue)
all : added --help-defines
all : changed DCE with three modes : std(default), no and full
all : Haxe3 packages changes (see http://haxe.org/manual/haxe3)
all : Removed haxe.Int32, haxe.Firebug, haxe.TimerQueue
all : added -D key=value and #if (key >= value) operations
all : StringTools.htmlEscape/unescape nows handle "/" and '/'
all : using and import must now appear before any type declaration in a file
all : no longer create variable fields for pure getter/setter properties (unless @:isVar is used)
all : use default get_prop/set_prop instead of custom getter/setter names for properties
js : added JQuery.delegateTarget
macro : removed EType and CType, added EMeta, modified ESwitch
all : allow @metadata expr
all : replaced haxe.rtti.Generic interface with @:generic metadata
all : no longer infer arrays of mixed types as Array<Dynamic>
all : all type/import/enum constructor resolution now follows the shadowing principle (latest has priority)
all : added EReg.matchSub, renamed EReg.customReplace to map
all : no longer allow initialization of extern non-inline variables
swf : fixed out of memory errors on very large swf-lib files
swf : added -D swf_preloader_frame, swf_gpu, swf_direct_blit
swf : added -D swf_script_timeout=seconds, swf_debug_password=password, swf_metadata=file
swf : added -swf-lib-extern
swf : added @:font support (beta)
all : added GADT support in enums
all : added pattern matching (beta)
all : changed callback(func, args) to func.bind(args)
macro : added haxe.macro.ExprTools/ComplexTypeTools/TypeTools
macro : changed reification syntax to ${expr}, $a{array}, $p{path}, $v{value}
macro : allow macro @:pos(pos-expr) to inject positions for reification
all : added array comprehension
flash : Vector.length is now Int instead of UInt
all : moved haxe.BaseCode, haxe.Md5 and haxe.SHA1 to haxe.crypto package
all : disallow Void variables and arguments (still allow S -> T to S -> Void)
all : added Array.map/filter
all : added spell check suggestions for enum constructors and fields
all : added opaque abstract(T) types
all : allow operator overloading on opaque abstract types
all : renamed IntIter to IntIterator
all : added Map
all : added haxe.ds with StringMap, IntMap, HashMap, ObjectMap, Vector, GenericStack
all : removed Hash, IntHash and haxe.FastList in favor of the types in haxe.ds
all : haxe.xml.Parser now handles entities consistently across platforms
all : renamed HAXE_LIBRARY_PATH environment variable to HAXE_STD_PATH
2012-07-16: 2.10
java/cs : added two new targets (beta)
all : fixed List and Null<T> for first, last, pop
js : added js.Lib.debug()
flash : fixed Xml.parent() when no parent
flash : fixed haxe.io.Bytes.blit when len=0
js/php/flash8 : fixed haxe.Int32.mul overflow on 52 bits
js : fixed haxe.Utf8 usage (static 'length' issue)
all : does not allow overriding var/prop
flash : removed wrapping for Xml nodes, use instead specific compare when comparing two typed nodes
js : use new haxe.xml.Parser (faster, not based on Regexp)
flash : fixed completion issue with for( x in Vector )
all : optimized Std.int(123) and Std.int(123.45)
flash : bugfix for @:bitmap with 24-bits PNG (flash decode wrong colors)
as3 : fixed EnumValue becomes Object
js : removed js.Lib.isIE/isOpera (not complete, use js.JQuery.browser instead)
all : function parameters are nullable if they are declared with '?'
all : added support for finding common base types of multiple types (unify_min) for array, switch, if
php : do not implement duplicate interfaces
haxelib : added git support through haxelib git
all : allow derived classes to widen method visibility
macro : added haxe.macro.Context.getLocalMethod
macro : improved support of "using" macro functions
php : optimized Xml implementation
php : fixed Reflect.get/setProperty not working on PHP < 5.3
all : support for callback(f, _, x)
all : allow private access between classes that have a common base class
all : added Output.writeFloat/Double and Input.readFloat/Double
all : support for var:{x:Float} = { x = 1 } constant structure subtyping
all : allow contravariant function arguments and covariant function returns in overrides
macro : support for final Array<Expr> argument as rest argument
macro : use top-down inference on macro calls
all : made "using" imply "import"
all : made String concat more consistent across platforms (add Std.string wrappers)
all : allow direct member variable/property and static property initialization
js : greatly reduced amount of generated code by using smarter DCE
php : made modulo operations more consistent
all : allow local functions to have both type parameters and be inlined
all : functions type parameters can be constraint (will be checked at end of compilation)
macro : use NekoVM runtime for regexps, process and xml parsing
flash : allow @:getter/@:setter in interfaces
flash : added support for "arguments" in methods
all : not used enums and inline var/methods are now removed by DCE
all : allow @:overload to use type parameters and not-absolute type paths
all : ensure that Std.string of arrays and enums are now consistent across platforms
all : allow to inline functions containing other functions
xml : added metadata output to xml generator
macro : added macro <expr> and macro : <type> reification
all : renamed type(e) to $type(e)
as3 : support for metadata and resources, and other fixes
2012-04-14: 2.09
all : optimized const == const and const != const (with different const types)
all : add Type.allEnums(e)
all : big improvements with completion speed and fixed many issues
flash9 : fixed -D swfprotected with swc output
neko : added ~ implementation
js : upgraded jquery version, more api overloads
sys : added "in" operator for spod macros, added relation access in expressions
macro : added ECheckType
macro : added TLazy for not-yet-typed class fields
js/php/neko : added haxe.web.Request
all : added Std.format
js : trace() output fallback on console.log if no id="haxe:trace"
all : ensure that Std.is(2.0,Int) returns true on all platforms
js : replaced $closure by function.$bind + changes in output format
all : allowed @:extern on static methods (no generate + no closure + force inlining)
all : added documentation in --display infos + display overloads in completion
js : removed --js-namespace, added $hxClasses
flash : output traces to native trace() when using -D fdb or -D nativeTrace
all : allowed abitrary string fields in anonymous objects
all : allowed optional structure fields (for constant structs)
all : allowed optional args in functions types (?Int -> Void)
all : added Reflect.getProperty/setProperty (except flash8)
all : added --wait and --cwd and --connect (parsed files and module caching)
all : fixed completion in macros calls arguments
all : fixed DCE removing empty but still used interfaces/superclasses
all : added haxe.Utf8 (crossplatform)
neko : Reflect now uses $fasthash (require neko 1.8.2)
all : allow \uXXXX in regexp (although not supported everywhere)
js : make difference between values and statements expressions in JSGenApi
js : added source mapping with -debug (replace previous stack emulation)
flash : added @:file("a.dat") class File extends flash.utils.ByteArray
flash : added @:sound("file.wav|mp3") class S extends flash.media.Sound
js : added --js-modern for wrapping output in a closure and ES5 strict mode
all : null, true and false are now keywords
all : neko.io.Path, cpp.io.Path and php.io.Path are now haxe.io.Path
neko, cpp, php : added Sys class, sys.io and sys.net packages and "sys" define
all : allow to access root package with std prefix (std.Type for example)
all : added haxe.EnumFlags
sys : io.File.getChar/stdin/stdout/stderr are now in Sys class
cpp : Reflect.getField and Reflect.setField no longer call property functions. Use Reflect.getProperty and Refelect.setProperty instead.
cpp : Default arguments now use Null<T> for performance increase and interface compatibility
cpp : Added metadata options for injecting native cpp code into headers, classes and functions
php : added php.Lib.mail
(hotfix) fixed bug in completion and disabled profiling on Linux
(hotfix) fixed $ssize when doing new String(v) in neko
(hotfix) fixed bug with properties in interfaces for Flash & PHP
2011-09-25: 2.08
js : added js.JQuery
all : added @:overload
js : upgraded js.SWFObject from 1.4.4 inlined to 1.5 embedded
js : code generator beautify
all : ensure that modifying returned Type.getEnumConstructs array does not affect enum
all : allow macro typed parameters (other than Expr)
flash : added flash11 apis
neko : added support for https to haxe.Http (using hxssl library)
all : added haxe.Int64
all : added haxe.Int32 isNeg,isZero,ucompare, fixed overflows for js/flash8/php
all : bugfix when optimizing inlined immediate function call
all : fixed "using" on macro function
all : allowed member macros functions (called as static)
neko : allowed serialization of haxe.Int32 (as Int)
all : fixed invalid optimization of two constant numbers comparison
flash8 : bugfix Std.parseInt with some hex values
flash9 : added flash.utils.RegExp
all : changed @:build behavior, now takes/returns a var with anonymous fields
all : added @:native support for enums
neko : changed the result of array-assign expression (was null)
flash9 : no longer auto create enums from SWF classes
(need explicit "enum" type patch)
all : optimized variable tracking/renaming
all : optimized macro engine (speed x2)
all : added -D macrotimes support
flash9 : store resources in bytes tag instead of bytecode
all : allow $ prefixed identifiers (for macros usage only)
all : allow to access modules subtype statics with pack.Mod.Type.value
and fixed identifier resolution order
flash9 : added @:bitmap("file") for simple embedding
all : added haxe.web.Dispatch
js : added js.Storage
all : allow this + member variables access in local functions
added untyped __this__ support and transition error
all : added haxe.macro.MacroType
neko : neko.Lib.serialize/unserialize now returns bytes
neko : added sys.db package (crossplatform with -D spod_macro support)
spod_macro now uses wrappers for Bytes (require neko 1.8.2)
php : added --php-prefix for prefixing generated files and class names
all : added type_expr_with_type enum support
php/js : fixed adding 'null' to StringBuf
all : added haxe.macro.Context.defineType
2011-01-30: 2.07
all : fixed completion support with --remap
all : added macros, added --interp
all : removed 'here' special identifier
neko : fixed neko.Web.getParamsString() returning "null" instead of ""
flash9 : fixed issue with @:bind
flash9 : added some missing errors
flash9 : fixed TypedDictionary.exists
all : added @:build and @:autoBuild for enums and classes
neko : Std.parseFloat now returns NaN with invalid string
php: fixed Array.push must return the current length (issue 219)
php: fixed EReg.replace (issue 194)
php: FileSystem.readDirectory now skips '.' and '..' to be consistent with neko (issue 226)
flash9 : add trace text on stage (always over current and subclips)
flash9 : delay SWF initialization until it's added on stage and stageWidth > 0
(this can be disabled with -D dontWaitStage)
all : added haxe.Timer.measure
all : added Lambda.indexOf and Lambda.concat
all : no longer allow inline vars as metadata values
neko : added getFieldsNames to neko.db.ResultSet (supported in Neko 1.8.2 mysql driver)
all : added --macro and haxe.macro.Compiler
all : allow macro type patches
flash9 : changed --gen-hx-classes implementation
now use 'haxe -swf-lib lib.swf --gen-hx-classes' instead
flash9 : added @:getter and @:setter
all : added @:require
flash9 : moved vector utils functions from flash.Lib to flash.Vector
flash9 : added support for FP 10.1 and 10.2
flash9 : added @:meta(Meta(k="v")) support
all : improved #if support (fixed ! precedence)
all : lookup unqualified types in all package hierarchy and not only in current package
flash : set default flash version to 10 (-swf9 deprecated, use -swf-version 8 for avm1)
php : added --php-lib to allow to rename the destination path of the generated lib
all : added --dead-code-elimination, removes unused functions from the output
(beta feature could not make in the final release)
all : added @:keep to prevent --dead-code-elimination of class/method
flash9 : fixed issues with loading a Haxe SWF (boot_XXXX class extends flash.Boot)
all : allow to inline override methods (if the superclass method is not inlined already)
all : fixed escape sequences in literal regular expressions
flash9 : fixed Xml.setNodeValue
all : removed -excluded, replaced by --macro excludeFile('filename')
all : added --macro exclude('package') and --macro include('package')
all : importing a typedef of an enum allow to access its constructors
all : removed String.cca (replaced by StringTools.fastCodeAt + StringTools.isEOF)
flash9 : fixed use of default values when null is passed for nullable basic types
all : fixed issues with inlining and class/function type parameters
all : big speedup for compiler internal completion
all : added --macro keepClass('classname')
flash9 : fixed Xml.nodeValue for comments (does not include <!--/-->)
all : added named local functions (allow self-recursion)
all : use left-assoc for (==,!=,>,>=,<,<=)(==,!=,>,>=,<,<=) (&&)(&&) and (||)(||)
all : give prefix unary operators higher priority than ?:
php : fixed XML parsing
cpp : many fixes
2010-08-14: 2.06
neko : change serializer to be able to handle instances of basic classes from other modules
js : add Document.createTextNode
all : bugfix with inline when modifying var with same name as one of current local
flash9 : classes implementing ArrayAccess<T> are now dynamic (including TypedDictionary)
all : allow "using" on typedefs
as3 : minor fixes in genas3 and --gen-hx-classes
as3 : fix with readonly/writeonly properties accesses
flash9 : list native getter/setters in Type API class/instance fields
all : make haxe.rtti.Generic typing lazy (fix for self-recursion)
all : allow haxe.rtti.Generic + inheritance
all : added resource size limit to 12MB (ocaml max_string_size is 16MB + b64)
flash : changes in swf handling to work with >16MB swfs
flash9 : only init dynamic methods if not already defined (in subclass)
std : added haxe.SHA1
compiler : added TCast, allow cast optimization on flash9/cpp
as3 : fixed Std.__init__ generating 'null'
compiler : fixed -no-opt
flash : allow several -swf-lib
no longer support automatic creation of classes for f8 swfs in f9 mode
classes defined in f9 swf are not redefinable in Haxe code (use extern)
flash9 : allow direct access and completion with classes defined in -swf-lib's
flash9 : remove imported libraries debug infos when not compiled with -debug
all : only display errors with --display if no completion matched
all : some completion related errors fixed
flash9 : added @:bind support
all : fixed StringTools.hex with negative numbers
flash9 : fixed Type.typeof(1<<28) was TFloat
flash9 : use flash.XML parser for Xml class implementation
neko : fixed Array.splice (was not setting null at end of array)
neko : rewrote Array class using neko.NativeArray
all : core classes implementation are now in std/(platform)/_std
all : added @:final support
all : added haxe.rtti.Meta
flash9 : added flash.desktop.Clipboard* classes (added in flash10)
as3 : fixed Date.toString issue in flash.Boot (now use .toStringHX instead)
this will only work if .toString called explicitely on Date class
all : only allow "using" on Dynamic if first parameter is Dynamic
php : haxe.Http now supports Https connections when OpenSSL extension is enabled (issue 143)
php : fixed enum constructors sequence (issue 142)
php : added error message when using 2 fields with different cases in the same class/enum
php : fixed field declaration for properties with getter and setter (issue 124)
php : fixed comparison issues between strings (issue 132)
php : enhanced FileInput.readLine using native fgets function (issue 103)
flash9 : renamed flash.Error to flash.errors.Error
php : removed eval() everywhere and simplified _hx_lambda
php : fixed return type for Std.string() with integers and floats
php : fixed php.Lib.rethrow
all : added custom Haxe serialization
php : aligned php.Web.parseMultipart signature with neko implementation
cpp : Added source location and stack dump for errors in debug mode
cpp : Remapped more keywords
cpp : Added templated fast iterator code for arrays and FastLists
cpp : Added option for tracing GC references in debug mode
cpp : Switch the native string implementation from wchar_t to utf8 - for regex speed
cpp : Added extra "()" to ensure correct order of operations
cpp : Fixed various bugs for unusual (and not so unusual) language constructs
cpp : Fixed order of enum generation from index
cpp : Added __unsafe_get and __unsafe_set to Array as possible optimizations
cpp : Default to mult-thread compiling on windows for cl version >= 14
cpp : Seed Math.random
cpp : Use strftime for Dates
cpp : Fix socket sellect passing _s
cpp : Throw error when match count does not match regex
cpp : Improve register capture in GC
cpp : Fix Dynamic interger compare
cpp : Implement makeVarArgs
cpp : Fix toString for nulls in Enums and Arrays
cpp : Added initial Android support
cpp : Move initializers to entry functions in standard ndlls.
cpp : Changes some CFFI register funtions to char*, from wchar_t*
cpp : Added some initial support for v8 script target
cpp : Use non-recursive GC marking to avoid overflow in big lists
cpp : Added __hxcpp_obj_id
2010-01-09: 2.05
js : added js.Scroll
js : package names are now checked at runtime to avoid clashes with existing libs
js : added --js-namespace to create a namespace for types that are defined in the root
all : updated xml output and html doc - add inline, override, dynamic functions support
all : added error when comparing enum with arguments
all : optimize constant equality for enums
flash9 : fixed verify error with inline + null type
flash9 : bugfix when overriding/implementing an method with an applied type parameter
php : fixed issues with classes that implement Dynamic
all : ignore #! line at beginning of the hx file
haxelib : added tags, added documentation
flash8 : don't use b64 encoding for text ressources
php : fixed bug in Hash.exists for null values and Reflect.callMethod
js/flash9 : throw exception in Xml.parse when unclosed node
all : improve return type progagation in inlined expression (fix some VerifyErrors)
all : optimize {const} into const
all : added structure / Dynamic<T> subtyping
all : fixed List.map2 error when inline + optional args
flash9 : encode all ISO constant strings into UTF8 at compilation time
all : allow hxml with only -cmd statements
spod : moved Manager.addQuote to Connection.addValue
flash9 : removed .iterator() from Vector (not implementable)
all : fixed haxe.rtti.Generic on interfaces
php : fixed issue with Reflect.callMethod
php : fixed issue with PHP reserved word used in callbacks
all : bugfix with non-constant enums in switches
flash9 : fix for interfaces (use namespace)
all : "using" now works for identifiers in member methods
flash9 : bugfix with switch on some big integers
all : bugfix when optimizing (function(x) return x)(x)
neko : improved speed of Xml.toString()
all : added -D dump (for debugging purposes)
neko : added neko.Web.isTora
php : added php.db.PDO (php.db.Sqlite is now deprecated)
php : fixed bug in Type.getClassFields() that reported duplicated entries
php : fixed errror in XML error reporting
all : allow sub-types declarations everywhere (pack.Type.Sub)
all : added completion for sub-types declarations
all : improved completion with lambda function
as3 : several generation fixes
all : bugfix haxe.rtti.Generic on private class
php/js/cpp : sanitize binary expressions to prevent inlining errors
spod : remove object from cache when deleted
2009-07-26: 2.04
flash9 : fixed get_full_path error with -D fdb
js : fixed Array.remove on IE
flash8 : removed extra empty AS3 tag (causing some issue with F8 loadMovie)
improved speed of Bytes unserializing (no need for BytesBuffer)
flash9 : bugfix, Null<Typedef> was generating dynamic code
flash9 : added error message in flash.Vector if used without flash 10
flash9 : fixed some "never" property access issues
all : added "never" property access support for all platforms
js : small syntax fix with value-blocks
js : fixed Type.enumEq with null values
js/flash8 : use &0xFF in haxe.io.Bytes.set
flash9 : fixed switch on Null<Int> verify error
flash9 : fixes related to UInt type + error when using Int/UInt comparison
as3 : improved Vector support, inline flash.Lib.as
as3 : bugfix with skip_constructor
as3 : added Enum.__constructs__ (allow Type.getEnumConstructs)
as3 : make all constructor parameters optional (allow Type.createEmptyInstance)
as3 : bugfix with property access inside setter (stack overflow)
all : Enum is now Enum<T>
all : added Type.createEnumIndex
all : forbid same name for static+instance field (not supported on several platforms)
all : renamed haxe.Http.request to "requestUrl"
all : renamed neko.zip.Compress/Uncompress.run to "execute"
spod : fix very rare issue with relations and transactions
compiler : added TClosure - optimize closure creation and ease code generation
cpp : added CPP platform
all : added 'using' syntax
neko : added 'domains' optional param to ThreadRemotingServer to answer policy-file-request
php : fixed php.db.Mysql so that getResult is consistent with Neko behavior
php : fixed __toString for anonymouse objects
php : fixed bug in overridden dynamic functions
php : fixed round to be consistent with other platforms
php : fixed bug concatenating two dynamic variables
php : php.Lib.rethrow now works as expected
flash9 : fixed bug with SWC output and recursive types
flash8 : fixed inversed arguments in __new__
neko : added neko.net.Socket.setFastSend
php: fixed String.charCodeAt
php: minor optimization (removed foreach from std code)
php: implemented haxe.Stack
php: changed exception handler to use Haxe call stack
php: changed special vars to use the '\xBB' prefix instead of __
php: fixed use of reserved keywords for var names
php: List iterator is now class based (faster)
php: fixed behavior of class variables having assigned functions
php: fixed php.db.Manager (was uncorrectly removing superclass fields)
php: added support for native Iterator and IteratorAggregate interfaces
all : added --display classes and --display keywords
all : fixed issue with optional parameters in inline functions
all : allow implementing interfaces with inline methods
all : enable inlining for getter/setter/iterator/resolve/using
2009-03-22: 2.03
optimized Type.enumEq : use index instead of tag comparison for neko/flash9/php
bugfix for flash.display.BitmapDataChannel and GraphicsPathCommand (allow inline static)
resolve environment variable in -cmd commands
added flash.Vector.indexOf and lastIndexOf
fixed bug in interfaces that define the method toString (Haxe/PHP)
fixed bug in haxe.io.BytesInput.readBytes in Flash9 (was throwing Eof if full buffer can't be read)
fixed implements/extends special classes when they are imported
StringBuf now uses an array for JS implementation (around same on FF, faster on IE)
fixed assignment of field length in anonym objects (Haxe/PHP)
fixed addEventListener typing for flash9
fixed __vector__ generation for AS3 target
fix with inline functions : position is now the inserted position and not the original one (better error reporting)
added SWC output support
fixed issues with unset of values in for loops and executing blocks that return functions (Haxe/PHP)
"throw" type is now Unknown instead of Dynamic (prevent type-hole in "if A else if B else throw")
added __foreach__ for flash9/as3
fixed f9 verify error with different kind of functions
moved eof() from neko.io.FileOutput to FileInput
added haxe.rtti.HtmlEditor
added neko.db.Manager.setLockMode
genAS3 : fixed Error classes issues
genAS3 : fixed default basic type value in interfaces
flash9 : fixed UInt default parameter verify error
flash9 : fixed issue with flash.* string enums verify error
compiler : allowed \r line separators for HXML files
flash9 : fixed verify error with loop variable beeing a specific class
compiler : prevent truncating float dynamic values to int when using numerical operations
neko.db.Manager fix : synchronize fields after locking an unlocked cached object
compiler : fixed issue with cascading inline+haxe.rtti.Generic
optimizer : reduce constant int/float/bool expressions and immediate function calls
flash9/as3/php : don't add Boot.skip_constructor test if no side effects in constructor
compiler : added --no-opt to disable expr reduction
compiler : separated basic and advanced commandline options
compiler : fixed printing of sub-function types
genHX : fixed generation of classes that extends another class (shouldn't be turned into enums)
speedup Array.remove on flash9/js
2008-11-23: 2.02
Std.is(MyInterface, Class) now returns true (Haxe/PHP)
php arrays are wrapped into _hx_array instances, fixes issues with references (array cast, access out of bounds ...)
removed untested php classes (php.DBase, php.IniHash)
added -D use_rtti_doc
flash.Lib.getTimer() now returns Int and is inlined
fixed php.FileSystem.stat
added memory related functions to php.Sys
added error when trying to extend Array, String, Date and Xml
fixed handling of implements ArrayAccess
fixed some minor things in flash10 api
switch/for/while/do/try/if are no longer using parse_next (parenthesises requ. instead)
fixed Type.typeof and Std.is in case of too much large integers for Flash6-8/JS
haxe.xml.Check : treat comments the same as PCDATA spaces
haxe.io.BytesData now uses strings instead of arrays for PHP
compiler : optimized line calculus from ast position
lexer : allow identifiers starting with _[0-9]
fixed access to flash.Vector methods : use AS3 namespace (faster)
bugfix in inline functions : modifying a parameter can't modify a real local var anymore
bugfix in inline functions : handle class type parameters and method type parameters
fixed issue with Int default value for Float parameter
flash9 : bugfix when using the retval after setting a closure variable
added flash.Memory API for flash10 alchemy opcodes access
changed #if as3gen to #if as3 when generating as3 code
fixed as3 flash.Vector generation
fixed haxe.io.BytesOutput for flash9 : set default to little-endian
some flash9 fixes related to extern enums
updated flash.text.engine package with haxe enums
flash9 : use target file path for Boot unique ID instead of random number
as3 : fixed bug when anonymous field was a reserved identifier
flash9 : added flash.Lib.vectorOfArray and vectorConvert for flash10