forked from dlang/dlang.org
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.dd
4678 lines (4452 loc) · 293 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,
$(COMMENT $(UPCOMING
$(LI Shared libraries for Linux)
))
$(VERSION 062, Feb 18, 2013, =================================================,
$(BUGSTITLE Language Changes,
$(LI typeof() change:)
$(P As a result of fixing $(BUGZILLA 6408), the usage of $(D typeof()) and indexing may require changes to user code:)
---------
template ElementTypeOf(T)
{
alias typeof(T[0]) ElementTypeOf;
}
void main()
{
// worked in 2.061 due to a bug
static assert(is(ElementTypeOf!(int[]) == int));
}
---------
$(P The expression in $(D typeof(T[0])) used to be wrongly interpreted as the element type of $(B T), however in v2.062 it is interpreted as a static array of element $(B T) with length 0. To work around this the user can either use a trait from the standard library, or use the $(D .init) property of a type for arbitrary expressions:)
---------
import std.range;
template ElementTypeOf(T)
{
// use T.init
alias typeof(T.init[0]) ElementTypeOf;
}
void main()
{
// use std.range.ElementType
static assert(is(ElementType!(int[]) == int));
// use custom template after fixing its code
static assert(is(ElementTypeOf!(int[]) == int));
}
---------
$(LI $(D alias) syntax change:)
$(P The newly introduced "$(D alias foo = int)" syntax is not usable with
$(DDSUBLINK class, AliasThis, subtyping). This is to prevent confusion from a possible future syntax which would enable aliasing of super constructors. For now, the existing $(D alias) syntax can be used:)
---------
struct S
{
int x;
// alias this = x; // error
alias x this;
}
---------
$(P In the upcoming release (v2.063) a new syntax will be introduced:)
---------
struct S
{
int x;
alias this : x; // new feature in upcoming 2.063
}
---------
)
$(BR)$(BIG List of all bug fixes and enhancements:)
$(BUGSTITLE DMD Compiler regressions,
$(P
$(LI $(BUGZILLA 9174): regression$(LPAREN)2.057$(RPAREN) ice$(LPAREN)cast.c$(RPAREN) with ternary operator and alias this)
$(LI $(BUGZILLA 9244): union containing pointers not allowed)
$(LI $(BUGZILLA 9258): opAssign with base class triggers "identity assignment operator overload" error)
$(LI $(BUGZILLA 9259): Passing an array of pointers to a typesafe vararg is broken)
$(LI $(BUGZILLA 9263): statement is not reachable when statement is reachable)
$(LI $(BUGZILLA 9266): Cannot define two Tuple objects.)
$(LI $(BUGZILLA 9268): [ice-on-invalid] void assignment in fail44.d no longer caught in frontend)
$(LI $(BUGZILLA 9273): DMD segfaults with templated ctors in implicit super call)
$(LI $(BUGZILLA 9276): regression$(LPAREN)2.061$(RPAREN): Forward reference error)
$(LI $(BUGZILLA 9278): ICE todt.c:692 when float containing struct is defined after use)
$(LI $(BUGZILLA 9309): Regression $(LPAREN)2.061$(RPAREN): -O -release generates wrong code)
$(LI $(BUGZILLA 9332): [REG][2.060 -> 02.061] struct constructor taking itself creates 'Warning: statement is not reachable')
$(LI $(BUGZILLA 9377): Link-failure regression cause by fixing issue 8504)
$(LI $(BUGZILLA 9385): [Regression 2.057] null literal should be implicitly convertible to bool)
$(LI $(BUGZILLA 9387): Compiler switch -O changes behavior of correct code)
$(LI $(BUGZILLA 9399): ICE with nested function, template alias parameter, -inline, depending on order of source files)
$(LI $(BUGZILLA 9404): Nullable is unusable with 2.061)
$(LI $(BUGZILLA 9406): $(LPAREN)Regression: 2.061$(RPAREN) Stack overflow from a forward reference error)
$(LI $(BUGZILLA 9409): [2.062-alpha] Regression with $ inside of expression tuples)
$(LI $(BUGZILLA 9410): [Regression 2.061] Wrong selection for function overload)
$(LI $(BUGZILLA 9416): [REG][2.060 -> 02.061] DMD eagerly instantiates template parameter-less opAssign)
$(LI $(BUGZILLA 9420): [2.062alpha] Weird "$(LPAREN)null$(RPAREN)" output in error message)
$(LI $(BUGZILLA 9435): regression$(LPAREN)head$(RPAREN): forward reference error)
$(LI $(BUGZILLA 9436): enum cannot be forward referenced with cyclic imports and mixin)
$(LI $(BUGZILLA 9496): [REG 2.061 -> 2.062 alpha] "this[1 .. $]" passes wrong "this" to "opDollar")
$(LI $(BUGZILLA 9514): "template instance … is not an alias")
$(LI $(BUGZILLA 9525): [CTFE] Cannot convert &S to const$(LPAREN)S*$(RPAREN) at compile time)
)
)
$(BUGSTITLE DMD Compiler bugs,
$(P
$(LI $(BUGZILLA 1369): Unable to find 'this' in __traits$(LPAREN)getMember$(RPAREN))
$(LI $(BUGZILLA 1730): Bogus error message calling a non-const struct method on a const struct reference)
$(LI $(BUGZILLA 1841): Closure detection doesn't work when variable is used in a nested function)
$(LI $(BUGZILLA 2452): Unimplemented method errors should show function overload)
$(LI $(BUGZILLA 3321): debug flags)
$(LI $(BUGZILLA 3466): Wrong JSON output for templated classes, structs, and interfaces)
$(LI $(BUGZILLA 4178): destructor missing in JSON output)
$(LI $(BUGZILLA 4269): Regression$(LPAREN)2.031$(RPAREN): invalid type accepted if evaluated while errors are gagged)
$(LI $(BUGZILLA 4477): JSON output for function definitions includes insufficient type information)
$(LI $(BUGZILLA 4478): JSON output omits import statements)
$(LI $(BUGZILLA 4540): Better error message for wrong switch type)
$(LI $(BUGZILLA 5168): String enums don't work with -g compiler switch)
$(LI $(BUGZILLA 5461): Invalid declaration for auto functions in .di files generated by DMD -H)
$(LI $(BUGZILLA 5933): Cannot retrieve the return type of an auto-return member function)
$(LI $(BUGZILLA 5978): ICE$(LPAREN)mtype.c$(RPAREN) when calling __traits$(LPAREN)parent$(RPAREN) on the child of an anonymous function.)
$(LI $(BUGZILLA 6057): Problem with defining enum in function)
$(LI $(BUGZILLA 6319): debug's relaxed purity does not apply to nested scopes)
$(LI $(BUGZILLA 6332): Auto-return function cannot be inferred as @safe)
$(LI $(BUGZILLA 6408): string[].init gives a wrong type)
$(LI $(BUGZILLA 6538): ICE$(LPAREN)mangle.c$(RPAREN) Invalid template constraints)
$(LI $(BUGZILLA 6552): Wrong fallthrough warning for CaseRange)
$(LI $(BUGZILLA 6652): foreach parameter with number range is always ref)
$(LI $(BUGZILLA 6708): immutable ref implicit cast to const ref)
$(LI $(BUGZILLA 6743): ICE$(LPAREN)mars.c$(RPAREN) attempting to compile an exe file)
$(LI $(BUGZILLA 6833): Floating point literals lose fractional part in headers)
$(LI $(BUGZILLA 6873): Multiple storage class is not allowed on template argument)
$(LI $(BUGZILLA 6902): Different "pure nothrow int$(LPAREN)$(RPAREN)" types)
$(LI $(BUGZILLA 6905): ref acts as auto ref when return type is missing)
$(LI $(BUGZILLA 6962): Wrong Code With Scope Exit and Array Parameter, only with -O)
$(LI $(BUGZILLA 6963): pure/nothrow inference doesn't work for function pointers)
$(LI $(BUGZILLA 7152): Can't assign null to default argument)
$(LI $(BUGZILLA 7159): Forward reference when casting auto return method)
$(LI $(BUGZILLA 7252): ICE$(LPAREN)template.c$(RPAREN): 'global.errors' on line 4893 in file 'template.c')
$(LI $(BUGZILLA 7408): traits compiles fails for built-in properties of template instances)
$(LI $(BUGZILLA 7420): Duplicate "cannot be read at compile time" error messages)
$(LI $(BUGZILLA 7585): functions in templates inferred as delegate)
$(LI $(BUGZILLA 7740): unicodeProperties cannot be read at compile time for ctRegex)
$(LI $(BUGZILLA 7950): Type tuples are incorrectly flattened in base type list of interface)
$(LI $(BUGZILLA 8053): Recursive alias this causes infinite loop)
$(LI $(BUGZILLA 8152): Linking C library causes Seg-fault)
$(LI $(BUGZILLA 8153): Warning about toHash signature is incorrect on x86_64)
$(LI $(BUGZILLA 8504): Template attribute inferrence doesn't work)
$(LI $(BUGZILLA 8583): [64 bit] AA ushort[dchar] byValue range is corrupted on x86_64)
$(LI $(BUGZILLA 8631): illegal overrides accepted)
$(LI $(BUGZILLA 8717): `private` and `protected` restrict member usage in same module)
$(LI $(BUGZILLA 8741): wrong code for struct member initialized using struct constructor)
$(LI $(BUGZILLA 8742): Anonymous nested class derived from another nested class makes DMD crash)
$(LI $(BUGZILLA 8763): struct initialization with empty variadic arguments tries to call constructor)
$(LI $(BUGZILLA 8783): ref foreach update of const fixed size arrays in constructor)
$(LI $(BUGZILLA 8787): Virtual not abstract methods in interfaces error message)
$(LI $(BUGZILLA 8832): Segfault when accessing range returned by function that has delegate referencing local variables)
$(LI $(BUGZILLA 8847): voldemort + inout confuses "is")
$(LI $(BUGZILLA 8892): Wrong diagnostic for static array assignment)
$(LI $(BUGZILLA 8898): false positive dangling else warning)
$(LI $(BUGZILLA 8913): Wrong code in IfStatement condition Expression)
$(LI $(BUGZILLA 8922): __traits$(LPAREN)parent, <imported package>$(RPAREN) shows current module as a parent)
$(LI $(BUGZILLA 8969): is$(LPAREN)T == __parameters$(RPAREN) is undocumented)
$(LI $(BUGZILLA 8982): ICE$(LPAREN)ctfeexpr.c$(RPAREN) __parameters of an erroneous default parameter)
$(LI $(BUGZILLA 9018): __traits$(LPAREN)compiles, ...$(RPAREN) is true on second check for same incompilable code)
$(LI $(BUGZILLA 9083): mixin expression on template argument doesn't work)
$(LI $(BUGZILLA 9113): ICE$(LPAREN)interpret.c$(RPAREN): CTFE assignment to member of struct in union)
$(LI $(BUGZILLA 9178): UDA: getAttributes does not play well with tupleof)
$(LI $(BUGZILLA 9191): Unhelpful error message on failing override)
$(LI $(BUGZILLA 9195): Should not be able to index a pointer in safed)
$(LI $(BUGZILLA 9198): Vararg functions don't respect IFTI rules)
$(LI $(BUGZILLA 9200): Wrong SIMD code generated)
$(LI $(BUGZILLA 9208): [ICE]$(LPAREN)func.c line 1205$(RPAREN) with auto return in recursive function)
$(LI $(BUGZILLA 9236): CTFE ice on switch + with$(LPAREN)EnumType$(RPAREN))
$(LI $(BUGZILLA 9250): Wrong line number for error involving length of a static array)
$(LI $(BUGZILLA 9254): ICE on invalid foreach aggregate)
$(LI $(BUGZILLA 9264): [64bit] Wrong code with conversion from int parameter to float)
$(LI $(BUGZILLA 9284): DMD segfaults with templated ctors in constructor delegation)
$(LI $(BUGZILLA 9291): [ICE][REG] throwing undefined identifier with nothrow crashes dmd)
$(LI $(BUGZILLA 9293): enum struct with StructInitializer reports weird error)
$(LI $(BUGZILLA 9304): Unary minus operator doesn't work correctly with SIMD types.)
$(LI $(BUGZILLA 9305): Ugly Ddoc for default template lambda expressions)
$(LI $(BUGZILLA 9312): with statement error message is wrong)
$(LI $(BUGZILLA 9315): ICE $(LPAREN)expression.c:4249, StructLiteralExp::getField$(RPAREN) Tupleof of nested struct literal)
$(LI $(BUGZILLA 9320): optimizer should do copy propagation on structs, too)
$(LI $(BUGZILLA 9322): Internal error: ../ztc/cod1.c 3510 with SIMD on OSX 32)
$(LI $(BUGZILLA 9330): Cannot run dmd test suite with MSYS)
$(LI $(BUGZILLA 9338): Compiler segfaults if try to CTFE member function without valid 'this')
$(LI $(BUGZILLA 9348): "tmpl!arg" syntax followed by "!is" or "!in")
$(LI $(BUGZILLA 9350): std.algorithm.findAdjacent unreachable code warning with infinite ranges)
$(LI $(BUGZILLA 9357): Floating-point literal should always be printed with a period in diagnostic errors)
$(LI $(BUGZILLA 9358): Compiler creates duplicate switch cases after an error)
$(LI $(BUGZILLA 9368): Final switch on typedef'ed enum is not properly checked)
$(LI $(BUGZILLA 9369): DDoc hardcodes '&' -> '&' in code)
$(LI $(BUGZILLA 9374): 'super' should be accessible inside template constraint)
$(LI $(BUGZILLA 9398): Wrong diagnostic for ternary operator type mismatch)
$(LI $(BUGZILLA 9418): Segmentation fault using only datetime and stdio.)
$(LI $(BUGZILLA 9438): Strange RefCounted stack overflow)
$(LI $(BUGZILLA 9442): typeid$(LPAREN)$(RPAREN) doesn't work without `this.` for class fields)
$(LI $(BUGZILLA 9453): ice$(LPAREN)symbol.c$(RPAREN) with slice on temporary)
$(LI $(BUGZILLA 9458): ModExp generates invalid code against array operands)
$(LI $(BUGZILLA 9461): Ability to break typesystem with `inout`)
$(LI $(BUGZILLA 9479): _error_ in error message of type inference of a delegate literal)
$(LI $(BUGZILLA 9484): Syntax error in JSON output)
$(LI $(BUGZILLA 9510): core.bitop.bsr undefined)
)
)
$(BUGSTITLE DMD Compiler enhancements,
$(P
$(LI $(BUGZILLA 2630): ddoc should be able to document unittests)
$(LI $(BUGZILLA 3404): JSON output should retain original alias names)
$(LI $(BUGZILLA 4194): Attributes included in JSON output)
$(LI $(BUGZILLA 5529): std.system.endian for pure functions?)
$(LI $(BUGZILLA 5893): Allow simple aliases for operator overloading)
$(LI $(BUGZILLA 6171): rdmd: cache dependency file to improve startup time [patch])
$(LI $(BUGZILLA 8105): Implement "in ref")
$(LI $(BUGZILLA 8128): unittest blocks should be allowed in interfaces)
$(LI $(BUGZILLA 9389): ignore -Hd if -Hf is present)
$(LI $(BUGZILLA 9463): make @safe "non-escapable")
)
)
$(BUGSTITLE Phobos regressions,
$(P
$(LI $(BUGZILLA 9355): [security] SSL certificate signature verification disabled in std.net.curl)
$(LI $(BUGZILLA 9444): Regression $(LPAREN)2.059$(RPAREN): shell doesn't throw on error.)
$(LI $(BUGZILLA 9457): isSorted$(LPAREN)string$(RPAREN) doesn't work)
$(LI $(BUGZILLA 9523): std.conv.to will no longer convert enums to themselves)
)
)
$(BUGSTITLE Phobos bugs,
$(P
$(LI $(BUGZILLA 5065): writefln$(LPAREN)"%f" of a Tuple prints a result)
$(LI $(BUGZILLA 5265): std.array.back does not work correctly for wchar-based arrays)
$(LI $(BUGZILLA 5726): boyerMooreFinder hangs when finding)
$(LI $(BUGZILLA 5763): traits.d BaseClassesTuple function incorrectly handles Object class argument)
$(LI $(BUGZILLA 5773): sort$(LPAREN)$(RPAREN) and topN$(LPAREN)$(RPAREN) fail on sliced/resized array of tuples)
$(LI $(BUGZILLA 6066): std.container: BinaryHeap interface is broken.)
$(LI $(BUGZILLA 6436): Refcounted initialization bug)
$(LI $(BUGZILLA 6635): std.conv.emplace: enforcement is too weak)
$(LI $(BUGZILLA 6668): Wrong "to" conversion stack trace)
$(LI $(BUGZILLA 7142): Wrong formatted write of boolean values)
$(LI $(BUGZILLA 7659): std.stdio.File.close$(LPAREN)$(RPAREN) erases file.name)
$(LI $(BUGZILLA 7819): std.file.setTimes throws error on folders)
$(LI $(BUGZILLA 8078): receiveOnly should tell which type it expected and got on mismatch)
$(LI $(BUGZILLA 8314): randomSample primes with constant)
$(LI $(BUGZILLA 8326): std.string.format results in run-time exception)
$(LI $(BUGZILLA 8367): std.range.chain's template constraint is inadequate)
$(LI $(BUGZILLA 8368): std.algorithm.sort's template constraint is inadequate)
$(LI $(BUGZILLA 8567): isDynamicArrray!S == true for S with alias this to array)
$(LI $(BUGZILLA 8689): Variant opArithmetic does not attempt float conversion)
$(LI $(BUGZILLA 8694): std.zlib.$(LPAREN)Un$(RPAREN)Compress can cause an _onInvalidMemoryOperationError)
$(LI $(BUGZILLA 8837): BigInt needs better operator template constraints)
$(LI $(BUGZILLA 8890): std.algorithm.commonPrefix does not handle unicode correctly)
$(LI $(BUGZILLA 8920): iota should work with all integral types)
$(LI $(BUGZILLA 9005): std.concurrency.spawn should allow `void delegate$(LPAREN)Args$(RPAREN) shared` for new Tid)
$(LI $(BUGZILLA 9163): std.parallelism broken with extensive optimizations $(LPAREN)gdc$(RPAREN))
$(LI $(BUGZILLA 9211): regex lookahead, $(LPAREN)?=$(LPAREN)\d\d\d$(RPAREN)+\b$(RPAREN) failed)
$(LI $(BUGZILLA 9288): Parameter$(LPAREN)Identifier|DefaultValue$(RPAREN)Tuple report pointless errors)
$(LI $(BUGZILLA 9299): std.algorithm.minPos of const$(LPAREN)int$(RPAREN)[])
$(LI $(BUGZILLA 9317): ParameterStorageClassTuple reports errors for inout function)
$(LI $(BUGZILLA 9336): Writeln is unable to print address of shared variable)
)
)
$(BUGSTITLE Phobos enhancements,
$(P
$(LI $(BUGZILLA 4287): opOpAssign!$(LPAREN)"~="$(RPAREN) for std.array.Appender)
$(LI $(BUGZILLA 4813): trait for getting at access modifiers)
$(LI $(BUGZILLA 5666): std.array.replace compile error $(LPAREN)string and immutable string$(RPAREN))
$(LI $(BUGZILLA 6614): std.traits should have an isFinal template)
$(LI $(BUGZILLA 7896): Sequence slicing)
$(LI $(BUGZILLA 8143): Safe std.conv.to enum conversion)
$(LI $(BUGZILLA 9337): There's no Duration.max)
$(LI $(BUGZILLA 9339): std.random.uniform!Enum should return random enum member)
)
)
$(BUGSTITLE Druntime bugs,
$(P
$(LI $(BUGZILLA 4793): Runtime.loadLibrary cannot load dll using MBS paths.)
$(LI $(BUGZILLA 5375): Detection of cyclic module imports provides error findings on console, instead of exception msg)
$(LI $(BUGZILLA 8132): LPTSTR always aliases to LPSTR)
$(LI $(BUGZILLA 9373): Add deprecation message to all empty deprecation statements)
)
)
$(BUGSTITLE Website regressions,
$(P
$(LI $(BUGZILLA 9467): Operator Overloading anchors are broken)
$(LI $(BUGZILLA 9492): [2.052 beta] Stylesheet not found for off-line HTML docs)
)
)
$(BUGSTITLE Website bugs,
$(P
$(LI $(BUGZILLA 5513): Erroneous example in std.algorithm)
$(LI $(BUGZILLA 7304): Online docs incorrect with regards to covariant arrays)
$(LI $(BUGZILLA 7345): interfaceToC.html missing on left-hand side)
$(LI $(BUGZILLA 8302): Documentation of dirEntries in std.file is incomplete)
$(LI $(BUGZILLA 8574): [std.format] The flag ' ' works for floating numbers, not only for integers)
$(LI $(BUGZILLA 8619): Tuples article uses writefln instead of writeln)
$(LI $(BUGZILLA 9321): Dead link to HTML5 standard in language specification)
$(LI $(BUGZILLA 9394): ABI for static arrays is outdated)
$(LI $(BUGZILLA 9446): ".keys" missing from properties table at http://dlang.org/hash-map.html)
$(LI $(BUGZILLA 9503): [grammar] template declaration/instance must take one or more arguments?)
)
)
$(BUGSTITLE Website enhancements,
$(P
$(LI $(BUGZILLA 9302): Document extern properly)
)
)
)
<div id=version>
$(UL
$(NEW 062)
$(NEW 061)
$(NEW 060)
$(NEW 059)
$(NEW 058)
$(NEW 057)
$(NEW 056)
$(NEW 055)
$(NEW 054)
$(NEW 053)
$(NEW 052)
$(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))
$(COMMENT $(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 061, Jan 1, 2013, =================================================,
$(WHATSNEW
$(LI DMD now shows deprecated features as warnings by default (a
message is displayed but compilation is not halted anymore).
There are also 2 new compiler flags: -de, to get the old default
behaviour (using deprecated features is an error) and -dw, to
explicitly enable the new default behaviour (just warn).
This makes it possible to add -de in the configuration file to
get the old default and still be able to override that default
by using -dw when compiling.
The -d flag stays the same (silently ignore deprecated features).
)
$(LI Complete list of $(WHATSNEW2 2012-08-02, 2012-12-31))
)
$(BUGSFIXED
$(LI $(DMDBUGSFIXED2 2012-08-02, 2013-01-01))
$(LI $(DRUNTIMEBUGSFIXED2 2012-08-02, 2012-12-31))
$(LI $(PHOBOSBUGSFIXED2 2012-08-02, 2012-12-31))
)
$(COMMENT
$(WHATSNEW
$(LI $(BUGZILLA 1353): Can't use typeof() in base class list.)
$(LI $(BUGZILLA 1427): Generated .di files look ugly and are hard to read)
$(LI $(BUGZILLA 8108): Forward declaration and implementation allowed in same file)
$(LI $(BUGZILLA 8794): DDoc should provide qualified symbol names suitable for anchors)
$(LI $(BUGZILLA 9219): Allow matching { } in asm statements.)
$(LI $(BUGZILLA 9221): Added -di flag to make use of deprecated symbols a warning)
$(LI $(BUGZILLA 9222): Add User Defined Attributes)
$(LI $(BUGZILLA 9223): Add -de and -dw switches)
$(LI $(BUGZILLA 9224): Add Win64 code generation support for use with Visual C)
$(LI $(BUGZILLA 9225): Add sections [Environment32] and [Environment64] to sc.ini/dmd.conf)
$(LI $(BUGZILLA 9226): More simd instructions allowed as intrinsics.)
$(LI $(BUGZILLA 9227): __traits(identifier,...) to pick out identifier from parameter list tuple)
$(LI $(BUGZILLA 9228): Add getProtection to __traits())
)
$(RUNTIMEBUGSFIXED
$(LI $(BUGZILLA 391): .sort and .reverse break utf8 encoding)
$(LI $(BUGZILLA 8936): Throwing results in searching the whole directory tree rooted in current directory)
)
$(LIBBUGSFIXED
$(LI $(BUGZILLA 9060): std.range.chain and std.range.zip cannot get frame pointer)
)
$(DMDBUGSFIXED
$(LI $(BUGZILLA 2273): Whitespace is not inserted after commas)
$(LI $(BUGZILLA 2775): "private" ignored for templates)
$(LI $(BUGZILLA 2830): private attribute doesn't work for structs/unions/classes)
$(LI $(BUGZILLA 4082): nothrow main() can throw)
$(LI $(BUGZILLA 5448): Array of AAs literal doesn't work)
$(LI $(BUGZILLA 5587): Use __LINE__ to pick number in unittest block names)
$(LI $(BUGZILLA 5679): Type aliasing "this" from an access function defined in base class confuses the compiler about the type of objects)
$(LI $(BUGZILLA 5832): Template alias parameters are never successfully pattern matched)
$(LI $(BUGZILLA 5996): ICE(expression.c) CTFE of erroneous auto return function)
$(LI $(BUGZILLA 6373): More descriptive 'hidden by X is deprecated' error)
$(LI $(BUGZILLA 6395): ICE(glue.c) Multiple-at-a-time bug breaking e.g. DustMite)
$(LI $(BUGZILLA 6937): new with struct doesn't allow field assignment)
$(LI $(BUGZILLA 6969): Forward reference on template class triangle)
$(LI $(BUGZILLA 7003): no tuple expansion for c++ mangling)
$(LI $(BUGZILLA 7017): Pure inference makes inconsistent result)
$(LI $(BUGZILLA 7192): improve error message for "object.d cannot be read")
$(LI $(BUGZILLA 7220): Bad initialization when using mixin to generate a static field in a -lib'rary)
$(LI $(BUGZILLA 7810): [CTFE] Typesafe variadic function with array of structs)
$(LI $(BUGZILLA 7876): [CTFE] assertion failure on invalid stack reference)
$(LI $(BUGZILLA 7940): CTFE wrong-code for opAssign and std.array.Appender)
$(LI $(BUGZILLA 7998): static assert message string printing problem)
$(LI $(BUGZILLA 8178): Wrong line number in trying to modify enum string)
$(LI $(BUGZILLA 8257): __traits(compiles) gives compile error)
$(LI $(BUGZILLA 8271): [Ddoc] non-ascii character string macro names cannot be replaced)
$(LI $(BUGZILLA 8339): is(typeof(...)) is reporting true when it's false due to nested function error)
$(LI $(BUGZILLA 8376): 64 bit codegen bug involving dynamically indexed static array and continue statement)
$(LI $(BUGZILLA 8377): Unexpected OPTLINK Termination at EIP=004106BE)
$(LI $(BUGZILLA 8340): *= operator breaks long array in x64)
$(LI $(BUGZILLA 8348): ICE(glue.c): 'semanticRun == PASSsemantic3done' on line 547 in file 'glue.c')
$(LI $(BUGZILLA 8422): [CTFE] TypeTuple of tuples can't be read at compile time)
$(LI $(BUGZILLA 8408): Purity calculation should be improved)
$(LI $(BUGZILLA 8484): [CTFE] Assertion failure: 'thisval && thisval->op == TOKclassreference' on line 4896 in file 'interpret.c'.)
$(LI $(BUGZILLA 8497): Regression 2.060: Bad code gen involving ubyte, ternary operators, and shifts)
$(LI $(BUGZILLA 8519): winsamp.d doesn't compile with 2.060)
$(LI $(BUGZILLA 8556): Using take results in a corrupted call to opSlice)
$(LI $(BUGZILLA 8601): CTFE Assertion failure (interpret.c) on dstring[].toUpper)
$(LI $(BUGZILLA 8623): Multiple function match needs to print file+line numbers)
$(LI $(BUGZILLA 8624): Regression: CTFE: long comparisons completely broken)
$(LI $(BUGZILLA 8630): Assertion failure: 'fd && fd->inferRetType' on line 81 in file 'mangle.c')
$(LI $(BUGZILLA 8644): CTFE doesn't support string >,< on array literals)
$(LI $(BUGZILLA 8673): enum z = [0][(()=>$-1)()]; crashes the compiler)
$(LI $(BUGZILLA 8675): Nothrow can't throw Errors)
$(LI $(BUGZILLA 8714): Missing error message with circular use of CTFE)
$(LI $(BUGZILLA 8770): Wrong error line number with immutable field)
$(LI $(BUGZILLA 8774): 2.059 worked 2.060 does not: nested delegate memory corruption)
$(LI $(BUGZILLA 8788): The super constructor call can be prevented by mentioning "return".)
$(LI $(BUGZILLA 8796): Optimizer bug on 64bit: *p++=1 where p is a parameter)
$(LI $(BUGZILLA 8801): assigning to __ctfe crashes the compiler)
$(LI $(BUGZILLA 8818): CTFE fails to compare strings correctly)
$(LI $(BUGZILLA 8830): [CTFE] Incorrect slicing with pointer from sliced array)
$(LI $(BUGZILLA 8836): function called with argument types ((void function())) matches both f(void function() fn) and f(void delegate() dg))
$(LI $(BUGZILLA 8840): calculating minimum of longs with following comparison compiles to wrong code when enabling the optimizer)
$(LI $(BUGZILLA 8857): [CTFE] does not evaluate to a boolean, only with -inline)
$(LI $(BUGZILLA 8870): Incorrect values passing struct by value)
$(LI $(BUGZILLA 8889): [2.061 beta][64-bit] Assertion Failure argtypes.c)
$(LI $(BUGZILLA 8894): 2.059: Lookup error message has become uninformative)
$(LI $(BUGZILLA 8923): Destructors of struct members get called at the wrong point)
$(LI $(BUGZILLA 8928): Poor error message for derived class without constructor)
$(LI $(BUGZILLA 8939): ICE(glue.c) on passing by ref statically initialized const/immutable variable)
$(LI $(BUGZILLA 8940): Able to modify const/immutable with passing to a templated function by `ref`)
$(LI $(BUGZILLA 8942): `alias <qualifier> <type>` ignores <qualifier> in foreach over tuple)
$(LI $(BUGZILLA 8943): Cannot get parent of an overload)
$(LI $(BUGZILLA 8966): ICE(cgcod.c) when passing cfloat argument with indirection)
$(LI $(BUGZILLA 8971): __traits(getOverloads) fails in a member function)
$(LI $(BUGZILLA 8986): The PVS-Studio analyzer has something for you)
$(LI $(BUGZILLA 8990): Forward reference error on three structs)
$(LI $(BUGZILLA 8937): import declaration statement without scope after `if` imports to a parent scope)
$(LI $(BUGZILLA 8987): Compiling using -O -release options yield Internal error: backend\cgcod.c 1663)
$(LI $(BUGZILLA 9000): ICE on assigning struct's `init` to enum)
$(LI $(BUGZILLA 9003): Nested structs smetimes have null context pointers in static struct)
$(LI $(BUGZILLA 9004): Wrong line number for undefined identifier error)
$(LI $(BUGZILLA 9006): Static struct with nested struct fields sometimes has current context pointers in `init`)
$(LI $(BUGZILLA 9008): Another forward referencing bug)
$(LI $(BUGZILLA 9010): opEquals() const results in not-covered code)
$(LI $(BUGZILLA 9013): Compiler crash with foreach on wrongly defined interval)
$(LI $(BUGZILLA 9025): core.thread.Fiber seems to crash on Win64)
$(LI $(BUGZILLA 9026): Template mixin identifier as template alias parameter doesn't work)
$(LI $(BUGZILLA 9035): Nested struct `init` is lvalue and can be modified)
$(LI $(BUGZILLA 9036): postblit is called for nested structs when assigning `init`)
$(LI $(BUGZILLA 9046): typeof(T.init) should have the type T)
$(LI $(BUGZILLA 9057): Regression(Beta): Segfault or 'Non-constant expression' error with local import)
$(LI $(BUGZILLA 9058): Problem with std.traits.EnumMembers conversion to array)
$(LI $(BUGZILLA 9069): struct literals are treated as lvalues)
$(LI $(BUGZILLA 9070): nothrow of constructer/destructor isn't correct)
$(LI $(BUGZILLA 9076): Aliased template function and property resolution doesn't work)
$(LI $(BUGZILLA 9077): Struct copy constructor ignored when opAssign with a different type is present)
$(LI $(BUGZILLA 9090): auto ref doesn't work with arrays)
$(LI $(BUGZILLA 9093): Overloads in extern(C++) interfaces throw up COMDAT errors)
$(LI $(BUGZILLA 9100): Weird behavior on template instance argument)
$(LI $(BUGZILLA 9124): Object variable of variadic template struct needs explicit "this" in certain situations)
$(LI $(BUGZILLA 9140): ref foreach of immutables in postcondition)
$(LI $(BUGZILLA 9143): template structs with two parameters confuse DMD on multiple instantiations)
$(LI $(BUGZILLA 9153): Type inference for array of delegates should not break based on order)
$(LI $(BUGZILLA 9154): Incorrectly generated assignment operator)
$(LI $(BUGZILLA 9162): [tdpl] Non-static structs should have access to outer lexical scope)
$(LI $(BUGZILLA 9170): CTFE: Allow reinterpret casts float <-> int)
$(LI $(BUGZILLA 9171): error optimization of expression)
$(LI $(BUGZILLA 9210): [2.061 beta] Import cycle causes unpredictable compile errors)
$(LI $(BUGZILLA 9213): [2.061 beta] Member access without this and __traits(compiles, ...))
)
)
)
$(VERSION 060, Aug 2, 2012, =================================================,
$(WHATSNEW
$(LI std.string: $(RED The current implementations of std.string.format and string.sformat are
scheduled to be replaced in November 2012 with improved implementations
which conform to writef. In some, rare cases, this will break code.
Please see the documentation for std.string.format and std.string.sformat for details.))
$(LI std.bitmanip: Added peek, read, write, and append for converting
ranges of bytes to and from integral types.)
$(LI std.container: Added DList, which is an implementation of a doubly-linked list.)
$(LI Added std.file.tempDir which returns the path to a directory
where a program can put temporary files.)
$(LI std.process: Added escapeShellCommand, escapeShellFileName, and
escapeWindowsArgument. Documented browse function.)
$(LI std.range: Added RefRange, which effectively makes it possible to
pass a range by reference.)
$(LI std.traits: Added KeyType, ValueType, isScalarType, isBasicType, and
SetFunctionAttributes templates.)
$(LI std.utf: Added overload of codeLength which operates on a string.)
$(LI std.traits: areAllSafe has been scheduled for deprecation. Please use
allSatisfy(isSafe, ...) instead.)
$(LI clear has been renamed to destroy, and clear (as an alias to destroy) has
been scheduled for deprpecation.)
$(LI Capitalized std.traits.pointerTarget to PointerTarget. Old one is
scheduled for deprecation.)
$(LI std.algorithm.indexOf - which was scheduled for deprecation - has been deprecated (it was
easily confused with std.string.indexOf). Please use countUntil instead.)
$(LI std.cpuid - which was scheduled for deprecation - has been deprecated.
Please use core.cpuid instead.)
$(LI std.conv.ConvError and ConvOverflowException - which were scheduled for deprecation - have
been deprecated. Please catch ConvException and ConvOverflowException instead.)
$(LI The overloads of std.conv.to which were scheduled for deprecation
because formattedWrite replaced them have now been deprecated.
Please use std.format.formattedWrite instead.)
$(LI The overload of std.exception.enforce which takes the file and line number as template
arguments has been scheduled for deprecation (as it causes unnecessary template bloat).
Please use the overload which takes them as function arguments instead. This will have no
effect on any calls to enforce which do not explicitly pass the file or line number.)
$(LI std.format.FormatError - which was scheduled for deprecation - has been deprecated.
Please catch FormatException instead.)
$(LI std.file.listDir has been deprecated. Please use std.file.dirEntries instead.)
$(LI std.range.replicate - which was scheduled for deprecation - has been deprecated.
Please use repeat instead.)
$(LI std.range.SortedRange.canFind - which was scheduled for deprecation - has been deprecated.
Please use SortedRange.contains instead.)
$(LI std.socket: timeval and linger - which were scheduled for deprecation - have been deprecated.
Please use TimeVal and Linger.)
$(LI std.stdio.isStreamingDevice has been scheduled for deprecation. Please use
isFileHandle instead.)
$(LI The deprecated std.typecons.defineEnum has been removed.)
$(LI UtfException - which was scheduled for deprecation - has been deprecated.
Please use UTFException instead.)
$(LI The deprecated overloads of std.array.insert and std.array.replace
have been removed. Please use insertInPlace and replaceInPlace instead.)
$(LI The deprecated toISOExtendedString and fromISOExtendedString
functions in std.datetime have been removed. Please use
toISOExtString and fromISOExtString instead.)
$(LI The deprecated std.file.getTimesPosix has been removed.
Please use std.file.getTimes instead.)
$(LI The deprecated overloads of isFile, isDir, and isSymLink in
std.file which took uint have been removed. Please use
attrIsFile, attrIsDir, and attrIsSymlink instead.)
$(LI The deprecated std.file.DirEntry.timeStatusChanged has been removed.
Please use std.file.DirEntry.attributes to get at that information
if you need it.)
$(LI The deprecated std.contracts module has been removed. Please use
std.exception instead.)
$(LI The deprecated std.arg, std.bind, and std.loader modules have been
removed.)
$(LI Added TypeInfo.rtInfo property to get library defined runtime info.)
$(LI Added front end support for AVX 256 bit SIMD instructions.)
$(LI Default arguments and parameter identifiers (if any) are added to the tuple generated from
IsExpression's __parameters case.)
$(LI Changed the way the align attribute works, to make it more usable and comprehensible.
Default alignment has not changed.)
$(LI The align attribute now accepts arbitrary powers of two. This affects layout
of static data, too. Such effects are dependent on limitations of the object file format -
currently Win32 programs cannot align on larger than 16 byte boundaries.)
$(LI HTML input file support completely removed.)
$(LI $(BUGZILLA 3150): cast from dynamic array to ulong is allowed)
$(LI $(BUGZILLA 3866): anonymous delegate with default parameters cross-talks to another anonymous delegate)
$(LI $(BUGZILLA 4174): Template interface functions not allowed, making operator overloads difficult)
$(LI $(BUGZILLA 6652): 1. Warn modifying non ref variable if -w is specified.)
$(LI $(BUGZILLA 7243): Compiler should call separate function when allocating a struct on the heap)
$(LI $(BUGZILLA 7923): Please remove 'deprecated' from setAssertHandler())
$(LI $(BUGZILLA 8105): in ref)
$(LI $(BUGZILLA 8127): dmd link library paths not given precedence over gcc defaults)
$(LI $(BUGZILLA 8221): typeof(null) rejected as return type for covariant overrides)
)
$(RUNTIMEBUGSFIXED
$(LI $(BUGZILLA 6909): incorrect definition of the OVERLAPPED struct in core.sys.windows.windows ?)
)
$(LIBBUGSFIXED
$(LI $(BUGZILLA 2328): setTypeInfo in gc.d backwards.)
$(LI $(BUGZILLA 2588): std.signals should not use 'length' stealth keyword in indexing)
$(LI $(BUGZILLA 4405): all function - returns whether predicate is true for all elements in a range)
$(LI $(BUGZILLA 4603): array(iota(1, 0)) error)
$(LI $(BUGZILLA 4605): Wrong print of an int[string] aa)
$(LI $(BUGZILLA 4629): BufferedFile.printf() wants char[] as first argument)
$(LI $(BUGZILLA 4695): std.range.zip is broken)
$(LI $(BUGZILLA 4744): std.conv: string->enum doesn't look for longer match)
$(LI $(BUGZILLA 4822): Problem with std.stdio.File.writef("%c")
$(LI $(BUGZILLA 5011): std.container: SList linearRemove produces wrong results)
$(LI $(BUGZILLA 5089): feqrel does not compile for floats)
$(LI $(BUGZILLA 5260): std.math.feqrel() returns negative number)
$(LI $(BUGZILLA 5346): instantiation of std.conv.toImpl and std.format.formatValue fails for unions)
$(LI $(BUGZILLA 5354): formatValue: range templates introduce 3 bugs related to class & struct cases)
$(LI $(BUGZILLA 5786): std.algorithm.sort does not work with std.container.Array: Range violation)
$(LI $(BUGZILLA 5843): Unable to convert a struct with an alias-this to long/ulong to int, using std.conv.to!int.)
$(LI $(BUGZILLA 5970): fix BigInt.toString)
$(LI $(BUGZILLA 6027): bigint to!string conversion and its implications)
$(LI $(BUGZILLA 6175): String corruption when passing static char arrays to std.conv)
$(LI $(BUGZILLA 6191): removechars doesn't accept a const string)
$(LI $(BUGZILLA 6197): std.traits.isImplicitlyConvertible returns some wrong results.)
$(LI $(BUGZILLA 6222): A problem with iota() using size_t)
$(LI $(BUGZILLA 6231): [patch] std.conv.to/std.format.: Structs with toString and isInputRange match multiple templates.)
$(LI $(BUGZILLA 6273): Tuple [] operator in pure function)
$(LI $(BUGZILLA 6379): std.container.SList fails to compile)
$(LI $(BUGZILLA 6437): Refcounted calls dtor before ctor, never calls dtor for globals)
$(LI $(BUGZILLA 6547): Call to std.algorithm.remove causes compile error)
$(LI $(BUGZILLA 6580): scoped classes are aligned incorrectly)
$(LI $(BUGZILLA 6597): to!SomeString should use std.format.formatValue)
$(LI $(BUGZILLA 6642): SysTime should not be hasUnsharedAliasing)
$(LI $(BUGZILLA 6892): Formatted write with specified length of enum member)
$(LI $(BUGZILLA 6926): std.process.system return wrong exit code)
$(LI $(BUGZILLA 7022): File.byLine doesn't release file handle)
$(LI $(BUGZILLA 7138): Can't call array() on dirEntries)
$(LI $(BUGZILLA 7317): writeln cannot handle alias this of array type)
$(LI $(BUGZILLA 7326): write interprets enum with byte backing type as a character)
$(LI $(BUGZILLA 7348): to!string(null) matches more than one template declaration)
$(LI $(BUGZILLA 7356): Implement KeyType, ValueType for hashes in std.traits)
$(LI $(BUGZILLA 7360): Predicate templates in std.traits should consider alias this)
$(LI $(BUGZILLA 7515): The new std.string.translate is slow for ASCII text)
$(LI $(BUGZILLA 7537): `File.tmpfile` requires administrator rights on Windows)
$(LI $(BUGZILLA 7561): std.net.curl broken)
$(LI $(BUGZILLA 7660): toImpl conflict in std.conv)
$(LI $(BUGZILLA 7796): std.typecons.Unique is using writeln without importing std.stdio)
$(LI $(BUGZILLA 7824): isInputRange fails to recognize inout(T)[])
$(LI $(BUGZILLA 7831): Unlisted @@@BUG in File.detach causes FILE* leaks when reopening)
$(LI $(BUGZILLA 7878): A problem with purity and general templated algorithms)
$(LI $(BUGZILLA 7898): [CTFE] std.algorithm:copy fails when used with two arrays)
$(LI $(BUGZILLA 7909): to!(enum)(string) and to!(string)(enum) break when enum is integral)
$(LI $(BUGZILLA 7919): Sample code works on GDC but fails with DMD)
$(LI $(BUGZILLA 7936): std.random.randomSample always returns the same first value when passed a random number generator)
$(LI $(BUGZILLA 7937): Range iota.Result should be const where possible)
$(LI $(BUGZILLA 7944): std.range.iota.popFront() cycles when the range is empty)
$(LI $(BUGZILLA 7948): std.range.zip broken with requireSameLength)
$(LI $(BUGZILLA 7962): std.regex: Captures.length() returns incorrect value)
$(LI $(BUGZILLA 7973): BigInt %= long/ulong gives wrong value)
$(LI $(BUGZILLA 7975): Incorrect quotes escaping in std.format)
$(LI $(BUGZILLA 7982): iota broken when start and end are unsigned and step is negative.)
$(LI $(BUGZILLA 7993): BigInt divide-by-1 error)
$(LI $(BUGZILLA 8003): Phobos uses deprecated std.path sep symbol)
$(LI $(BUGZILLA 8011): BigInt ++ and -- do wrong thing on negative numbers)
$(LI $(BUGZILLA 8015): std.typecons.Tuple does not support struct with alias method this)
$(LI $(BUGZILLA 8022): BigInt division bug (2))
$(LI $(BUGZILLA 8026): Fix or disallow randomShuffle() on fixed-sized arrays)
$(LI $(BUGZILLA 8031): If a class have some signals it's impossible for a derived class to have any signals)
$(LI $(BUGZILLA 8037): hasElaborateDestructor is false for non-zero-length static array of structs with elaborate destructor)
$(LI $(BUGZILLA 8039): `scoped` doesn't call any elaborate destructors for struct fields)
$(LI $(BUGZILLA 8040): writeln(null) too)
$(LI $(BUGZILLA 8055): [Regression 2.059] std.algorithm.move corrupts moved object field)
$(LI $(BUGZILLA 8057): std.algorithm.move cannot use for nested struct)
$(LI $(BUGZILLA 8080): 'alias this' causes toString to be shadowed by aliased object)
$(LI $(BUGZILLA 8112): std.algorithm.fill must accept InputRange)
$(LI $(BUGZILLA 8158): std.algorithm.min fails to compile with user-defined types)
$(LI $(BUGZILLA 8164): BigInt from char[] too)
$(LI $(BUGZILLA 8165): BigInt opAssign return value)
$(LI $(BUGZILLA 8171): [Regression 2.060head] Broken std.algorithm.move for nested struct has no member)
$(LI $(BUGZILLA 8186): Formatting class object has an alias this to int* field is broken.)
$(LI $(BUGZILLA 8187): replaceFirst doesn't work for string[] haystack)
$(LI $(BUGZILLA 8191): cstream.printf is completely unusable on x86_64)
$(LI $(BUGZILLA 8195): Segfault when comparing a VariantN to a non-variant type which it holds)
$(LI $(BUGZILLA 8203): Use of std.regex.match() generates "not enough preallocated memory" error)
$(LI $(BUGZILLA 8214): blocking option for TaskPool.finish())
$(LI $(BUGZILLA 8233): std.array.array fails to compile with ranges of immutable elements which have a length property)
$(LI $(BUGZILLA 8240): std.algorithm.joiner and empty inputRangeObject)
$(LI $(BUGZILLA 8264): [std.conv.to] constructing conversion doesn't work with alias this)
$(LI $(BUGZILLA 8310): writeln of Range of fixed size array)
$(LI $(BUGZILLA 8323): std.string.chompPrefix does not handle differing string types properly)
$(LI $(BUGZILLA 8362): std.traits.isSafe doesn't work with unsafe lamdba functions)
$(LI $(BUGZILLA 8386): writeln stopped working with wstring)
$(LI $(BUGZILLA 8398): enforceEx cannot be used with OutOfMemoryError)
$(LI $(BUGZILLA 8450): std.traits.isSafe doesn't work with unsafe lamdba functions)
))
$(DMDBUGSFIXED
$(LI $(BUGZILLA 1175): nested class inheritance)
$(LI $(BUGZILLA 1780): Type tuple deduction failure for class templates)
$(LI $(BUGZILLA 2472): Delegates are not lvalue.)
$(LI $(BUGZILLA 2962): ICE(glue.c) or bad codegen passing variable as template value parameter)
$(LI $(BUGZILLA 3290): accepts-invalid: non-const by-ref foreach over a const array is accepted)
$(LI $(BUGZILLA 3574): post-condition in void main() is not evaluated if there is no return statement)
$(LI $(BUGZILLA 3608): Allow isExpression and templates to capture template parameters and FQN of template)
$(LI $(BUGZILLA 3703): static array assignment)
$(LI $(BUGZILLA 3895): Appending a double[] to a float[] generates wrong code)
$(LI $(BUGZILLA 4024): Last catch only accepts block statement)
$(LI $(BUGZILLA 4155): return of NaN to temporary fails equality test)
$(LI $(BUGZILLA 4288): Error on passing delegate to C linkage function)
$(LI $(BUGZILLA 4364): ICE(class.c) compiling a struct def named 'Object' followed by a class definition)
$(LI $(BUGZILLA 4510): [tdpl] ref with a wrong type specifier is accepted)
$(LI $(BUGZILLA 4583): PIC code not working: EBX register set incorrectly)
$(LI $(BUGZILLA 4785): auto return of a function with in contract)
$(LI $(BUGZILLA 4884): Using template struct parameters in method definition fails with "parameter _param_0 is already defined")
$(LI $(BUGZILLA 4953): Regression(2.031): templates don't do implicit conversion properly)
$(LI $(BUGZILLA 4967): member default initializers not working in static struct initializers)
$(LI $(BUGZILLA 5039): Cannot use invariant() with auto methods)
$(LI $(BUGZILLA 5082): delegate alias parameters are silently accepted inside structs. limits most of std.algorithm, etc.)
$(LI $(BUGZILLA 5435): Static foreach over tuple ignores type annotation)
$(LI $(BUGZILLA 5437): Problems with length of std.traits.EnumMembers)
$(LI $(BUGZILLA 5473): Members of const-qualified classes are not const themselves.)
$(LI $(BUGZILLA 5737): postblit not called for locals initialized from ref functions)
$(LI $(BUGZILLA 5809): [64 bit] wrong code for *p==0, when widening conversion occurs)
$(LI $(BUGZILLA 5896): const overload matching is succumb to template parameter one)
$(LI $(BUGZILLA 6189): [64bit] optimizer: register content destroyed in function prolog)
$(LI $(BUGZILLA 6199): [GSoC] Postblit not called when returning a reference to a by-value function)
$(LI $(BUGZILLA 6470): postblits not called on arrays of structs)
$(LI $(BUGZILLA 6475): template identifier is not a member of alias)
$(LI $(BUGZILLA 6591): di header generation loses selective import symbols)
$(LI $(BUGZILLA 6612): Associative arrays with associative array keys literals)
$(LI $(BUGZILLA 6636): Destructors of static array elements are not called on function parameter)
$(LI $(BUGZILLA 6637): Postblits of static array elements are not called on function argument)
$(LI $(BUGZILLA 6758): std.c.stdarg problems with 8 or more integer arguments on x86_64)
$(LI $(BUGZILLA 6891): template with uint value parameter causes several issues)
$(LI $(BUGZILLA 7396): Indicate default alignment with 0.)
$(LI $(BUGZILLA 7385): Bad error message missing line number on invalid array op that isn't special cased)
$(LI $(BUGZILLA 7413): Vector literals don't work)
$(LI $(BUGZILLA 7414): Vector literal assignment doesn't work in global scope)
$(LI $(BUGZILLA 7418): Overloading doesn't work with aliases declared inside templates)
$(LI $(BUGZILLA 7453): Can't return value from within opApply)
$(LI $(BUGZILLA 7478): stack overflow compiling with -deps -release -inline -noboundscheck)
$(LI $(BUGZILLA 7494): Selective import does not work inside a function)
$(LI $(BUGZILLA 7506): Postblit does not called properly with inlining)
$(LI $(BUGZILLA 7530): Postblit not called structs returned from an array index expr.)
$(LI $(BUGZILLA 7560): Base class overloaded methods created by mixins can't be overriden)
$(LI $(BUGZILLA 7581): Compiler uses wrong instructions to move complex value from ST to xmm registers)
$(LI $(BUGZILLA 7585): functions in templates inferred as delegate)
$(LI $(BUGZILLA 7750): while(true) loop with try/catch block causes segfault)
$(LI $(BUGZILLA 7770): __dollar cannot be read at compile time)
$(LI $(BUGZILLA 7784): ICE with self-referencing literals)
$(LI $(BUGZILLA 7793): static assert( void_function() ) gives misleading error message)
$(LI $(BUGZILLA 7807): Ambiguous virtual function error on const overloading with covariant return types)
$(LI $(BUGZILLA 7851): Internal error: e2ir.c 688)
$(LI $(BUGZILLA 7880): [CTFE] cast from void array allowed with different results than at runtime)
$(LI $(BUGZILLA 7893): Spec completely wrong for D variadic arguments on 64 bits)
$(LI $(BUGZILLA 7894): [CTFE] - goto within ForStatement restarts loop)
$(LI $(BUGZILLA 7906): [ICE] enum declaration with invalid array literal crashes dmd)
$(LI $(BUGZILLA 7907): [ICE] invalid expression on template argument crashes dmd)
$(LI $(BUGZILLA 7911): Nested static if failing to execute)
$(LI $(BUGZILLA 7922): alias this causes weird formatting issues for strings)
$(LI $(BUGZILLA 7929): Broken semantic of StructInitializer with const)
$(LI $(BUGZILLA 7931): Error message with _error_ with var[1,2])
$(LI $(BUGZILLA 7932): Corrupted argument inside out contract in x86_64)
$(LI $(BUGZILLA 7933): Illegal interaction of templates)
$(LI $(BUGZILLA 7941): Regression(2.059): Type check is ignored when manifest constant initializer is function literal)
$(LI $(BUGZILLA 7943): UFCS does not work with alias this)
$(LI $(BUGZILLA 7945): alias this doesn't work on function ref parameter)
$(LI $(BUGZILLA 7949): [ICE] (cgcod.c) with SIMD array)
$(LI $(BUGZILLA 7950): Type tuples are incorrectly flattened in base type list of interface)
$(LI $(BUGZILLA 7951): DMD: Internal error: backend/cgxmm.c 567)
$(LI $(BUGZILLA 7965): Invalid outer function scope pointer in some cases)
$(LI $(BUGZILLA 7974): forward reference of mixin declaration)
$(LI $(BUGZILLA 7983): ICE with getMember on a unittest member)
$(LI $(BUGZILLA 7987): [CTFE] cannot compare arrays of slices)
$(LI $(BUGZILLA 8002): Excess initial errors when passing template args to non-templated struct)
$(LI $(BUGZILLA 8004): Direct call of function literal should consider default arguments)
$(LI $(BUGZILLA 8005): Lambda with parameter type inference should consider default args)
$(LI $(BUGZILLA 8016): Methods defined in external object files when template alias parameter is involved)
$(LI $(BUGZILLA 8032): `mixin template` before virtual method with same method causes an error)
$(LI $(BUGZILLA 8036): Zero-length static array of structs with elaborate destructor as struct or class field is rejected)
$(LI $(BUGZILLA 8038): #line which is in a double template instantiation doesn't work)
$(LI $(BUGZILLA 8060): xmmstore cannot allocate store for optimized operation that uses int and floats)
$(LI $(BUGZILLA 8064): return reference semantics not obeyed on delegates?)
$(LI $(BUGZILLA 8066): ICE on missing return statement if invariant is present)
$(LI $(BUGZILLA 8069): incorrect ambiguous virtual function error)
$(LI $(BUGZILLA 8073): Regression (git) Error: undefined identifier __result)
$(LI $(BUGZILLA 8089): Importing package as module causes segfault)
$(LI $(BUGZILLA 8091): Optimizer generates wrong code when reducing comparisons)
$(LI $(BUGZILLA 8094): Static if matching using alias parameter in template fails)
$(LI $(BUGZILLA 8095): [64 bit] Wrong code generation with spilled register, -m64 -O)
$(LI $(BUGZILLA 8098): Inner class method can modify outer's members regardless of constancy)
$(LI $(BUGZILLA 8099): Inner class's outer pointer matches constancy of inner, but can be set to object of arbitrary constancy)
$(LI $(BUGZILLA 8182): with a lazy struct parameter, the struct's destructor is called on the generated delegate)
$(LI $(BUGZILLA 8180): UFCS writeln doesn't work with Tuples)
$(LI $(BUGZILLA 8113): alias this doesn't forward opCall)
$(LI $(BUGZILLA 8123): alias declaration lookup is broken)
$(LI $(BUGZILLA 8125): TypeInstance dedunction problem)
$(LI $(BUGZILLA 8129): Cannot deduce template function when using partially specified type in function parameter)
$(LI $(BUGZILLA 8147): Blah!R.init now requires parens - (Blah!R).init)
$(LI $(BUGZILLA 8168): dmd crashes when asm statement with wrong opcode)
$(LI $(BUGZILLA 8169): Method loses its compile-time evaluability when used through alias this)
$(LI $(BUGZILLA 8185): Pure functions and pointers)
$(LI $(BUGZILLA 8188): need this to access member when mixining in a function)
$(LI $(BUGZILLA 8190): Externally defined struct error message)
$(LI $(BUGZILLA 8194): "Function cannot access frame" even though all I requested was the type)
$(LI $(BUGZILLA 8198): Nested lambda inference doesn't work)
$(LI $(BUGZILLA 8199): stack is not aligned in finally block)
$(LI $(BUGZILLA 8212): shared value data structures should implicitly cast to mutable)
$(LI $(BUGZILLA 8216): CTFE should allow 'pointer is inside range' comparisons)
$(LI $(BUGZILLA 8226): Global lambda assign to const/immutable)
$(LI $(BUGZILLA 8237): Error message with _error_ when using failed type inference in template parameter)
$(LI $(BUGZILLA 8241): cannot use template function literal as default alias argument)
$(LI $(BUGZILLA 8242): cannot use template function literals at module scope)
$(LI $(BUGZILLA 8249): Spurious error message with templates and alias this)
$(LI $(BUGZILLA 8252): no UFCS for 0 literal)
$(LI $(BUGZILLA 8276): [CTFE] ICE when reading variable from nested function)
$(LI $(BUGZILLA 8283): ICE(cod1.c): returning struct with constructor as member of another struct)
$(LI $(BUGZILLA 8315): Invalid nested-ref check in template constraint)
$(LI $(BUGZILLA 8335): `ref` is ignored for static array of stucts with postblit argument)
$(LI $(BUGZILLA 8390): Refused array operation mutable[] += const[])
$(LI $(BUGZILLA 8397): parameter types are not checked when assigning a function literal)
$(LI $(BUGZILLA 8423): Wrong code for bool parameter in 5th integer register.)
$(LI $(BUGZILLA 8429): [2.060 beta] 'version' rejected inside 'static if's)
$(LI $(BUGZILLA 8434): [Regression 2.058] cannot implicitly convert expression (vs1.opCast()) of type const(Vector2D) to object.Object)
$(LI $(BUGZILLA 8437): [2.060 beta] static struct no size yet for forward reference)
$(LI $(BUGZILLA 8442): [2.060 beta] Empty array enum not treated as immutable)
$(LI $(BUGZILLA 8453): Associative array keys refused as property by sort)
$(LI $(BUGZILLA 8454): [ICE] (backend\cg87.c 3497) with cdouble and sqrt)
)
)
$(VERSION 059, Apr 12, 2012, =================================================,
$(WHATSNEW
$(LI Add predefined Ddoc macro SRCFILENAME)
$(LI Changed lexer to support # as a token, preserving #line's original behavior)
$(LI added AES, PCLMULQDQ, RDRAND, AVX, VAES, VPCLMULQDQ, FMA, FP16C to core.cpuid)
$(LI $(BUGZILLA 435): Constructors should be templatized)
$(LI $(BUGZILLA 2367): Overloading error with string literals)
$(LI $(BUGZILLA 3382): [tdpl] Implement uniform function call syntax)
$(LI $(BUGZILLA 4536): Typetuples (T...) should have an .init member)
$(LI $(BUGZILLA 5525): Eponymous templates should allow for overloaded eponymous members)
$(LI $(BUGZILLA 7105): relax inout rules)
$(LI $(BUGZILLA 7833): Changelog should clearly mention struct literal/opCmp/opEquals/toHash changes)
$(LI Strive to make toHash, toString, opEquals and opCmp functions pure, nothrow,
const and @safe. Soon, this will become a requirement.)
$(LI The deprecated std.date, std.dateparse, and std.gregorian modules
have been removed. Please use std.datetime instead.)
$(LI Several deprecated functions in std.file have been removed.)
$(LI The old functions in std.path which were scheduled for deprecation
have now been deprecated. Please use the new ones which were
introduced in 2.055. However, note that curdir and pardir do not
have replacements, because they're "." and ".." respectively on all
OSes so variables for them were seen as unnecessary. Also, one major
change to note about the new std.path functions is that when operating
on extensions, they expect "." to be part of the extension whereas the
old ones did not (e.g. "file.txt".extension == ".txt" whereas
"file.txt".getExt() == "txt").)
$(LI The version of std.exception.enforceEx which was scheduled for
deprecation has been deprecated. Please use the version which
takes exceptions which can be constructed with new E(msg, file, line)
(rather than just new E(msg) as the old version did). That way,
exceptions constructed with enforceEx will give the file and line
number where enforceEx was called.)
$(LI Get rid of Win9x support.)
$(LI std.typecons: Added Proxy mixin template.)
$(LI std.format: Added documentation about compound format specifier.)
)
$(RUNTIMEBUGSFIXED
)
$(LIBBUGSFIXED
$(LI $(BUGZILLA 4604): A stack overflow with writeln)
$(LI $(BUGZILLA 5523): std.regex handles "\s" and "\W" (etc.) inside square brackets improperly)
$(LI $(BUGZILLA 5652): Add \p and \P unicode properties to std.regex)
$(LI $(BUGZILLA 5674): AssertError in std.regex)
$(LI $(BUGZILLA 5964): std.stdio.readln can throw a UnicodeException)
$(LI $(BUGZILLA 6217): [GSOC] result of std.algorithm.map is not movable)
$(LI $(BUGZILLA 6403): Upgrade std.regex to Unicode UTS #18 Level 1 support)
$(LI $(BUGZILLA 6892): Formatted write with specified length of enum member)
$(LI $(BUGZILLA 7111): New regex engine cannot match beginning of empty string)
$(LI $(BUGZILLA 7138): Can't call array() on dirEntries)
$(LI $(BUGZILLA 7264): Can't iterate result from 4-arg dirEntries as string)
$(LI $(BUGZILLA 7299): std.uni missing doc comments)
$(LI $(BUGZILLA 7300): std.regex.ShiftOr!dchar.search is broken)
$(LI $(BUGZILLA 7374): stdin.byLine() throws AssertError on empty input)
$(LI $(BUGZILLA 7460): std.windows.registry reports a false exception message)
$(LI $(BUGZILLA 7476): Write(ln) functions no longer accept retro range)
$(LI $(BUGZILLA 7628): std.format formatValue incorrect overload)
$(LI $(BUGZILLA 7674): regex replace requires escaped format)
$(LI $(BUGZILLA 7679): std.regex.split and splitter don't work w/ ctRegex)
$(LI $(BUGZILLA 7718): regex and ctRegex produce different results)
)
$(DMDBUGSFIXED
$(LI rdmd: --force now works with --eval)
$(LI rdmd: update --eval's import list)
$(LI $(BUGZILLA 176): [module] message "module and package have the same name")
$(LI $(BUGZILLA 783): Cannot use an array w/ const or variable index as new[] size argument.)
$(LI $(BUGZILLA 977): Expressions inside a struct or array initializer get wrong line number)
$(LI $(BUGZILLA 3279): Confusing error message when comparing types)
$(LI $(BUGZILLA 3354): invalid number of args accepted for 1/2 arg floating point instructions)
$(LI $(BUGZILLA 3509): Cannot forward reference a template mixin's members in a compile-time context)
$(LI $(BUGZILLA 3510): Cannot forward reference a templated type from within a template mixin)
$(LI $(BUGZILLA 3559): DMD 1.048+ fails to take function pointer from overloaded member functions)
$(LI $(BUGZILLA 3630): bad error location in "has no effect in expression" error)
$(LI $(BUGZILLA 3682): Regression(2.038) is expression fails to match types)
$(LI $(BUGZILLA 3812): Missing line number for implicit cast of variadic function to array)
$(LI $(BUGZILLA 3822): Invalid optimization of alloca called with constant size)
$(LI $(BUGZILLA 3927): array.length++; is an error, but ++array.length compiles)
$(LI $(BUGZILLA 4241): duplicate union initialization error doesn't give a file location)
$(LI $(BUGZILLA 4269): Regression(2.031): invalid type accepted if evaluated while errors are gagged)
$(LI $(BUGZILLA 4507): use spellchecker when override function doesn't override anything)
$(LI $(BUGZILLA 4820): Regression(1.058, 2.044) in DStress caused by changeset 452)
$(LI $(BUGZILLA 4854): Regression(2.047, Mac 10.5 only) writefln Segmentation fault if no globals)
$(LI $(BUGZILLA 4993): Temporary values and opIndexAssign)
$(LI $(BUGZILLA 5181): Excess cast on in-place operation op= involving conversion)
$(LI $(BUGZILLA 5412): import wtf2)
$(LI $(BUGZILLA 5554): [qtd] Covariance detection failure)
$(LI $(BUGZILLA 5590): Regression(2.036) ICE(e2ir.c): when using .values on enum which is associative array)
$(LI $(BUGZILLA 5733): Calling opDispatch As Template Results in Compiler Infinite Loop)
$(LI $(BUGZILLA 5879): Not all frontend errors use stderr)
$(LI $(BUGZILLA 5889): Struct literal/construction should be rvalue (it binds to ref parameters))
$(LI $(BUGZILLA 6391): Line-less error when passing the '.im' of floating pointer value by reference)
$(LI $(BUGZILLA 6438): [CTFE] wrong error "value used before set" when slicing =void array)
$(LI $(BUGZILLA 6611): better error message for array post increment/decrement)
$(LI $(BUGZILLA 6681): struct constructor call is converted to struct literal that breaks union initialization)
$(LI $(BUGZILLA 6685): Allow using "with" with rvalues)
$(LI $(BUGZILLA 6699): More cases of __error in error messages)
$(LI $(BUGZILLA 6738): Can't call templatized property function from within a struct/class method)
$(LI $(BUGZILLA 6785): Wrong error message from pragma(msg) of failed instantiation)
$(LI $(BUGZILLA 6982): immutability isn't respected on associative array assignment)
$(LI $(BUGZILLA 7038): Type mismatch with const struct)
$(LI $(BUGZILLA 7110): opSlice() & opIndex functions works unstable as template arguments)
$(LI $(BUGZILLA 7288): ICE(toir.c): with lambda return + auto)
$(LI $(BUGZILLA 7353): NRVO not properly working with inferred return type)
$(LI $(BUGZILLA 7380): Crash trying to use address of variable in struct constructor at module level)
$(LI $(BUGZILLA 7399): Broken import statement in trySemantic() causes silent compiler error)
$(LI $(BUGZILLA 7406): tuple foreach doesn't work with mixed tuples)
$(LI $(BUGZILLA 7411): Deduce base type from vector types in templates)
$(LI $(BUGZILLA 7439): Compound assignment causes segmentation fault)
$(LI $(BUGZILLA 7452): Function using enforce() cannot be inferred as @safe because of anonymous function due to lazy argument)
$(LI $(BUGZILLA 7462): Error message with _error_ in overridden function)
$(LI $(BUGZILLA 7463): Duplicated error message with bad template value parameter)
$(LI $(BUGZILLA 7473): [CTFE] Non-ref argument behaves as if it's a ref argument)