forked from dlang/dlang.org
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.dd
2700 lines (2549 loc) · 157 KB
/
changelog.dd
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
Ddoc
$(D_S D Change Log,
$(UPCOMING
$(LI Shared libraries for Linux)
)
$(VERSION 053, Feb 20, 2011, =================================================,
$(WHATSNEW
)
$(DMDBUGSFIXED
$(LI $(BUGZILLA 937): C-style variadic functions broken)
)
$(LIBBUGSFIXED
$(LI $(BUGZILLA 4944): Missing tzname even though we have tzset)
$(LI $(BUGZILLA 5485): TLS sections handled incorrectly in FreeBSD)
$(LI $(BUGZILLA 5616): std.datetime: not cross-platform)
)
)
<div id=version>
$(UL
$(NEW 053)
$(NEW 051)
$(NEW 050)
$(NEW 049)
$(NEW 048)
$(NEW 047)
$(NEW 046)
$(NEW 045)
$(NEW 044)
$(NEW 043)
$(NEW 042)
$(NEW 041)
$(NEW 040)
$(NEW 039)
$(NEW 038)
$(NEW 037)
$(NEW 036)
$(NEW 035)
$(NEW 034)
$(NEW 033)
$(NEW 032)
$(NEW 031)
$(NEW 030)
$(NEW 029)
$(NEW 028)
$(NEW 027)
$(NEW 026)
$(NEW 025)
$(NEW 023)
$(NEW 022)
$(NEW 021)
$(NEW 020)
$(NEW 019)
$(NEW 018)
$(NEW 017)
$(NEW 016)
$(NEW 015)
$(NEW 014)
$(NEW 013)
$(NEW 012)
$(NEW 011)
$(NEW 010)
$(NEW 009)
$(NEW 008)
$(NEW 007)
$(NEW 006)
$(NEW 005)
$(NEW 004)
$(NEW 003)
$(NEW 002)
$(NEW 001)
$(NEW 000)
$(LI $(LINK2 http://www.digitalmars.com/d/1.0/changelog.html, changelog for 1.0))
$(LI Download latest D 2.0 alpha
<a HREF="http://ftp.digitalmars.com/dmd.2.040.zip" title="download D compiler">
D compiler</a> for Win32 and x86 linux)
$(LI $(LINK2 http://www.digitalmars.com/pnews/index.php?category=2, tech support))
)
</div>
$(VERSION 052, Feb 17, 2011, =================================================,
$(WHATSNEW
$(LI 64 bit support for Linux)
$(LI Implemented $(I exception chaining), as described in TDPL. Currently Windows-only.)
$(LI std.random: Added Xorshift random generator)
$(LI Support HTML5 entities)
$(LI Added std.datetime for handling dates and times. std.date and std.gregorian
are now scheduled for deprecation. Any functions in other modules of Phobos
which used std.date.d_time have been changed to use std.datetime.SysTime or
are scheduled for deprecation with new functions with the same functionality
added which use SysTime (done in cases where switching existing functions to
use SysTime would have broken code). New code should use std.datetime instead
of std.date.)
$(LI Various functions in std.file were renamed to match Phobos' naming
conventions (e.g. isFile instead of isfile). The old names are aliased
and scheduled for deprecation.)
)
$(BUGSFIXED
$(LI $(BUGZILLA 190): Cannot forward reference typedef/alias in default value for function parameter)
$(LI $(BUGZILLA 1513): try/catch/finally misbehavior on windows)
$(LI $(BUGZILLA 1899): AA of fixed-length arrays fails to initialize)
$(LI $(BUGZILLA 1914): Array initialisation from const array yields memory trample)
$(LI $(BUGZILLA 2581): DDoc doesn't work for functions with auto return type.)
$(LI $(BUGZILLA 2810): Bogus forward reference error with auto function)
$(LI $(BUGZILLA 2874): phobos docs issues)
$(LI $(BUGZILLA 3198): wrong initializer for structs arrays)
$(LI $(BUGZILLA 3334): std.demangle doesn't parse ref, pure, nothrow)
$(LI $(BUGZILLA 3681): ICE(go.c): when function takes too long to optimize, only with -O.)
$(LI $(BUGZILLA 3848): functions in std.file don't take symbolic links into account)
$(LI $(BUGZILLA 4013): Inconsistent codeview debug info for classes derived from IUnknown)
$(LI $(BUGZILLA 4069): Issue 4069 - std.xml.Document.pretty saves empty elements with spaces and line breaks)
$(LI $(BUGZILLA 4245): Declaring conflicting symbols in single function scope allowed)
$(LI $(BUGZILLA 4307): spawn()'ed thread doesn't terminate)
$(LI $(BUGZILLA 4328): templated unittests fail to link when instantiated from other file if compiler order isn't correct)
$(LI $(BUGZILLA 4379): ICE(blockopt.c): foreach over huge tuple, only with -O)
$(LI $(BUGZILLA 4389): ICE(constfold.c, expression.c), or wrong code: string~=dchar in CTFE)
$(LI $(BUGZILLA 4486): CodeView debug info should contain absolute path names)
$(LI $(BUGZILLA 4598): std.xml check is too restrictive)
$(LI $(BUGZILLA 4601): Spawned threads frequently don't terminate or let other threads ever run if you spawn more than one thread)
$(LI $(BUGZILLA 4732): __traits(identifier) performs constant folding on symbols)
$(LI $(BUGZILLA 4753): fail_compilation/fail116.d sends dmd into a loop, exhausting memory)
$(LI $(BUGZILLA 4807): Examples for std.array insert and replace)
$(LI $(BUGZILLA 4852): core.demangle cannot demangle functions with class/struct return types)
$(LI $(BUGZILLA 4878): Ddoc: Default arguments can break Ddoc output)
$(LI $(BUGZILLA 4913): Implicit opCast!bool in if statement doesn't work with declarator)
$(LI $(BUGZILLA 4973): map file with spaces in file name passed without quotes to linker)
$(LI $(BUGZILLA 5025): ICE(cast.c) shared struct literal)
$(LI $(BUGZILLA 5090): ICE(todt.c) struct literal initializing zero length array)
$(LI $(BUGZILLA 5105): Member function template cannot be synchronized)
$(LI $(BUGZILLA 5197): Ddoc: access-attributed auto template function crashes dmd)
$(LI $(BUGZILLA 5198): Appender much slower when appending ranges of elements than individual elements)
$(LI $(BUGZILLA 5209): posix/sys/select.d: FD_ISSET function should return bool)
$(LI $(BUGZILLA 5221): entity.c: Merge Walter's list with Thomas')
$(LI $(BUGZILLA 5242): self referencing template constraint crashes compiler)
$(LI $(BUGZILLA 5244): PATCH: fix use of uninitialised variable in toObj.c)
$(LI $(BUGZILLA 5246): PATCH(s): fix a couple more uninitialised variables)
$(LI $(BUGZILLA 5248): CTFE Segfault when calling a function on an enum struct)
$(LI $(BUGZILLA 5271): Not constant RAND_MAX)
$(LI $(BUGZILLA 5319): add Solaris as a pthread based monitor user)
$(LI $(BUGZILLA 5320): gcstub/gc.d: SEGV because of missing returns)
$(LI $(BUGZILLA 5349): ICE(toir.c): nested class in static member function)
$(LI $(BUGZILLA 5365): Regression (2.051) implicit conversions via alias this are broken)
$(LI $(BUGZILLA 5381): Regression (2.051) switch fails for wstring and dstring)
$(LI $(BUGZILLA 5382): [regression 2.051] DLL multi-threading broken)
$(LI $(BUGZILLA 5391): Crash with recursive alias declaration)
$(LI $(BUGZILLA 5400): Add const to FD_ISSET)
$(LI $(BUGZILLA 5439): 64bit struct alignment inconsistent with C ABI)
$(LI $(BUGZILLA 5447): Should be illegal to throw a non-Throwable)
$(LI $(BUGZILLA 5455): ICE(cgcod.c): Optimization (register allocation?) regression in DMD 1.065)
$(LI $(BUGZILLA 5483): Add x86-64 version of mcontext_t for FreeBSD)
$(LI $(BUGZILLA 5486): Missing define for running dmd as 64 bit)
$(LI $(BUGZILLA 5488): Spawned threads hang in a way that suggests allocation or gc issue)
$(LI $(BUGZILLA 5495): Add CLOCK_MONOTONIC for FreeBSD)
$(LI $(BUGZILLA 5504): Regression(2.051): Template member functions of a shared class don't compile)
$(LI $(BUGZILLA 5534): [64-bit] Inexplicable segfault in small code snippet, -O -release -m64 only)
$(LI $(BUGZILLA 5536): Array append with dollar op on 64-bit)
$(LI $(BUGZILLA 5545): [64-bit] DMD fails to postincrement ubytes.)
$(LI $(BUGZILLA 5549): [64-bit] Internal error: backend/cgcod.c 1845)
$(LI $(BUGZILLA 5552): std.datetime.d DosFileTimeToSysTime has a bug)
$(LI $(BUGZILLA 5556): [64-bit] Wrong Implicit Conversion to Double)
$(LI $(BUGZILLA 5557): [64-Bit] FP (alignment?) issues with Rvalues)
$(LI $(BUGZILLA 5564): [64-bit] loading of wrong constant byte value)
$(LI $(BUGZILLA 5565): [64-bit] Wrong Floating Point Results, Related to Mixing With size_t)
$(LI $(BUGZILLA 5566): [64-bit] More erratic FP results with size_t)
$(LI $(BUGZILLA 5579): Segfault on first call to GC after starting new thread)
$(LI $(BUGZILLA 5580): [64-bit] String switch statements broken in 64-bit mode)
$(LI $(BUGZILLA 5581): [64-bit] Wrong code with bitwise operations on bools)
$(LI $(BUGZILLA 5592): Previous definition different: __arrayExpSliceMulSliceAddass_d)
$(LI $(BUGZILLA 5595): Compiler crash on heavy std.algorithm use)
)
)
$(VERSION 051, Dec 21, 2010, =================================================,
$(WHATSNEW
$(LI Added std.mathspecial, containing mathematical Special Functions)
$(LI std.base64: Replaced. Boost License, Performance improvement, Range support. Function signature changed from 'encode' to 'Base64.encode')
$(LI std.math: D implementation of pow. Almost all std.math functions are now @safe pure nothrow.
tgamma, lgamma, erf, erfc have been moved to std.mathspecial)
$(LI std.exception: Added pure and nothrow to assumeUnique)
$(LI std.utf: Removed UtfError class and toUTF* shortcut functions for validation. Added pure, nothrow, @safe and @trusted attributes. count function supports dchar)
$(LI Both druntime and phobos now build successfully with dmd -m64. Still somewhat behind dmd1, very little executes correctly still.)
)
$(BUGSFIXED
$(LI $(BUGZILLA 603): Undocumented behaviour: case and default create a scope)
$(LI $(BUGZILLA 632): Typedef/enum promotions spec ambiguous - ultimate base type or lowest common denominator?)
$(LI $(BUGZILLA 679): Spec needs allowances for copying garbage collection)
$(LI $(BUGZILLA 690): ABI not fully documented)
$(LI $(BUGZILLA 1351): Discrepancies in the language specification)
$(LI $(BUGZILLA 1466): Spec claims maximal munch technique always works: not for "1..3")
$(LI $(BUGZILLA 2080): ICE(mangle.c) alias corrupts type inference of static variables)
$(LI $(BUGZILLA 2206): unnamed template mixin of class inside function or class has incorrect classinfo and mangleof)
$(LI $(BUGZILLA 2385): spec says all structs are returned via hidden pointer on linux, but it uses registers)
$(LI $(BUGZILLA 2392): Parsing ambiguity between function pointer declaration and function call)
$(LI $(BUGZILLA 2406): Declarator2 definition error)
$(LI $(BUGZILLA 2556): Property classinfo needs better documentation (RTTI, typeof, typeid, runtime type information))
$(LI $(BUGZILLA 2616): Undocumented behaviour: part-explicit, part-implicit instantiations of function templates are accepted)
$(LI $(BUGZILLA 2651): class body declaration grammar incorrect)
$(LI $(BUGZILLA 2652): DeclDef grammar is wrong)
$(LI $(BUGZILLA 2734): Ambiguity in tokenizing: _._ as a float literal)
$(LI $(BUGZILLA 2751): const/invariant/immutable static arrays: const(T)[N] and const(T[N]) are the same, but DMD treats them as different)
$(LI $(BUGZILLA 2954): [tdpl] Appalling bug in associative arrays (D2 only))
$(LI $(BUGZILLA 2994): Incomplete "Predefined Versions" documentation)
$(LI $(BUGZILLA 3020): No description is given why function may not be nothrow)
$(LI $(BUGZILLA 3112): Specification on what operations call the GC is missing)
$(LI $(BUGZILLA 3276): Recursion broken by alias template parameter)
$(LI $(BUGZILLA 3554): Ddoc generates invalid output for documentation comments with non paired parantheses)
$(LI $(BUGZILLA 3864): Dyn array allocations can be allowed in nothrow functions)
$(LI $(BUGZILLA 4059): Incorrect C++ name mangling)
$(LI $(BUGZILLA 4217): Function overloads are not distinguished when instantiating templates)
$(LI $(BUGZILLA 4254): ICE(mtype.c): function with const inout parameter)
$(LI $(BUGZILLA 4297): Nothrow functions cannot use constant dynamic array)
$(LI $(BUGZILLA 4384): Cyclic dependency check for modules is broken)
$(LI $(BUGZILLA 4434): ICE(mtype.c, 887) alias with const, shared, or immutable)
$(LI $(BUGZILLA 4445): roundTo!ubyte(255.0) throws)
$(LI $(BUGZILLA 4529): Segfault(typinf.c) involving typeid(typeof(functionName)))
$(LI $(BUGZILLA 4638): Regression: new writeln does not recognize "wstring toString")
$(LI $(BUGZILLA 4728): Segfault(toctype.c) by protected/private constructor in an other module)
$(LI $(BUGZILLA 4781): Segfault(mtype.c) with forward referenced typeof and .init)
$(LI $(BUGZILLA 4864): ICE(statement.c) Crash on invalid 'if statement' body inside mixin)
$(LI $(BUGZILLA 4901): std.algorithm.sort does not compile for interfaces.)
$(LI $(BUGZILLA 4915): auto return type escapes function purity)
$(LI $(BUGZILLA 5020): Forward implicit bool conversions to alias this)
$(LI $(BUGZILLA 5053): Better error message for cyclic dependencies.)
$(LI $(BUGZILLA 5054): Splitter example doesn't work)
$(LI $(BUGZILLA 5094): No implicit conversion with "alias property this")
$(LI $(BUGZILLA 5107): Const-shared classes/structs not typed as shared)
$(LI $(BUGZILLA 5110): Excess attribute propagation of structs and classes)
$(LI $(BUGZILLA 5117): [CTFE] Member function call with rather complex this: side effects ignored)
$(LI $(BUGZILLA 5120): ICE(mtype.c) void associative arrays)
$(LI $(BUGZILLA 5131): Segfault(expression.c) opAssign and associative arrays (AA) are broken for types != this)
$(LI $(BUGZILLA 5133): dmd fails to build rdmd (problem with startsWith))
$(LI $(BUGZILLA 5145): Regression(2.050, 1.065) override error with forward ref of superclass)
$(LI $(BUGZILLA 5148): Incorrect C++ mangling of multiple const char* parameters)
$(LI $(BUGZILLA 5154): Class Range does not work in writeln)
$(LI $(BUGZILLA 5159): Segfault(interpret.c): calling a static function pointer variable in CTFE)
$(LI $(BUGZILLA 5163): meaningless error message with front() applied to void[].)
$(LI $(BUGZILLA 5164): Error without line number using "is (T...)")
$(LI $(BUGZILLA 5180): ICE(arrayop.c) in-place array operation on incompatible types)
$(LI $(BUGZILLA 5182): ICE(expression.c): calling unittest from a function)
$(LI $(BUGZILLA 5191): Combination of pure and nothrow result in a function that does nothing)
$(LI $(BUGZILLA 5194): ddoc does not show modifiers on constructors such as pure or nothrow)
$(LI $(BUGZILLA 5195): Forward references ignore const)
$(LI $(BUGZILLA 5214): Compiler crash with array of empty {})
$(LI $(BUGZILLA 5218): Can't implicitly convert from "abc"w to wchar[3])
$(LI $(BUGZILLA 5220): Make std.conv.ConvError an Exception instead of an Error; $(RED deprecated ConvError and ConvOverflowError) with ConvException and ConvOverflowException. Note that any code depending on the fact that these exceptions were Error gets broken.)
$(LI $(BUGZILLA 5230): Regression(2.041, 1.057) ICE(tocsym.c) overriding a method that has an out contract)
$(LI $(BUGZILLA 5238): PATCH: fix return of uninitialised var in interpret.c)
$(LI $(BUGZILLA 5247): std.utf.stride() should not return 0xFF)
$(LI $(BUGZILLA 5275): x86_64 related hidden function parameter mishandled)
$(LI $(BUGZILLA 5293): std.math: Error: shift by -48 is outside the range 0..32)
$(LI $(BUGZILLA 5294): -O optimization breaks for loop)
$(LI $(BUGZILLA 5321): std.math: assumes X86 or X86_64 on FPU control word code)
$(LI $(BUGZILLA 5322): std.math: version(Sparc) should be SPARC)
$(LI $(BUGZILLA 5330): Druntime/Phobos: remove special treatment for GDC)
$(LI $(BUGZILLA 5331): mach format problem)
$(LI $(BUGZILLA 5340): isOutputRange!(Appender!string, int) must be false)
$(LI $(BUGZILLA 5353): clear function is calling the destructor twice)
)
)
$(VERSION 050, Oct 29, 2010, =================================================,
$(WHATSNEW
$(LI added talign() and argTypes() to TypeInfo)
$(LI Upgrade zlib support to zlib 1.2.5)
$(LI std.stdio: Added ByChunk. This struct is a InputRange like ByLine. File.byChunk returns ByChunk)
$(LI std.traits: Most higher-order ranges now work with const/immutable arrays and other ranges
with a natural tail const, and ranges w/ const/immutable elements.)
$(LI $(BUGZILLA 4888): Heavy reliance on Bug 3534 in Phobos range usage)
$(LI $(BUGZILLA 4987): C function pointer syntax needs to be deprecated)
$(LI std.typecons: Several improvements to the Tuple struct template:
$(UL $(LI Tuple members are now accessible with the syntax a[0], a[1] etc.)
$(LI Eliminated an internal union. See $(BUGZILLA 4421) and $(BUGZILLA 4846).)
$(LI Worked around $(BUGZILLA 4424). Got opAssign back.)
$(LI Made Tuple.slice!(from, to) to preserve field names if any.)
$(LI Added isTuple!(T) template.)
))
$(LI std.algorithm: changed filter() such that filter is curryable)
$(LI std.algorithm: Added function balancedParens)
$(LI std.typecons: Deprecated defineEnum)
$(LI Added relaxed purity checking rules.)
)
$(BUGSFIXED
$(LI Unlisted bug: std.exception.pointsTo() calls postblit on subobjects.)
$(LI Unlisted bug: std.typetuple.staticMap!() doesn't work with empty/single tuples.)
$(LI Unlisted bug: std.traits: Interfaces should have indirections, aliasing, etc.)
$(LI Unlisted bug: std.socket: Race condition - gethostbyname and gethostbyaddr on Linux return static data. The call was synchronized, but using the data wasn't)
$(LI Unlisted bug: signed long comparisons under OS X)
$(LI $(BUGZILLA 941): std.regexp fails to match when grouping certain sub-expressions)
$(LI $(BUGZILLA 1482): std.file docs are insufficient)
$(LI $(BUGZILLA 1635): DirEntry.isfile() and DirEntry.isdir() broken)
$(LI $(BUGZILLA 1733): parse() function does not handle all build-in types)
$(LI $(BUGZILLA 2073): Variant.coerce!() fails)
$(LI $(BUGZILLA 2142): getopt() incorrectly processes bundled command-line options)
$(LI $(BUGZILLA 2310): Inconsistent formatting of arrays in std.stdio.write() and std.conv.to!(string)())
$(LI $(BUGZILLA 2424): std.functional binaryRevertArgs : "revert" should be "reverse")
$(LI $(BUGZILLA 2451): Adding structs that use opAssign or postblit to an AA is broken)
$(LI $(BUGZILLA 2655): Allow alternation patterns in std.path.fnmatch)
$(LI $(BUGZILLA 2669): Variant does not have opApply or another iteration mechanism)
$(LI $(BUGZILLA 2718): Inconsistent string parameters in Phobos functions)
$(LI $(BUGZILLA 2838): std.file.rmdirRecurse fails)
$(LI $(BUGZILLA 2930): Problems in std.range documentation)
$(LI $(BUGZILLA 2943): Struct copying in presence of alias member this only copies alias this member)
$(LI $(BUGZILLA 2965): std.date: timezone not initialized)
$(LI $(BUGZILLA 3157): [patch] Pipes should be closed with pclose)
$(LI $(BUGZILLA 3318): [PATCH]Rebindable.get is not accessible)
$(LI $(BUGZILLA 3570): mkdirRecurse throws exception on trailing empty directory.)
$(LI $(BUGZILLA 3602): ICE(tocsym.c) compiling a class, if its super class has preconditions)
$(LI $(BUGZILLA 3665): Regression(1.051, 2.036) Assignment with array slicing does not work)
$(LI $(BUGZILLA 4344): Sockets with multiple threads report missing/failed WSAStartup)
$(LI $(BUGZILLA 4398): dmd always uses Windows name mangling for _d_throw)
$(LI $(BUGZILLA 4439): The declaration of the in6addr_* in druntime is wrong.)
$(LI $(BUGZILLA 4465): ICE(symbol.c): immutable type inference with ^^2)
$(LI $(BUGZILLA 4524): Regression(2.026) Bus error with nested struct)
$(LI $(BUGZILLA 4623): Non-integer type allowed as static array size)
$(LI $(BUGZILLA 4634): typo in levenshteinDistanceAndPath documentation)
$(LI $(BUGZILLA 4641): Associative arrays of structs with alias this broken.)
$(LI $(BUGZILLA 4742): int % BigInt should work.)
$(LI $(BUGZILLA 4775): No substitution on writef("%%%s", "hi").)
$(LI $(BUGZILLA 4825): Regression(1.057, 2.040) "Error: non-constant expression" with -inline)
$(LI $(BUGZILLA 4866): Static-to-dynamic converted manifest constant array gets non-converted type in static/constraint if)
$(LI $(BUGZILLA 4869): auto return + inheritance + modules = compiler crashes(toctype.c))
$(LI $(BUGZILLA 4873): Assertion failure: '0' on line 1483 in file 'expression.c')
$(LI $(BUGZILLA 4882): std.traits hasUnsharedAliasing does not work for function type.)
$(LI $(BUGZILLA 4897): CodeView: No locals or parameters are shown when debugging, because of missing function info)
$(LI $(BUGZILLA 4890): GC.collect() deadlocks multithreaded program.)
$(LI $(BUGZILLA 4925): [ICE] segfault with module-scope assert(0))
$(LI $(BUGZILLA 4926): ICE: PREC_zero assertion failure due to unset precedence)
$(LI $(BUGZILLA 4938): Regression(2.047) dmd segfault when compiling)
$(LI $(BUGZILLA 4941): Built-in tuple slice boundaries are not CTFE'd)
$(LI $(BUGZILLA 4949): ICE on invalid static if using value of 'this')
$(LI $(BUGZILLA 4951): InternetAddress fails to resolve host when multithreading.)
$(LI $(BUGZILLA 4959): std.conv.parse error "no digits seen" on string starting with zero.)
$(LI $(BUGZILLA 4992): ICE(glue.c) or segfault: using int[new])
$(LI $(BUGZILLA 5003): regex(replace with delegate) sample doesn't work.)
$(LI $(BUGZILLA 5026): ICE(expression.c) Incomplete mixin expression + char[] to char assignment)
$(LI $(BUGZILLA 5049): std.algortihm.bringToFront() returns wrong value.)
$(LI $(BUGZILLA 5052): take!(Take!R) should return Take!R, not Take!(Take!R).)
$(LI $(BUGZILLA 5071): passing value by ref to a function with an inner dynamic closure results in a wrong code)
)
)
$(VERSION 049, Sep 13, 2010, =================================================,
$(WHATSNEW
$(LI std.algorithm: reduce now works with non-range-based iteration, such as opApply.)
$(LI std.numeric: Added FFT.)
$(LI std.path: Changed sep, altsep etc. to manifest constants (enum).)
$(LI std.process: Added environment, an AA-like interface for environment variables.)
$(LI std.range: Iota, Stride, Transversal, FrontTransveral now support slicing where possible.)
$(LI std.range: Added support for moveFront() and assignable elements in several higher-order ranges.)
$(LI std.range: Added Lockstep, hasLvalueElements.)
$(LI std.range: Added virtual function-based wrappers (InputRangeObject, OutputRangeObject) for when a binary interface to a range is required.)
$(LI std.typecons: Added convenience functions for Rebindable.)
$(LI std.traits: Added isAssignable, isIterable, ForeachType, isSafe, isUnsafe, EnumMembers.)
$(LI std.traits: hasLocalAliasing, hasLocalObjects and hasLocalRawAliasing are now hasUnsharedAliasing, hasUnsharedObjects and hasUnsharedRawAliasing. Aliases to the old names are included for now for backwards compatibility.)
$(LI std.typetuple: Added anySatisfy.)
$(LI std.array: Modified Appender's interface to fix memory issues.
Note that appending via $(TT ~=) and using appender on the same array
will not interleave anymore.)
$(LI $(BUGZILLA 2477): Trailing comma in array literal sometimes accepted, sometimes not)
)
$(BUGSFIXED
$(LI Andrej Mitrovic updated the samples/d code)
$(LI Unlisted Bug: std.math.pow doesn't work on immutable numbers.)
$(LI Unlisted Bug: std.math.pow floating point overload expects both arguments to be exact same type.)
$(LI Unlisted Bug: std.path.join("", "foo") returns "/foo" instead of "foo" on Posix.)
$(LI Unlisted Bug: std.range.iota() random access primitives inconsistent after popFront on floating point version)
$(LI Unlisted Bug: std.algorithm.findAdjacent() [...])
$(LIX $(BUGZILLA 190): Cannot forward reference typedef/alias in default value for function parameter)
$(LI $(BUGZILLA 1715): Template specialization checks for equality rather than convertibility)
$(LI $(BUGZILLA 1970): Templated interfaces not matched)
$(LI $(BUGZILLA 2511): Covariant return type doesn't work with circular import)
$(LI $(BUGZILLA 2716): Confusion of auto and scope as the class attribute)
$(LI $(BUGZILLA 2903): Splitter should be bi-dir if the input range is bi-dir.)
$(LI $(BUGZILLA 2951): std.random.dice() should be templated on proportions.)
$(LI $(BUGZILLA 2958): std.getopt RangeError on missing arg)
$(LI $(BUGZILLA 3046): Segfault with C++ static variable (Linux only))
$(LI $(BUGZILLA 3123): std.algorithm.zip fails on 'lazy' ranges)
$(LI $(BUGZILLA 3294): forward reference to inferred return type of function call)
$(LI $(BUGZILLA 3312): std.string.count should use const(char)[], not immutable.)
$(LI $(BUGZILLA 3348): Documentation for many std.process functions has disappeared)
$(LI $(BUGZILLA 3361): code in std.zlib concatenates void[] arrays )
$(LI $(BUGZILLA 3418): link error with cast(ulong)(ulong*real))
$(LI $(BUGZILLA 3544): optlink termination 0041338f with recursive nested functions)
$(LI $(BUGZILLA 3554): Ddoc generats invalid output for documentation comments with non paired paranthasis)
$(LI $(BUGZILLA 3627): -of with a filename with a double extension confuses linker)
$(LI $(BUGZILLA 3877): std.range.chain do not manage infinite ranges correctly)
$(LI $(BUGZILLA 3894): std.range.Stride!R requires R.front() and R.back() to return by reference)
$(LI $(BUGZILLA 3935): opBinary is instantiated with "=")
$(LI $(BUGZILLA 3946): schwartzSort - SwapStrategy always unstable)
$(LIX $(BUGZILLA 3979): Order-of-compilation and forward reference errors)
$(LI $(BUGZILLA 3996): Regression(2.041) ICE(glue.c) Passing struct as AA template parameter (Algebraic with struct))
$(LI $(BUGZILLA 4009): OPTLINK ruins the day yet again)
$(LI $(BUGZILLA 4173): Regression(2.037) Explicitly instantiated templates still try to do IFTI in some cases)
$(LI $(BUGZILLA 4177): __ctfe can't be used in pure functions)
$(LI $(BUGZILLA 4278): allow inlining of super calls (undo limitations of bug3500's fix))
$(LI $(BUGZILLA 4291): Pure functions cannot access mixed in variables)
$(LI $(BUGZILLA 4292): CommonType fails for singular alias value.)
$(LI $(BUGZILLA 4302): Regression(2.046, 1.061): compiler errors using startsWith in CTFE)
$(LI $(BUGZILLA 4345): std.range.take!string: "Nonsensical finite range with slicing but no length".)
$(LI $(BUGZILLA 4346): More flexible std.array.array.)
$(LI $(BUGZILLA 4363): Some phobos ranges are not forward ranges (but should be).)
$(LI $(BUGZILLA 4381): Length attribute for std.typecons.Tuple.)
$(LI $(BUGZILLA 4387): std.range.Cycle assumes lvalue elements.)
$(LI $(BUGZILLA 4388): std.range.Radial assumes lvalue elements.)
$(LI $(BUGZILLA 4402): std.range.Zip doesn't work w/ non-lvalue ranges.)
$(LI $(BUGZILLA 4403): std.range.FrontTransversal assumes lvalue elements.)
$(LI $(BUGZILLA 4404): std.range.Transversal assumes lvalue elements.)
$(LI $(BUGZILLA 4408): Ambiguity when using std.algorithm.splitter with generic ranges.)
$(LI $(BUGZILLA 4430): Regression(2.037) erroneous matching on specialized template function)
$(LI $(BUGZILLA 4455): Taking the sqrt of an integer shouldn't require an explicit cast.)
$(LI $(BUGZILLA 4464): std.range.take does not always return Take!R.)
$(LI $(BUGZILLA 4518): to!string(enum w/invalid value) produces a somewhat unhelpful error)
$(LI $(BUGZILLA 4564): ICE on undefined variable in foreach over 0 .. undef)
$(LI $(BUGZILLA 4603): array(iota(1, 0)) error.)
$(LI $(BUGZILLA 4643): Shared values are unwritable.)
$(LI $(BUGZILLA 4645): to!string(const char*) in library causes Optlink to issue warning)
$(LI $(BUGZILLA 4652): Compiler hangs on template with zero-length tuple and another argument)
$(LI $(BUGZILLA 4655): Regression(1.063, 2.048) goto to a try block ICEs)
$(LI $(BUGZILLA 4676): Overload resolution rejects valid code when mixing variadics, non-variadics)
$(LI $(BUGZILLA 4681): Appender access violation)
$(LI $(BUGZILLA 4691): Incorrect comparison of double and long)
$(LI $(BUGZILLA 4700): to!float("0") fails)
$(LI $(BUGZILLA 4721): compilation slow when compiling unittests on dcollections)
$(LI $(BUGZILLA 4748): Shadowing declaration error in std.string.tolower)
$(LI $(BUGZILLA 4751): Regression(1.062, 2.047) ICE(constfold.c) >> after error)
$(LI $(BUGZILLA 4752): fail_compilation/fail345.d asserts in expression.c)
$(LI $(BUGZILLA 4771): fail_compilation/fail274.d hits a halt in iasm.c)
$(LI $(BUGZILLA 4789): std.algorithm.sort bug)
$(LI $(BUGZILLA 4810): dotProduct problem with ints)
$(LI $(BUGZILLA 4826): Regression(2.041) "cannot create associative array" and compiler crash)
$(LI $(BUGZILLA 4828): ICE w/ non-boolean dot expression sth.template_instance in static if)
$(LI $(BUGZILLA 4834): Implicit sharing via delegates in std.concurrency)
)
)
$(VERSION 048, Aug 8, 2010, =================================================,
$(WHATSNEW
$(LI std.complex: New Complex.toString() syntax.)
$(LI std.string: icmp() now works with all built-in string types.)
$(LI $(BUGZILLA 4077): Bugs caused by bitwise operator precedence)
$(LI $(BUGZILLA 4080): Patch for building dynamic libraries on Mac OS X)
)
$(BUGSFIXED
$(LI Unlisted Bug: std.algorithm.filter not a forward range)
$(LI Unlisted Bug: std.algorithm.Uniq requires a bidirectional range)
$(LI Unlisted Bug: std.algorithm.Uniq missing a save() function)
$(LI Unlisted Bug: std.algorithm.Group missing a save() function)
$(LI Unlisted Bug: std.traits.isAssociativeArray reports true for structs w/ keys, values properties)
$(LI Unlisted Bug: gc_query returns 0 for attr when called on interior pointers)
$(LI $(NG_digitalmars_D 112964): capacity can return a value < length)
$(LI $(BUGZILLA 978): std.utf's toUTF* functions accept some invalid and reject some valid UTF)
$(LI $(BUGZILLA 996): Error in doc on implicit conversion between pointer and array)
$(LI $(BUGZILLA 1418): tupleof bug on nested classes)
$(LI $(BUGZILLA 1678): ref with varargs generates invalid code)
$(LI $(BUGZILLA 2275): std.utf.toUTF16z() should return const(wchar)*)
$(LI $(BUGZILLA 2627): std.traits.hasAliasing reports true for static arrays)
$(LI $(BUGZILLA 2872): Length, opIndex for Map)
$(LI $(BUGZILLA 2931): Initialization struct with array from another struct)
$(LI $(BUGZILLA 3202): std.math.pow cause dead loop)
$(LI $(BUGZILLA 3326): $ in delegate literal causes Access Violation)
$(LI $(BUGZILLA 3355): std.string.cmp works incorrectly for mixed-type and different-length strings)
$(LI $(BUGZILLA 3386): to!bool(string) is not implemented)
$(LI $(BUGZILLA 3436): std.functional.compose with only one function)
$(LI $(BUGZILLA 3439): std.range.Sequence.opIndex not consistent after calling popFront().)
$(LI $(BUGZILLA 3447): std.file uses unconventional file permissions)
$(LI $(BUGZILLA 3528): FreeBSD patches for druntime.)
$(LI $(BUGZILLA 3560): foreach over nested function generates wrong code)
$(LI $(BUGZILLA 3569): DMD Stack Overflow with a struct member function inside a C-style struct initializer)
$(LI $(BUGZILLA 3604): extern(C) callable function with array parameters broken)
$(LI $(BUGZILLA 3679): Regression(2.031) template forward reference regression)
$(LI $(BUGZILLA 3706): delegates of interfaces with multiple inheritance fail)
$(LI $(BUGZILLA 3716): Regression (2.037) with multi dimensional array literals)
$(LI $(BUGZILLA 3782): The POSIX sys/un.h header)
$(LI $(BUGZILLA 3853): core.sys.posix.stdio.pclose is missing)
$(LI $(BUGZILLA 3872): std.algorithm.filter could become bidirectional if its input range is bidir)
$(LI $(BUGZILLA 3874): std.range.stride assumes a bidirectional input range)
$(LI $(BUGZILLA 3917): opEquals for Ojbect could be more efficient)
$(LI $(BUGZILLA 3937): os.path.dirname fails on absolute path)
$(LI $(BUGZILLA 3961): Error with to!(somestruct))
$(LI $(BUGZILLA 3983): Regression(2.037): struct with == can't be member of struct with template opEquals)
$(LI $(BUGZILLA 4109): (reopened) writeln doesn't work with empty static array)
$(LI $(BUGZILLA 4171): std.random.uniform does not work for a range of characters)
$(LI $(BUGZILLA 4191): [FreeBSD] real constants are rounded to double precision)
$(LI $(BUGZILLA 4198): [FreeBSD] imprecision in decimal floating-point literals)
$(LI $(BUGZILLA 4238): Segfault(statement.c): with(typeof(int)))
$(LI $(BUGZILLA 4260): windows & basename)
$(LI $(BUGZILLA 4267): forward reference error when 2-fold aliasing a template instance)
$(LI $(BUGZILLA 4303): __traits(compiles) returns wrong result when used recursively)
$(LI $(BUGZILLA 4305): Take, Chain on top of ranges w/o moveFront() )
$(LI $(BUGZILLA 4307): spawn()'ed thread doesn't terminate)
$(LI $(BUGZILLA 4314): Regression(1.062): Expression array1 && array2 doesn't compile)
$(LI $(BUGZILLA 4327): std.container.Array.Range.~this() tries to call free(T[]))
$(LI $(BUGZILLA 4339): Struct destructor + invariant + struct parameter = horrific error message)
$(LI $(BUGZILLA 4356): Copy constructor not called under extremely mysterious circumstances)
$(LI $(BUGZILLA 4362): std.range.repeat and cycle do not have a .save() method)
$(LI $(BUGZILLA 4363): std.algorithm.Until is not a forward range)
$(LI $(BUGZILLA 4369): Multiple bugs in GC minimize())
$(LI $(BUGZILLA 4370): POSIX monitor attribute not being used)
$(LI $(BUGZILLA 4396): mkdir race prevents concurrent compiling with DMD using make -j)
$(LI $(BUGZILLA 4400): D2 GC doesn't allocate with 16 bytes alignment)
$(LI $(BUGZILLA 4406): Typo (bug) in std.concurrency)
$(LI $(BUGZILLA 4412): Array capacity growth spikey and the ratio approaches 1.0)
$(LI $(BUGZILLA 4443): Optimizer produces wrong code for || or && with struct arrays)
$(LI $(BUGZILLA 4452): Incorrect result of BigInt ^^ long)
$(LI $(BUGZILLA 4470): Problems with std.bigint mod and divide)
$(LI $(BUGZILLA 4503): forward reference to aliased template instance)
$(LI $(BUGZILLA 4506): Regression(2.034): -O flag breaks some recursive functions)
$(LI $(BUGZILLA 4514): Regression: Cannot cast from X* to X)
$(LI $(BUGZILLA 4516): Regression(2.040): forward declaration of enum not supported)
$(LI $(BUGZILLA 4551): D2 Language Docs: http://www.digitalmars.com/d/2.0/arrays.html)
$(LI $(BUGZILLA 4569): extern(c++) doesn't understand const types, produces bad mangled symbol)
$(LI $(BUGZILLA 4570): ElementType!(void[]) shows error message)
$(LI $(BUGZILLA 4578): Regression(2.047,1.062): ICE(cgcod.c): var+arr[])
$(LI $(BUGZILLA 4590): Spec incorrectly describes array appending and memory stomping)
)
)
$(VERSION 047, Jun 11, 2010, =================================================,
$(WHATSNEW
$(LI Changed "op=" to just "op" for template argument to opOpAssign)
$(LI std.algorithm: Added save() to forward ranges; added split() using only one element as separator; added indexOf; fixed unlisted bug in startsWith and endsWith; added skipOver(); added canFind().)
$(LI std.array: Added implementation of save() for T[]s.)
$(LI std.concurrency: Eliminated spurious unittest stdout messages.)
$(LI std.container: Added.)
$(LI std.conv: Added file and line information to conversion errors; added brackets '[' and ']' around arrays and associative arrays as defaults; added emplace() for non-class types.)
$(LI std.file: Replaced exception upon out-of-memory error with assert(0).)
$(LI std.functional: toDelegate now accepts callable(function pointers, delegates and objects implement opCall) )
$(LI std.path: Made basename() generic in string type.)
$(LI std.range: Added the existence of the property save as a condition for isForwardRange; added save to the range defined within; replaced a couple of awkward front() implementations; defined module-level moveFront() and range member moveFront() where appropriate; added @property maxLength to Take; arranged things such that take() for slice-able ranges returns the same type as the slice; eliminated SListRange; defined iota() with one argument; moved BinaryHeap within.)
$(LI std.regex: Qualified indexOf with std.algorithm.)
$(LI std.regexp: Qualified indexOf with std.algorithm.)
$(LI std.stdio: Added an error message to enforce() in rawRead().)
$(LI std.string: Improved indexOf(), tolower(), splitter(), chomp().)
$(LI std.traits: Added templates to get compile-time information about functions.)
$(LI std.typecons: Added AutoImplement.)
$(LI std.utf: Eliminated decodeFront() and decodeBack() - they aren't needed since strings are bidirectional ranges.)
$(LI $(BUGZILLA 2008): Poor optimization of functions with ref parameters)
$(LI $(BUGZILLA 3793): Functions with static arrays as arguments are not inlined)
$(LI $(BUGZILLA 4296): Reduce parasitic error messages)
)
$(BUGSFIXED
$(LI $(BUGZILLA 1193): regression: "matches more than one template declaration" doesn't list the location of the conflicting templates)
$(LI $(BUGZILLA 1894): scope(exit) is ignored except in compound statements)
$(LI $(BUGZILLA 1941): missing line on inaccesable external private module member)
$(LI $(BUGZILLA 2127): inliner turns struct "return *this" from by-value into by-ref)
$(LI $(BUGZILLA 2276): Error message missing line number on array operation)
$(LI $(BUGZILLA 2546): Array Ops silently fail when no slice symbol is used.)
$(LI $(BUGZILLA 2738): Rebindable should work for interfaces.)
$(LI $(BUGZILLA 2835): std.socket.TcpSocket doesn't actually connect)
$(LI $(BUGZILLA 2881): x.stringof returns typeof(x).stringof when x is an enum)
$(LI $(BUGZILLA 3064): Invalid array operation accepted, generates bad code)
$(LI $(BUGZILLA 3088): std.xml.check() fails on xml comments)
$(LI $(BUGZILLA 3139): compiler dies "Error: out of memory" with case range)
$(LI $(BUGZILLA 3200): std.xml doesn't follow spec for Tag.text)
$(LI $(BUGZILLA 3323): Segfault or ICE(e2ir.c) using struct with destructor almost anywhere)
$(LI $(BUGZILLA 3398): Attributes inside a union screws data alignment)
$(LI $(BUGZILLA 3465): isIdeographic can be wrong in std.xml)
$(LI Major improvements to CustomFloat, fixing $(BUGZILLA 3520): std.numeric.CustomFloat horribly broken)
$(LI $(BUGZILLA 3538): Default value of alias template parameter is instantiated only once.)
$(LI $(BUGZILLA 3547): for option -od for relative path the path is added twice)
$(LI $(BUGZILLA 3548): ICE occurs when an array is returned from a function is incorrectly used in an array op expression.)
$(LI $(BUGZILLA 3604): extern(C) callable function with array parameters broken)
$(LI $(BUGZILLA 3651): mangleof broken for enums)
$(LI $(BUGZILLA 3653): Problem sorting array of Rebindable)
$(LI $(BUGZILLA 3658): Crashing on vector operations (Mac only))
$(LI $(BUGZILLA 3662): Wrong compile error within struct constructor and C-style initializer)
$(LI $(BUGZILLA 3667): Regression(D2 only): broken out(result) in contracts)
$(LI $(BUGZILLA 3786): bug in std.string.removechars)
$(LI $(BUGZILLA 3854): Error on static initialization of arrays with trailing comma.)
$(LI $(BUGZILLA 3873): std.range.repeat should have popBack defined)
$(LI $(BUGZILLA 3876): std.range.Take back/popBack methods don't work correctly)
$(LI $(BUGZILLA 3880): std.regex functions with const/immutable Regex object)
$(LI $(BUGZILLA 4003): The result changes only with the order of source files.)
$(LI $(BUGZILLA 4045): [CTFE] increasing array length)
$(LI $(BUGZILLA 4052): [CTFE] increment from array item)
$(LI $(BUGZILLA 4056): Template instantiation with bare parameter not documented)
$(LI $(BUGZILLA 4073): core.cpuid crashes)
$(LI $(BUGZILLA 4078): [CTFE] Failed return of dynamic array item)
$(LI $(BUGZILLA 4084): Ignored missing main() closing bracket)
$(LI $(BUGZILLA 4109): writeln doesn't work with empty static array)
$(LI $(BUGZILLA 4143): fix warnings in dmd build)
$(LI $(BUGZILLA 4156): Segfault with array+=array)
$(LI $(BUGZILLA 4169): building dmd with a modern gcc produces a buggy compiler)
$(LI $(BUGZILLA 4175): linux.mak doesn't declare sufficient dependencies to support parallel builds)
$(LI $(BUGZILLA 4188): std.file.remove throws Exception on success)
$(LI $(BUGZILLA 4193): Regression 2.046, ICE(expression.c): initialising class member with const forward reference)
$(LI $(BUGZILLA 4202): Changset 1517 doesn't compile)
$(LI $(BUGZILLA 4207): std.cover.setDestDir does not work.)
$(LI $(BUGZILLA 4208): druntime should not depend on Phobos)
$(LI $(BUGZILLA 4212): DWARF: void arrays cause gdb errors)
$(LI $(BUGZILLA 4213): Strange behaviour with static void[] arrays)
$(LI $(BUGZILLA 4219): hasAliasing does not care about immutable)
$(LI $(BUGZILLA 4220): I cannot apply @safe to intrinsic operation(eg: std.math.sqrt))
$(LI $(BUGZILLA 4228): std.array.replace contains 2 bugs)
$(LI $(BUGZILLA 4230): version(unittest))
$(LI $(BUGZILLA 4231): Solitary opUnary Postincrement and Postdecrement user defined operators are broken.)
$(LI $(BUGZILLA 4242): ICE(module.c): importing a module with same name as package)
$(LI $(BUGZILLA 4249): std.regex fails to compile with debug=regex)
$(LI $(BUGZILLA 4252): [CTFE] No array bounds checking in assignment to char[] array)
$(LI $(BUGZILLA 4257): ICE(interpret.c): passing parameter into CTFE as ref parameter)
$(LI $(BUGZILLA 4259): Header generation omits leading '@' for properties)
$(LI $(BUGZILLA 4262): Header generation omits 'enum' for enum declarations)
$(LI $(BUGZILLA 4263): Header generation omits '@system' attribute)
$(LI $(BUGZILLA 4270): Missing line number in 'can only catch class objects' error message)
$(LI $(BUGZILLA 4300): BigInt * int doesn't work well)
)
)
$(VERSION 046, May 10, 2010, =================================================,
$(WHATSNEW
$(LI Add hints for missing import declarations.)
$(LI Speed up compilation.)
$(LI All length methods in Phobos are now a @property.)
$(LI $(BUGZILLA 1001): print stack trace (in debug mode) when program die)
)
$(BUGSFIXED
$(LI Fix hanging problem on undefined identifiers.)
$(LI $(BUGZILLA 461): Constant not understood to be constant when circular module dependency exists.)
$(LI $(BUGZILLA 945): template forward reference with named nested struct only)
$(LI $(BUGZILLA 1055): union forward reference "overlapping initialization" error)
$(LI $(BUGZILLA 2085): CTFE fails if the function is forward referenced)
$(LI $(BUGZILLA 2386): Array of forward referenced struct doesn't compile)
$(LI $(BUGZILLA 3945): AssertExpression message should implicitly convert to const char[])
$(LI $(BUGZILLA 4015): forward reference in alias causes error)
$(LI $(BUGZILLA 4016): const initializer cannot forward reference other const initializer)
$(LI $(BUGZILLA 4042): Unable to instantiate a struct template.)
$(LI $(BUGZILLA 4100): Break and continue to label should mention foreach)
$(LI $(BUGZILLA 4116): object.di does not match object_.d)
$(LI $(BUGZILLA 4146): Unavailable: core.sys.posix.sys.wait.waitid())
$(LI $(BUGZILLA 4184): associative array with certain key types results in corrupt values during iteration)
)
)
$(VERSION 045, May 4, 2010, =================================================,
$(WHATSNEW
)
$(BUGSFIXED
$(LI Another try at fixing the Dwarf issues.)
)
)
$(VERSION 044, Apr 30, 2010, =================================================,
$(WHATSNEW
$(LI Improve spelling checking distance to 2.)
$(LI Now all unittests are run, even if some fail)
$(LI Many small improvements to error diagnostics and recovery)
)
$(BUGSFIXED
$(LI $(BUGZILLA 1079): gdb: Dwarf Error: Cannot find DIE at 0xb705 referenced from DIE at 0x250)
$(LI $(BUGZILLA 2437): ICE(tocsym.c, !needThis()) - default struct argument)
$(LI $(BUGZILLA 2935): ICE(out.c) using struct with constructor as function default argument)
$(LI $(BUGZILLA 2549): Segfault on array multiplication.)
$(LI $(BUGZILLA 3066): Array operation without a slice as the lvalue accepted, bad codegen)
$(LI $(BUGZILLA 3207): gdb: Push D patches upstream)
$(LI $(BUGZILLA 3415): broken JSON output)
$(LI $(BUGZILLA 3522): ICE(cg87.c): variable*array[].)
$(LI $(BUGZILLA 3987): [gdb] Invalid DWARF output for function pointers)
$(LI $(BUGZILLA 3974): ICE(init.c): Static array initializer with more elements than destination array)
$(LI $(BUGZILLA 4036): Segfault with -inline and literal of struct containing union)
$(LI $(BUGZILLA 4037): [gdb] Invalid DWARF output for wchar)
$(LI $(BUGZILLA 4038): [gdb] Invalid DWARF output for function pointers with ref args)
$(LI $(BUGZILLA 4067): [CTFE] Code inside try-catch blocks is silently ignored)
$(LI $(BUGZILLA 4072): Stack overflow on recursive template expansion inside contract)
$(LI $(BUGZILLA 4081): cannot compile the dmd on FreeBSD 8)
$(LI $(BUGZILLA 4089): crash when creating JSON output for incomplete struct)
$(LI $(BUGZILLA 4093): Segfault(interpret.c): with recursive struct templates)
$(LI $(BUGZILLA 4105): Stack overflow involving alias template parameters and undefined identifier)
$(LI $(BUGZILLA 4108): ICE(cod2.c): zero-length static array in function call)
$(LI $(BUGZILLA 4118): std.conv.to!SomeStruct("hello") crashes compiler)
$(LI $(BUGZILLA 4131): break does not work correctly with foreach and associative arrays)
)
)
$(VERSION 043, Apr 6, 2010, =================================================,
$(WHATSNEW
$(LI $(B .init) property for static arrays is now an array literal)
$(LI Improved speed of associative arrays)
$(LI std.bigint has been completely replaced with a faster implementation.
Multiplication is now 5 times faster, division is
300 times faster, and squaring is 10 times faster. For large numbers
(~5000 words), the speedup is 5 times larger than this.)
)
$(BUGSFIXED
$(LI Fixed memory corruption problem with array appends)
$(LI $(BUGZILLA 122): DDoc newline behaviour produces suboptimal results)
$(LI $(BUGZILLA 1628): Ddoc produces invalid documentation for --- blocks)
$(LI $(BUGZILLA 2609): No documentation generated for destructor)
$(LI $(BUGZILLA 3808): Assertion Failure : Assertion failure: 'classinfo->structsize == CLASSINFO_SIZE' on line 870 in file 'toobj.c')
$(LI $(BUGZILLA 3884): Segfault: defining a typedef with an invalid object.d)
$(LI $(BUGZILLA 3911): Associative array in CTFE crashes compiler)
$(LI $(BUGZILLA 3958): mixin(non-static method) crashes compiler)
$(LI $(BUGZILLA 3972): Regarding module with name different from its file name)
$(LI $(BUGZILLA 3984): Segfault(interpret.c): CTFE using struct constructor on a local static variable)
$(LI $(BUGZILLA 3986): Struct constructors bypass default initialization of member variables)
$(LI $(BUGZILLA 4002): dmd.conf and binary path in dmd -v output)
$(LI $(BUGZILLA 4004): DMD 2.042 CTFE regression with functions taking ref parameters)
$(LI $(BUGZILLA 4005): std.c.stdlib.exit in CTFE and more)
$(LI $(BUGZILLA 4011): Incorrect function overloading using mixins)
$(LI $(BUGZILLA 4019): [CTFE] Adding an item to an empty AA)
$(LI $(BUGZILLA 4020): [ICE][CTFE] struct postblit in CTFE)
$(LI $(BUGZILLA 4023): std.math.hypot() returns infinity when either argument is zero)
$(LI $(BUGZILLA 4027): Closures in CTFE generate wrong code)
$(LI $(BUGZILLA 4029): CTFE: cannot invoke delegate returned from function)
)
)
$(VERSION 042, Mar 19, 2010, =================================================,
$(WHATSNEW
)
$(BUGSFIXED
$(LI Add base class destruction to clear() in object.d)
$(LI $(BUGZILLA 3842): ICE(expression.c) using pointer in CTFE)
$(LI $(BUGZILLA 3885): No multithread support for Windows DLL)
$(LI $(BUGZILLA 3899): CTFE: poor error message for use of uninitialized variable)
$(LI $(BUGZILLA 3900): CTFE: Wrong return value for array.var assignment)
$(LI $(BUGZILLA 3901): PATCH: Nested struct assignment for CTFE)
$(LI $(BUGZILLA 3902): Definition of opCmp)
$(LI $(BUGZILLA 3912): pure static nested functions are not recognized as pure)
$(LI $(BUGZILLA 3914): Struct as argument that fits in register has member accessed wrong)
$(LI $(BUGZILLA 3919): ICE(expression.c, 9944): * or / with typedef ireal)
$(LI $(BUGZILLA 3920): Assertion failure: '0' on line 10018 in file 'expression.c')
$(LI $(BUGZILLA 3930): AAs horribly broken)
)
)
$(VERSION 041, Mar 7, 2010, =================================================,
$(WHATSNEW
$(LI __traits allMembers and and derivedMembers now return a tuple of strings
rather than an array of strings. Enclose __traits in [ ] to make array literal.
This makes it possible for foreach statements to iterate at compile time over it.
)
$(LI Interface member functions can now have $(LINK2 interface.html#InterfaceContracts, contracts).)
$(LI Added new $(LINK2 operatoroverloading.html, operator overloading) regime.)
$(LI Warnings no longer halt the parsing/semantic passes, though they still return
an error status and still do not generate output files. They also no longer count
as errors when testing with "compiles" traits.)
$(LI Added $(B -wi) switch for $(BUGZILLA 2567))
$(LI Mixin template definitions should be preceded with $(CODE mixin))
$(LI Add $(LINK2 expression.html#InExpression, $(B !in)) operator.)
$(LI Associative array contents can now be compared for equality)
$(LI Use of $(B length) inside of [ ] is now deprecated, use $(DOLLAR) instead)
$(LI Added $(B toDelegate()) to std.functional to convert function pointers to delegates.)
$(LI Implemented attributes for constructors.)
$(LI Implemented qualifiers for struct literals, like $(CODE immutable(S)(1,2,3)))
$(LI Array equality can now be done with differing array element types.)
$(LI Add simple spell checking.)
$(LI $(BUGZILLA 3378): [tdpl] ++x should be an lvalue)
$(LI string, wstring are now bidirectional (not random) ranges)
$(LI std.algorithm: defined move with one argument; levenshtein distance generalized to with all forward ranges; take now has swapped arguments)
$(LI std.array: empty for arrays is now a @property; front and back for a string and wstring automatically decodes the first/last character; popFront, popBack for string and wstring obey the UTF stride)
$(LI std.conv: changed the default array formatting from "[a, b, c]" to "a b c")
$(LI std.range: swapped order of arguments in take)
$(LI std.stdio: added readln template)
$(LI std.variant: now works with statically-sized arrays and const data)
$(LI std.traits: added isNarrowString)
$(LI The default type for [1,2,3] is now int[] rather than int[3].)
)
$(BUGSFIXED
$(LI $(BUGZILLA 2321): spec on inline asm can be misunderstood)
$(LI $(BUGZILLA 2463): No line number in "statement is not reachable" warning)
$(LI $(BUGZILLA 3029): Bug in array value mangling rule)
$(LI $(BUGZILLA 3306): bad function/delegate literal generated into header files)
$(LI $(BUGZILLA 3373): bad codeview debug info for long and ulong)
$(LI Posix only, $(BUGZILLA 3420): [PATCH] Allow string import of files using subdirectories)
$(LI $(BUGZILLA 3450): incorrect result for is (typeof({ ... }())) inside a struct)
$(LI $(BUGZILLA 3453): Linking order affects proper execution (Mac OSX only))
$(LI $(BUGZILLA 3491): typeof((string[string]).init) == AssociativeArray!(string, string), doesn't implicitly convert to string[string].)
$(LI $(BUGZILLA 3500): super behaves differently with -inline)
$(LI $(BUGZILLA 3558): Optimizer bug results in false if condition being taken)
$(LI $(BUGZILLA 3582): core.stdc.ctype functions are not pure)
$(LI $(BUGZILLA 3619): Thread crash on exit)
$(LI $(BUGZILLA 3637): Array append patch to prevent stomping and to enhance thread-local append performance)
$(LI $(BUGZILLA 3644): Wrong UCHAR_MAX value in module core.stdc.limits)
$(LI $(BUGZILLA 3670): Declarator grammar rule is broken)
$(LI $(BUGZILLA 3689): Grammar does not allow const(int))
$(LI $(BUGZILLA 3692): ICE(mtype.c) with associative arrays when std.variant is imported)
$(LI $(BUGZILLA 3695): __EOF__ token not documented)
$(LI $(BUGZILLA 3697): StructTemplateDeclaration and others missing constraint in rule)
$(LI $(BUGZILLA 3710): Typo in allMembers description?)
$(LI $(BUGZILLA 3736): corrupted struct returned by function with optimizations (-O))
$(LI $(BUGZILLA 3737): SEG-V at expression.c:6255 from bad opDispatch)
$(LI $(BUGZILLA 3763): std.stdio.readlnImpl absurdly inefficient and overflows stack)
$(LI $(BUGZILLA 3768): reapeted quotes in ddoc.html)
$(LI $(BUGZILLA 3769): Regression: Segfault(constfold.c) array literals and case statements)
$(LI $(BUGZILLA 3775): Segfault(cast.c): casting no-parameter template function using property syntax)
$(LI $(BUGZILLA 3776): Wrong CHAR_MIN value in module core.stdc.limits)
$(LI $(BUGZILLA 3781): ICE(interpret.c): using no-argument C-style variadic function in CTFE)
$(LI $(BUGZILLA 3803): compiler segfaults)
$(LI $(BUGZILLA 3840): Jump to: section in the docs should be sorted)
)
)
$(VERSION 040, Jan 29, 2010, =================================================,
$(WHATSNEW
$(LI Clarification: function returns are not lvalues)
$(LI Added shared static constructors/destructors, regular static
constructors/destructors now deal with TLS)
$(LI Add $(B -map) command line switch)
$(LI Add $(LINK2 attribute.html#disable, $(B @disable)) attribute)
$(LI Delegates and function pointers may be used in CTFE)
$(LI Delegate literals and function literals may be used in CTFE)
$(LI Lazy function parameters may now be used in CTFE)
$(LI Slicing of char[] arrays may now be used in CTFE)
$(LI added static/final function implementations to interfaces)
$(LI added $(B getOverloads), $(B identifier), and $(B isStaticFunction) traits.)
$(LI ModuleInfo changed from class to struct)
$(LI $(BUGZILLA 3556): version(CTFE))
$(LI $(BUGZILLA 3728): getOverloads and identifier traits)
)
$(BUGSFIXED
$(LI Added TLS support for OSX)
$(LI $(CPPBUGZILLA 47): Internal error: cg87 3316)
$(LI $(BUGZILLA 1298): CTFE: tuple foreach bugs)
$(LI $(BUGZILLA 1790): CTFE: foreach(Tuple) won't compile if Tuple contains string)
$(LI $(BUGZILLA 2101): CTFE: Please may I use mutable arrays at compile time?)
$(LI $(BUGZILLA 2066): to!(string)(int) into CTFE-compatible)
$(LI $(BUGZILLA 3488): Segfault(expression.c): enum declared with struct static initializer)
$(LI $(BUGZILLA 3535): struct constructors don't work in CTFE)
$(LI $(BUGZILLA 3552): ICE(mtype.c): declaring a variable called 'AssociativeArray' then using an AA.)
$(LI Partial fix for $(BUGZILLA 3569), stops the stack overflow)
$(LI $(BUGZILLA 3600): template instantiation with empty tuple)
$(LI $(BUGZILLA 3660): Templates and shared functions don't mix)
$(LI $(BUGZILLA 3668): foreach over typedef'd array crashes dmd)
$(LI $(BUGZILLA 3671): x^^3 gives wrong result when x is a floating-point literal)
$(LI $(BUGZILLA 3674): forward reference error with multiple overloads with same name)
$(LI $(BUGZILLA 3675): Regression: Struct literals cannot be initialized with another struct literal)
$(LI $(BUGZILLA 3687): Array operation "slice times scalar" tramples over memory)
$(LI $(BUGZILLA 3719): forward references can cause out-of-memory error)
$(LI $(BUGZILLA 3723): Regression: forward referenced enum)
$(LI $(BUGZILLA 3724): bug in Expression::arraySyntaxCopy (null pointer dereference on struct->union->struct))
$(LI $(BUGZILLA 3726): Regression: ICE(mangle.c 81): struct forward reference with static this)
$(LI $(BUGZILLA 3727): lots of "deffering SomeStructName" messages when compiling)
$(LI $(BUGZILLA 3734): [patch] src/traits.c does not compile with gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1)
$(LI $(BUGZILLA 3740): Regression: class with fwd reference of a nested struct breaks abstract)
)
)
$(VERSION 039, Jan 1, 2010, =================================================,
$(WHATSNEW
)
$(BUGSFIXED
$(LI $(BUGZILLA 3663): struct forward reference regresssion)
$(LI $(BUGZILLA 3664): struct forward declaration causes enum to conflict with itself)
)
)
$(VERSION 038, Dec 30, 2009, =================================================,
$(WHATSNEW
$(LI Added core.cpuid in Druntime)
$(LI $(BUGZILLA 3514): opApply should be the first-choice foreach iteration method.)
$(LI $(BUGZILLA 3577): Wrong precedence for opPow)
$(LI Added $(LINK2 function.html#auto-ref-functions, auto ref functions))
$(LI Added $(LINK2 template.html#auto-ref-parameters, function template auto ref parameters))
$(LI Added $(B isRef), $(B isOut) and $(B isLazy) to $(LINK2 traits.html, $(D_KEYWORD __traits)))
$(LI Transporting return type from args to return type, see $(LINK2 http://www.prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP2, DIP2))
)
$(BUGSFIXED
$(LI $(CPPBUGZILLA 45): Internal error: cgcod 1594)
$(LI $(CPPBUGZILLA 46): Constant folding with long doubles)
$(LI $(BUGZILLA 282): Bizarre circular import nested name invisibility issue)
$(LI $(BUGZILLA 390): Cannot forward reference enum nested in struct)
$(LI $(BUGZILLA 400): forward reference error; no propety X for type Y (struct within struct))
$(LI $(BUGZILLA 1160): enums can not be forward referenced)
$(LI $(BUGZILLA 1564): Forward reference error for enum in circular import)
$(LI $(BUGZILLA 2029): Typesafe variadic functions don't work in CTFE)
$(LI $(BUGZILLA 2816): Sudden-death static assert is not very useful)
$(LI $(BUGZILLA 3270): pure functions returning struct)
$(LI $(BUGZILLA 3443): Thread.thread_needLock() should be nothrow)
$(LI $(BUGZILLA 3455): Some Unicode characters not allowed in identifiers)
$(LI $(BUGZILLA 3458): int fsync(int) commented out in core.sys.posix.unistd)
$(LI $(BUGZILLA 3476): C-style initializer for structs must be disallowed for structs with a constructor)
$(LI $(BUGZILLA 3575): CTFE: member structs not initialized correctly)
$(LI $(BUGZILLA 3583): Unsigned right shift works the same as signed right shift.)
$(LI $(BUGZILLA 3584): DeclDef rule is missing entries)
$(LI $(BUGZILLA 3585): Duplicate clauses in EqualExpression and RelExpression rules)
$(LI $(BUGZILLA 3587): Aggregate rule references undefined Tuple)
$(LI $(BUGZILLA 3588): WithStatement rule references unspecified Symbol)
$(LI $(BUGZILLA 3589): BaseClassList and InterfaceClasses rules are incorrect, missing ',')
$(LI $(BUGZILLA 3590): FunctionParameterList rule is missing)
$(LI $(BUGZILLA 3591): TemplateIdentifier rule is misspelled)
$(LI $(BUGZILLA 3592): ClassTemplateDeclaration and FunctionTemplateDeclaration rules are unreferenced)
$(LI $(BUGZILLA 3593): IntegerExpression rule unspecified)
$(LI $(BUGZILLA 3594): AsmPrimaryExp rule references unspecified rules)
$(LI $(BUGZILLA 3595): Several rules are missing ':' after rule name)
$(LI $(BUGZILLA 3596): Need alias for using std.algorithm.remove)
$(LI $(BUGZILLA 3601): Debug and Release builds of DMD produce different object files)
$(LI $(BUGZILLA 3611): Enum forward referencing regression)
$(LI $(BUGZILLA 3612): ExpressionList is undefined)
$(LI $(BUGZILLA 3617): CTFE: wrong code for if(x) where x is int or smaller)
$(LI $(BUGZILLA 3621): implicit conversion to const rules need tightening)
$(LI $(BUGZILLA 3633): Optimizer causes access violation)
$(LI $(BUGZILLA 3641): alias shared T U does not work)
$(LI $(BUGZILLA 3645): manifest constant (enum) crashes dmd)
$(LI $(BUGZILLA 3647): non-function opDispatch crashes dmd)
)
)
$(VERSION 037, Dec 3, 2009, =================================================,
$(WHATSNEW
$(LI Conditional expressions ?: can now be modifiable lvalues.)
$(LI The type inferred from an
$(LINK2 expression.html#ArrayLiteral, $(I ArrayLiteral))
is now a dynamic array, not a static one.)
$(LI Added support for $(I op)= for array.length)
$(LI Array and associative array types are now determined by using ?: across
all the elements, not just using the first one.)
$(LI Array concatenation with elements now allows implicit conversion of
the elements to the array element type.)
$(LI No more comma operators allowed between [ ].)
$(LI ClassInfo now merged into TypeInfo_Class.)
$(LI $(BUGZILLA 3379): [tdpl] Parameter names not visible in the if clause of a template)
$(LI $(BUGZILLA 3380): [tdpl] typeid(obj) should return the dynamic type of the object)
$(LI Removed $(B -safe) command line switch, added $(B -noboundscheck) command
line switch.)
$(LI $(BUGZILLA 3481): PATCH: opPow(), x ^^ y as a power operator)
$(LI Added opDispatch)
$(LI properties can only have 0 or 1 arguments)
$(LI properties cannot be overloaded with non-properties)
$(LI std.math: Added FloatControl, IeeeFlags for enabling floating-point exceptions.)
$(LI std.math: Inverse trig functions are now pure nothrow.)
)
$(BUGSFIXED
$(LI std.array: Fixed unlisted bug in array().)
$(LI $(BUGZILLA 111): appending a dchar to a char[])
$(LI $(BUGZILLA 2664): OSX standard math functions are less accurate)
$(LI $(BUGZILLA 2802): VariantN.opCmp!(T) fails when T != VariantN)
$(LI $(BUGZILLA 2967): spec does not mention that inline asm is a valid "return" statement)
$(LI $(BUGZILLA 2977): std.random.unpredictableSeed() should use thread ID somewhere)
$(LI $(BUGZILLA 3115): >>> and >>>= generate wrong code)
$(LI $(BUGZILLA 3171): % not implemented correctly for floats)
$(LI $(BUGZILLA 3311): std.range.chain shouldn't have opIndexAssign if arguments aren't mutable)
$(LI $(BUGZILLA 3375): [tdpl] Ternary operator doesn't yield an lvalue)
$(LI $(BUGZILLA 3381): [tdpl] Incorrect assessment of overriding in triangular-shaped hierarchy)
$(LI $(BUGZILLA 3388): [tdpl] contracts should allow throw expressions)
$(LI $(BUGZILLA 3390): [tdpl] out(result) contract should not be able to rebind result)
$(LI $(BUGZILLA 3407): [tdpl] Compiling with -safe -release must keep all bound checks)
$(LI $(BUGZILLA 3433): [tdpl] Comparing structs for equality is not member-by-member)
$(LI $(BUGZILLA 3469): ICE(func.c): Regression. Calling non-template function as a template, from another module)
$(LI $(BUGZILLA 3478): "no effect in expression" error on return to void)
$(LI $(BUGZILLA 3494): Segfault(mtype.c) using typeof(return) inside an auto function)
$(LI $(BUGZILLA 3495): Segfault(typinf.c) instantiating D variadic function with too few arguments)
$(LI $(BUGZILLA 3496): ICE(cgelem.c, optimizer bug) cast(void *)(x&1)== null.)
$(LI $(BUGZILLA 3502): Fix for dropped Mac OS X 10.5)
$(LI $(BUGZILLA 3521): Optimized code access popped register)
$(LI $(BUGZILLA 3540): Another DWARF line number fix)
$(LI $(BUGZILLA 3551): nested struct => dmd adds a hidden pointer)
$(LI $(BUGZILLA 3553): ICE when a function argument defaults to __LINE__)
)
)
$(VERSION 036, Nov 5, 2009, =================================================,
$(WHATSNEW
$(LI Static arrays are now passed by value to functions rather than by reference)
$(LI std.algorithm: Add hasLength requirement to topN;
implemented topN for two non-adjacent ranges; added replaceTop
function to BinaryHeap; changed BinaryHeap.top to return ref.)
$(LI std.ctype: Add pure to isalnum, isalpha, iscntrl, isdigit,
islower, ispunct, isspace, isxdigit, isgraph, isprint, isascii,
toupper.)
$(LI std.date: Implementation change and unittest for isLeapYear and
daysInYear. Made both pure as well.)
$(LI std.encoding: Added function count().)
$(LI std.md5: Added explicit pass-by-ref for fixed-size buffers.)
$(LI std.numeric: Added gcd.)
$(LI std.random: Added static checks for the parameters of the linear
congruential generator.)
$(LI std.range: Reinstated some unittests; fixed Cycle to work with
the new fixed-size arrays.)
$(LI std.typecons: Added alias 'expand' for Tuple.field.)
$(LI std:utf: Added count function and changed the encode function
to take fixed-size array by reference.)
$(LI $(BUGZILLA 3446): Rename float.min to float.min_normal)
)