forked from dlang/dlang.org
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.dd
9908 lines (8912 loc) · 533 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,
$(VERSION 066, August 18, 2014, =================================================,
$(BUGSTITLE Compiler Changes,
$(LI $(RELATIVE_LINK2 warn_unused_retval, $(D -w) now warns about an unused return value of a strongly pure nothrow function call.))
$(LI $(RELATIVE_LINK2 boundscheck, $(D -noboundscheck) has been deprecated in favor of $(D boundscheck=[on|safeonly|off]).))
$(LI $(RELATIVE_LINK2 vgc_switch, $(D -vgc) was added to list GC allocation code positions in the code.))
$(LI $(RELATIVE_LINK2 vcolumns_switch, $(D -vcolumns) was added to display column numbers in error messages.))
$(LI $(RELATIVE_LINK2 color_switch, $(D -color) was added to make console output colored.))
)
$(BUGSTITLE Language Changes,
$(LI $(RELATIVE_LINK2 nogc_attribute, $(D @nogc) attribute was added.))
$(LI $(RELATIVE_LINK2 extern_cpp_nspace, $(D extern $(LPAREN)C++,) $(I namespace)$(D $(RPAREN)) was added.))
$(LI $(RELATIVE_LINK2 opover_multidim_slicing, Operator overloading for multi-dimensional slicing was added.))
$(LI $(RELATIVE_LINK2 traits_getfunctionattributes, $(D __traits$(LPAREN)getFunctionAttributes$(RPAREN)) was added.))
$(LI $(RELATIVE_LINK2 narrowing_conversion_in_ifti, Support template parameter deduction for arguments with a narrowing conversion.))
$(LI $(RELATIVE_LINK2 deprecate_rmw, Read-Modify-Write operations on shared variables are now deprecated.))
$(LI $(RELATIVE_LINK2 uniform_scalar_construction, Support uniform construction syntax for built-in scalar types.))
)
$(BUGSTITLE Library Changes,
$(LI $(RELATIVE_LINK2 duration_split, Duration.get and its wrappers have been deprecated in favor of the new Duration.split.))
$(LI $(RELATIVE_LINK2 array_and_aa_changes, Some built-in type properties have been replaced with library functions.))
$(LI $(RELATIVE_LINK2 aa_key_requirement, Associative array keys now require equality instead of order comparison.))
)
$(BUGSTITLE Linker Changes,
)
$(BR)$(BIG $(RELATIVE_LINK2 list2066, List of all bug fixes and enhancements in D 2.066.))
$(HR)
$(BUGSTITLE Compiler Changes,
$(LI $(LNAME2 warn_unused_retval, $(D -w) now warns about an unused return value of a strongly pure nothrow function call:)
$(P A discarded return value from a strongly pure nothrow function call now generates a warning.
---------
int foo() pure nothrow { return 1; }
void main()
{
foo(); // the result of foo() is unused
}
---------
With the $(D -w) switch, the compiler will complain:
$(CONSOLE Warning: calling foo without side effects discards return value of type int, prepend a cast(void) if intentional)
)
)
$(LI $(LNAME2 boundscheck, $(D -noboundscheck) has been deprecated in favor of $(D boundscheck=[on|safeonly|off]):)
$(P Confusion over what the $(D -noboundscheck) command line option did led to the creation of
the new option $(D -boundscheck=[on|safeonly|off]) which aims to be more clear while enabling
more flexibility than was present before.
)
$(P $(D -boundscheck=)
$(UL
$(LI $(B on): Bounds checks are enabled for all code. This is the default.)
$(LI $(B safeonly): Bounds checks are enabled only in $(D @safe) code.
This is the default for $(B -release) builds.)
$(LI $(B off): Bounds checks are disabled completely (even in $(D @safe)
code). This option should be used with caution and as a
last resort to improve performance. Confirm turning off
$(D @safe) bounds checks is worthwhile by benchmarking.)
)
)
$(P $(B Use $(D -boundscheck=off) to replace instances of $(D -noboundscheck).))
$(P Prior to this there was no way to enable bounds checking for $(D -release) builds nor any
way of turning off non-$(D @safe) bounds checking without pulling in everything else $(D
-release) does.)
)
$(LI $(LNAME2 vgc_switch, $(D -vgc) was added to list GC allocation code positions in the code):
$(P Prints all GC-allocation points. Analysis will follow the semantics of
the new $(D @nogc) attribute.
)
)
$(LI $(LNAME2 vcolumns_switch, $(D -vcolumns) was added to display column numbers in error messages):
$(P Diagnostic messages will print the character number from each line head.
---------
int x = missing_name;
---------
Without $(D -vcolumns):
---------
test.d(1): Error: undefined identifier missing_name
---------
With $(D -vcolumns):
---------
test.d(1,9): Error: undefined identifier missing_name
---------
)
)
$(LI $(LNAME2 color_switch, $(D -color) was added to make console output colored:)
$(P Errors, deprecation, and warning messages will be colored.
)
)
)
$(BUGSTITLE Language Changes,
$(LI $(LNAME2 nogc_attribute, $(D @nogc) attribute was added:)
$(P @nogc attribute disallows GC-heap allocation.
---------
class C {}
void foo() @nogc
{
auto c = new C(); // GC-allocation is disallowed
}
---------
)
)
$(LI $(LNAME2 extern_cpp_nspace, $(D extern $(LPAREN)C++,) $(I namespace)$(D $(RPAREN)) was added):
$(P To represent a C++ namespace, $(D extern $(LPAREN)C++$(RPAREN)) now takes optional dot-chained identifiers.
---------
extern (C++, a.b.c) int foo();
---------
is equivalent with:
$(CPPCODE
namespace a {
namespace b {
namespace c {
int foo();
}
}
}
)
)
)
$(LI $(LNAME2 opover_multidim_slicing, Operator overloading for multi-dimensional slicing was added:)
$(P Documentation is $(LINK2 operatoroverloading.html#ArrayOps, here).)
$(P Example code:
---------
struct MyContainer(E)
{
E[][] payload;
this(size_t w, size_t h)
{
payload = new E[][](h, w);
}
size_t opDollar(size_t dim)()
{
return payload[dim].length;
}
auto opSlice(size_t dim)(size_t lwr, size_t upr)
{
import std.typecons;
return tuple(lwr, upr);
}
void opIndexAssign(A...)(E val, A indices)
{
assert(A.length == payload.length);
foreach (dim, x; indices)
{
static if (is(typeof(x) : size_t))
{
// this[..., x, ...]
payload[dim][x] = val;
}
else
{
// this[..., x[0] .. x[1], ...]
payload[dim][x[0] .. x[1]] = val;
}
}
}
}
void main()
{
import std.stdio;
auto c = MyContainer!int(4, 3);
writefln("[%([%(%d%| %)]%|\n %)]", c.payload);
// [[0 0 0 0]
// [0 0 0 0]
// [0 0 0 0]]
c[1 .. 3,
2,
0 .. $] = 1;
/*
Rewritten as:
c.opIndexAssign(c.opSlice!0(1, 3),
2,
c.opSlice!2(0, c.opDollar!2()));
*/
writefln("[%([%(%d%| %)]%|\n %)]", c.payload);
// [[0 1 1 0]
// [0 0 1 0]
// [1 1 1 1]]
}
---------
)
)
$(LI $(LNAME2 traits_getfunctionattributes, $(D __traits$(LPAREN)getFunctionAttributes$(RPAREN)) was added):
$(P This can take one argument, either a function symbol, function type, function
pointer type, or delegate type.
Examples:
---------
void foo() pure nothrow @safe;
static assert([__traits(getFunctionAttributes, foo)] == ["pure", "nothrow", "@safe"]);
ref int bar(int) @property @trusted;
static assert([__traits(getFunctionAttributes, typeof(&bar))] == ["@property", "ref", "@trusted"]);
---------
)
)
$(LI $(LNAME2 narrowing_conversion_in_ifti, Support template parameter deduction for arguments with a narrowing conversion):
$(P Implicit Function Template Instantiation will now consider a narrowing conversion
of function arguments when deducing the template instance parameter types.
---------
void foo(T)(T[] arr, T elem) { ... }
void main()
{
short[] a;
foo(a, 1);
}
---------
In 2.065 and earlier, calling $(D foo(a, 1)) was not allowed. From 2.066,
$(D T) is deduced as $(D short) by considering a narrowing conversion
of the second function argument `1` from $(D int) to $(D short).
)
)
$(LI $(LNAME2 deprecate_rmw, Read-Modify-Write operations on shared variables are now deprecated):
$(P Examples:
---------
shared int global;
void main()
{
global++; // deprecated
global *= 2; // deprecated
}
---------
Instead you should use $(D atomicOp) from $(D core.atomic):
---------
shared int global;
void main()
{
import core.atomic;
atomicOp!"+="(global, 1);
atomicOp!"*="(global, 2);
}
---------
)
)
$(LI $(LNAME2 uniform_scalar_construction, Support uniform construction syntax for built-in scalar types):
$(P Examples:
---------
short n1 = 1;
auto n2 = short(1); // equivalent with n1, typeof(n2) is short
auto p1 = new long(1); // typeof(p1) is long*
auto p2 = new immutable double(3.14); // typeof(p2) is immutable(double)*
---------
)
$(P The constructor argument should be implicitly convertible to the constructed type.
---------
auto n1 = short(32767); // OK
auto n2 = short(32768); // Not allowed, out of bounds of signed short -32768 to 32767
---------
)
)
)
$(BUGSTITLE Library Changes,
$(LI $(LNAME2 duration_split, Duration.get and its wrappers have been deprecated in favor of the new Duration.split:)
$(P $(CXREF time, Duration.get) and its wrappers, $(CXREF time, Duration.weeks),
$(CXREF time, Duration.days), $(CXREF time, Duration.hours), and
$(CXREF time, Duration.seconds), as well as $(CXREF time, Duration.fracSec) (which
served a similar purpose as $(CXREF time, Duration.get) for the fractional second units)
have proven to be too easily confused with $(CXREF time, Duration.total), causing
subtle bugs. So, they have been deprecated. In their place, $(CXREF time, Duration.split)
has been added - and it's not only very useful, but it does a great job of showing off
what D can do.
Whereas $(CXREF time, Duration.get) split out all of the units of a
$(CXREF time, Duration) and then returned only one of them,
$(CXREF time, Duration.split) splits out a $(CXREF time, Duration) into the units
that it's told to (which could be one unit or all of them) and returns all of
them. It has two overloads, both which take template arguments that indicate which
of the units are to be split out. The difference is in how the result is returned.
As with most of the templates in core.time and std.datetime which take strings
to represent units, $(CXREF time, Duration.split) accepts $(D "weeks"), $(D "days"),
$(D "hours"), $(D "minutes"), $(D "seconds"), $(D "msecs"), $(D "usecs"),
$(D "hnsecs"), and $(D "nsecs").
The first overload returns the split out units as $(D out) parameters.
---------
auto d = weeks(5) + days(4) + hours(17) + seconds(2) + hnsecs(12_007);
short days;
long seconds;
int msecs;
d.split!("days", "seconds", "msecs")(days, seconds, msecs);
assert(days == 39);
assert(seconds == 61_202);
assert(msecs == 1);
---------
The arguments can be any integral type (though no protection is given against integer
overflow, so unless it's known that the values are going to be small, it's unwise to
use a small integral type for any of the arguments).
The second overload returns a struct with the unit names as its fields. Only the
requested units are present as fields. All of the struct's fields are $(D long)s.
---------
auto d = weeks(5) + days(4) + hours(17) + seconds(2) + hnsecs(12_007);
auto result = d.split!("days", "seconds", "msecs")();
assert(result.days == 39);
assert(result.seconds == 61_202);
assert(result.msecs == 1);
---------
Or if no units are given to the second overload, then it will return a struct with
all of the units save for $(D nsecs) (since $(D nsecs) would always be $(D 0) when
$(D hnsecs) is one of the units as $(CXREF time, Duration) has hnsec precision).
---------
auto d = weeks(5) + days(4) + hours(17) + seconds(2) + hnsecs(12_007);
auto result = d.split();
assert(result.weeks == 5);
assert(result.days == 4);
assert(result.hours == 17);
assert(result.minutes == 0);
assert(result.seconds == 2);
assert(result.msecs == 1);
assert(result.usecs == 200);
assert(result.hnsecs == 7);
---------
Calling $(CXREF time, Duration.get) or its wrappers for each of the units would be
equivalent to that example, only less efficient when more than one unit is
requested, as the calculations would have to be done more than once. The exception
is $(CXREF time, Duration.fracSec) which would have given the total of the
fractional seconds as the requested units rather than splitting them out.
---------
// Equivalent to previous example
auto d = weeks(5) + days(4) + hours(17) + seconds(2) + hnsecs(12_007);
assert(d.weeks == 5);
assert(d.days == 4);
assert(d.hours == 17);
assert(d.minutes == 0);
assert(d.seconds == 2);
assert(d.fracSec.msecs == 1);
assert(d.fracSec.usecs == 1200);
assert(d.fracSec.hnsecs == 12_007);
---------
It is hoped that $(CXREF time, Duration.split) will be less confusing and thus
result in fewer bugs, but it's definitely the case that it's more powerful. It's
also a great example of D's metaprogramming capabilities given how it splits out
only the requested units and even is able to return a struct with fields with the
same names as the requested units. This on top of being able to handle a variety
of integral types as arguments. And its implemenation isn't even very complicated.
)
)
$(LI $(LNAME2 array_and_aa_changes, Some built-in type properties have been replaced with library functions:)
$(P Built-in array properties $(D dup) and $(D idup) were replaced with
(module-scoped) free functions in the $(D object) module, thanks to D's support of
$(LINK2 function.html#pseudo-member, Uniform Function Call Syntax).
)
$(P Built-in associative array properties $(D rehash), $(D dup), $(D byKey),
$(D byValue), $(D keys), $(D values), and $(D get) were also replaced with free
functions in the $(D object) module.
)
)
$(LI $(LNAME2 aa_key_requirement, Associative array keys now require equality rather than ordering:)
$(P Until 2.065, opCmp was used to customize the comparison of AA struct keys.
---------
void main()
{
int[MyKey] aa;
}
struct MyKey
{
int x;
int y; // want to be ignored for AA key comparison
int opCmp(ref const MyKey rhs) const
{
if (this.x == rhs.x)
return 0;
// defined order was merely unused for AA keys.
return this.x > rhs.x ? 1 : -1;
}
}
---------
From 2.066, the AA implementation has been changed to use the equality operator ($(D ==))
for the key comparison. So the $(D MyKey) struct should be modified to:
---------
struct MyKey
{
int x;
int y; // want to be ignored for AA key comparison
int opEquals(ref const MyKey rhs) const
{
return this.x == rhs.x;
}
}
---------
)
)
)
$(BR)$(BIG $(LNAME2 list2066, List of all bug fixes and enhancements in D 2.066:))
$(BUGSTITLE DMD Compiler regressions,
$(P
$(LI $(BUGZILLA 5105): Member function template cannot be synchronized)
$(LI $(BUGZILLA 9449): Static arrays of 128bit types segfault on initialization. Incorrect calling of memset128ii.)
$(LI $(BUGZILLA 11777): [ICE] dmd memory corruption as `Scope::pop` `free`s `fieldinit` used also in `enclosing`)
$(LI $(BUGZILLA 12174): Problems caused by enum predicate with std.algorithm.sum)
$(LI $(BUGZILLA 12179): [ICE]$(LPAREN)e2ir.c 1861$(RPAREN) with array operation)
$(LI $(BUGZILLA 12242): conflict error with public imports)
$(LI $(BUGZILLA 12243): [REG 2.065.0] "ICE: cannot append 'char' to 'string'" with -inline)
$(LI $(BUGZILLA 12250): [REG 2.065.0][ICE]$(LPAREN)e2ir.c 2077$(RPAREN) with inout T[] and array operation)
$(LI $(BUGZILLA 12255): Regression: opCmp requirement for AAs breaks code)
$(LI $(BUGZILLA 12262): [REG2.065] A specialized parameter `alias a : B!A` should not match to the non-eponymous instantiated variable)
$(LI $(BUGZILLA 12264): [REG2.066a] A specialized alias parameter conflicts with the unspecialized one.)
$(LI $(BUGZILLA 12266): Regression $(LPAREN)2.065$(RPAREN): Header generation produces uncompilable header)
$(LI $(BUGZILLA 12296): [REG2.066a] const compatible AA pointer conversion is wrongly rejected in CTFE)
$(LI $(BUGZILLA 12312): Regression $(LPAREN)2.064$(RPAREN): Diagnostic for void static arrays has gone bad)
$(LI $(BUGZILLA 12316): GIT HEAD: AA.get broken for Object VAL types)
$(LI $(BUGZILLA 12376): ICE with constarainted template instantiation with error gagging)
$(LI $(BUGZILLA 12382): `opDollar` can't be used at CT)
$(LI $(BUGZILLA 12390): [REG2.066a] "has no effect in expression" diagnostic regression)
$(LI $(BUGZILLA 12396): Regression: major breakage from new import rules)
$(LI $(BUGZILLA 12399): Static and selective import acts like a normal import)
$(LI $(BUGZILLA 12400): Misleading/useless diagnostic on bad fully-qualified symbol name)
$(LI $(BUGZILLA 12403): [AA] Associative array `get` function rejects some cases)
$(LI $(BUGZILLA 12405): Named imports act like regular imports)
$(LI $(BUGZILLA 12413): Infinite recursion of `Package::search`)
$(LI $(BUGZILLA 12467): Regression $(LPAREN)2.066 git-head$(RPAREN): char[] is implicitly convertible to string)
$(LI $(BUGZILLA 12485): [REG2.065] DMD crashes when recursive template expansion)
$(LI $(BUGZILLA 12497): [REG2.064] ICE on string mixin with non-string operand)
$(LI $(BUGZILLA 12501): Assertion `global.gaggedErrors || global.errors' failed.)
$(LI $(BUGZILLA 12509): Compiler performance highly depends on declared array size - for struct with long static array of structs)
$(LI $(BUGZILLA 12554): [ICE]$(LPAREN)struct.c line 898$(RPAREN) with failed delegate purity)
$(LI $(BUGZILLA 12574): [ICE]$(LPAREN)statement.c, line 713$(RPAREN) with reduce with wrong tuple arity)
$(LI $(BUGZILLA 12580): [REG2.066a] dup$(LPAREN)$(RPAREN) won't accept void[])
$(LI $(BUGZILLA 12581): [ICE]$(LPAREN)statement.c, line 713$(RPAREN) with invalid assignment + alias this)
$(LI $(BUGZILLA 12585): Regression$(LPAREN)2.064$(RPAREN): Segfault on lazy/catch/opIndex)
$(LI $(BUGZILLA 12591): [DMD|REG] std/typecons.d$(LPAREN)440$(RPAREN): Error: tuple has no effect in expression)
$(LI $(BUGZILLA 12593): [REG2.065] AA cannot have struct as key)
$(LI $(BUGZILLA 12619): Invalid warning for unused return value of debug memcpy)
$(LI $(BUGZILLA 12649): "discards return value" warning will cause ICE on function pointer call)
$(LI $(BUGZILLA 12650): Invalid codegen on taking lvalue of instance field initializ)
$(LI $(BUGZILLA 12689): [CTFE] assigning via pointer from 'in' expression doesn't work)
$(LI $(BUGZILLA 12703): GIT HEAD : final class rejects members initialization)
$(LI $(BUGZILLA 12719): struct.c:705: virtual void StructDeclaration::semantic$(LPAREN)Scope*$(RPAREN): Assertion `parent && parent == sc->parent' failed.)
$(LI $(BUGZILLA 12727): [REG2.066a] DMD hangs up on recursive alias declaration)
$(LI $(BUGZILLA 12728): [REG2.066a] IFTI should consider instantiated types that has template parameters with default args)
$(LI $(BUGZILLA 12760): Initializing an object that has "this$(LPAREN)Args$(RPAREN) inout" causes "discards return value" warning)
$(LI $(BUGZILLA 12769): ICE returning array)
$(LI $(BUGZILLA 12774): REG$(LPAREN)2.066$(RPAREN) ICE$(LPAREN)optimize.c$(RPAREN) Newing struct containing union causes segfault)
$(LI $(BUGZILLA 12824): REG$(LPAREN)2.066$(RPAREN) ICE$(LPAREN)statement.c$(RPAREN) Segfault with label and static if)
$(LI $(BUGZILLA 12860): REG 2.065: typeid$(LPAREN)_error_$(RPAREN) symbols leaked to backend)
$(LI $(BUGZILLA 12864): can no longer use toLower in string switch case)
$(LI $(BUGZILLA 12880): [REG2.066a] Wrong IFTI for string.init argument)
$(LI $(BUGZILLA 12896): ld.gold complains about bad relocations when building libphobos2.so)
$(LI $(BUGZILLA 12900): REG 2.065: Wrong code in IfStatement condition Expression)
$(LI $(BUGZILLA 12904): Wrong-code for some slice to slice assignments when using `opDollar`)
$(LI $(BUGZILLA 12906): [CTFE] Static array of structs causes postblit call)
$(LI $(BUGZILLA 12910): [AA] `rehash` is incorrectly inferred as strongly pure for some associative arrays)
$(LI $(BUGZILLA 12924): deprecated$(LPAREN)"foo"$(RPAREN); and deprecated; should not compile)
$(LI $(BUGZILLA 12956): [ICE] Assertion in expression.c:432)
$(LI $(BUGZILLA 12981): Can't refer to 'outer' from mixin template)
$(LI $(BUGZILLA 12989): Wrong x86_64 code for delegate return when compiled as lib $(LPAREN)-lib$(RPAREN))
$(LI $(BUGZILLA 13002): DMD 2.066 prep: 32-bit build fails on Ubuntu via create_dmd_release)
$(LI $(BUGZILLA 13008): [REG2.066a] 'deprecated' is not allowed to refer another deprecated when it is a function declaration)
$(LI $(BUGZILLA 13021): Constructing union with floating type and then accessing its field in one expression causes ICE)
$(LI $(BUGZILLA 13024): [ICE]$(LPAREN)expression.c line 1172$(RPAREN) with implicit supertype conversion of different enums in array literal)
$(LI $(BUGZILLA 13025): Tools repository does not build on Ubuntu)
$(LI $(BUGZILLA 13026): object.get cannot be called with [] as "defaultValue" argument)
$(LI $(BUGZILLA 13027): Assertion `ex->op == TOKblit || ex->op == TOKconstruct' failed.)
$(LI $(BUGZILLA 13030): DMD assertion fails at mtype.c:697 if delegate has an argument name)
$(LI $(BUGZILLA 13034): [Reg] core.stdc.stdio - deprecation warning with dmd -inline)
$(LI $(BUGZILLA 13053): Wrong warning on implicitly generated __xtoHash)
$(LI $(BUGZILLA 13056): [2.066.0-b1] Regression: Error: template std.path.baseName cannot deduce function from argument types !$(LPAREN)$(RPAREN)$(LPAREN)DirEntry$(RPAREN))
$(LI $(BUGZILLA 13071): [ICE] dmd 2.066.0-b1 assertion in nogc.c:73)
$(LI $(BUGZILLA 13077): [dmd 2.066-b2] std.range.array with shared InputRangeObject)
$(LI $(BUGZILLA 13081): ICE with alias this and opSlice)
$(LI $(BUGZILLA 13087): Error: no property 'xyz' for type 'Vec!4')
$(LI $(BUGZILLA 13102): Cannot parse 184467440737095516153.6L)
$(LI $(BUGZILLA 13113): cannot build druntime's gc.d with -debug=INVARIANT, bad @nogc inference?)
$(LI $(BUGZILLA 13114): old opCmp requirement for AA keys should be detected for classes)
$(LI $(BUGZILLA 13117): Executable size of hello world explodes from 472K to 2.7M)
$(LI $(BUGZILLA 13127): Cannot deduce function with int[][] argument and "in" parameter)
$(LI $(BUGZILLA 13132): ICE on interface AA key)
$(LI $(BUGZILLA 13141): array cast from string[] to immutable$(LPAREN)char[][]$(RPAREN) is not supported at compile time)
$(LI $(BUGZILLA 13152): [REG2.064.2] Compiler high cpu usage and never ends)
$(LI $(BUGZILLA 13154): Incorrect init of static float array when sliced)
$(LI $(BUGZILLA 13158): "void has no value" in std.variant.Algebraic $(LPAREN)affects D:YAML$(RPAREN))
$(LI $(BUGZILLA 13178): Duplicate symbol of compiler generated symbols)
$(LI $(BUGZILLA 13179): AA key type TagIndex now requires equality rather than comparison)
$(LI $(BUGZILLA 13180): [REG2.066a] AA get returns const$(LPAREN)char[]$(RPAREN) instead of string)
$(LI $(BUGZILLA 13187): Function wrongly deduced as pure)
$(LI $(BUGZILLA 13193): Extreme slowdown in compilation time of OpenSSL in Tango for optimized build)
$(LI $(BUGZILLA 13201): Wrong "Warning: statement is not reachable" error with -w)
$(LI $(BUGZILLA 13208): [ICE]$(LPAREN)e2ir.c 2077$(RPAREN) with array operation)
$(LI $(BUGZILLA 13218): [ICE] s2ir.c 142: Must fully qualify call to ParameterTypeTuple)
$(LI $(BUGZILLA 13219): segmentation fault in FuncDeclaration::getLevel)
$(LI $(BUGZILLA 13220): [ICE] 'global.gaggedErrors || global.errors' on line 750 in file 'statement.c')
$(LI $(BUGZILLA 13221): [ICE] '0' on line 318 in file 'interpret.c')
$(LI $(BUGZILLA 13223): Cannot deduce argument for array template parameters)
$(LI $(BUGZILLA 13232): dmd compile times increased by 10-20%)
$(LI $(BUGZILLA 13237): Wrong code with "-inline -O")
$(LI $(BUGZILLA 13245): segfault when instantiating template with non-compiling function literal)
$(LI $(BUGZILLA 13252): ParameterDefaultValueTuple affects other instantiations)
$(LI $(BUGZILLA 13259): [ICE] 'v.result' on line 191 in file 'todt.c')
$(LI $(BUGZILLA 13284): [dmd 2.066-rc2] Cannot match shared classes at receive)
)
)
$(BUGSTITLE DMD Compiler bugs,
$(P
$(LI $(BUGZILLA 648): DDoc: unable to document mixin statement)
$(LI $(BUGZILLA 846): Error 42: Symbol Undefined "<mangle_of_class_template>__arrayZ")
$(LI $(BUGZILLA 1659): template alias parameters are chosen over all but exact matches.)
$(LI $(BUGZILLA 2427): Function call in struct initializer fails to compile)
$(LI $(BUGZILLA 2438): Cannot get types of delegate properties)
$(LI $(BUGZILLA 2456): "cannot put catch statement inside finally block", missing line number)
$(LI $(BUGZILLA 2711): -H produces bad headers files if function defintion is templated and have auto return value)
$(LI $(BUGZILLA 2791): port.h and port.c are missing licenses)
$(LI $(BUGZILLA 3032): No stack allocation for "scope c = new class Object {};")
$(LI $(BUGZILLA 3109): [meta] Template ordering)
$(LI $(BUGZILLA 3490): DMD Never Inlines Functions that Could Throw)
$(LI $(BUGZILLA 3672): [tdpl] read-modify-write $(LPAREN)rmw$(RPAREN) operators must be disabled for shared)
$(LI $(BUGZILLA 4225): mangle.c:81: char* mangle$(LPAREN)Declaration*$(RPAREN): Assertion `fd && fd->inferRetType' failed.)
$(LI $(BUGZILLA 4423): [tdpl] enums of struct types)
$(LI $(BUGZILLA 4757): A forward reference error with return of inner defined struct)
$(LI $(BUGZILLA 4791): Assigning a static array to itself should be allowed)
$(LI $(BUGZILLA 5030): Operators don't work with AssociativeArray!$(LPAREN)T1,T2$(RPAREN))
$(LI $(BUGZILLA 5095): Error for typesafe variadic functions for structs)
$(LI $(BUGZILLA 5498): wrong common type deduction for array of classes)
$(LI $(BUGZILLA 5635): Code inside 'foreach' using opApply cannot modify variable out of its scope in a template function.)
$(LI $(BUGZILLA 5810): Struct postincrement generates 'no effect' error if used on struct member)
$(LI $(BUGZILLA 5835): `TypeInfo_Array.getHash` creates raw data hash instead using array element hash function)
$(LI $(BUGZILLA 5854): Built-in array sort doesn't sort SysTime correctly)
$(LI $(BUGZILLA 6140): Wrong ambiguity error with overloading)
$(LI $(BUGZILLA 6359): Pure/@safe-inference should not be affected by __traits$(LPAREN)compiles$(RPAREN))
$(LI $(BUGZILLA 6430): Overloaded auto-return functions each with a nested aggregate of the same name are conflated)
$(LI $(BUGZILLA 6677): static this attributes position)
$(LI $(BUGZILLA 6889): "finally" mentioned in a compilation error, instead of "scope$(LPAREN)exit$(RPAREN)" or "scope$(LPAREN)success$(RPAREN)")
$(LI $(BUGZILLA 7019): implicit constructors are inconsistently allowed)
$(LI $(BUGZILLA 7209): Stack overflow on explicitly typed enum circular dependency)
$(LI $(BUGZILLA 7469): template mangling depends on instantiation order)
$(LI $(BUGZILLA 7477): Enum structs without specified values)
$(LI $(BUGZILLA 7870): Shared library support for Linux is missing)
$(LI $(BUGZILLA 7887): [CTFE] can't assign to returned reference)
$(LI $(BUGZILLA 8100): [ICE] with templated subclassing)
$(LI $(BUGZILLA 8236): Wrong error message in creating struct from vector operation)
$(LI $(BUGZILLA 8254): nested struct cannot access the types of the parent's fields)
$(LI $(BUGZILLA 8269): The 'with statement' does not observe temporary object lifetime)
$(LI $(BUGZILLA 8296): @disable this propagates through reference)
$(LI $(BUGZILLA 8309): ICE in typeMerge on 'void main$(LPAREN)$(RPAREN){auto x = [$(LPAREN)$(RPAREN)=>1.0, $(LPAREN)$(RPAREN)=>1];}')
$(LI $(BUGZILLA 8370): invalid deprecation error with -release -inline -noboundscheck)
$(LI $(BUGZILLA 8373): IFTI fails on overloading of function vs non function template)
$(LI $(BUGZILLA 8392): DMD sometime fail when using a non static function template within a function template)
$(LI $(BUGZILLA 8499): ICE on undefined identifier)
$(LI $(BUGZILLA 8596): Indeterministic assertion failure in rehash)
$(LI $(BUGZILLA 8704): Invalid nested struct constructions should be detected)
$(LI $(BUGZILLA 8738): Struct literal breaks assigment ordering)
$(LI $(BUGZILLA 9245): [CTFE] postblit not called on static array initialization)
$(LI $(BUGZILLA 9596): Ambiguous match is incorrectly hidden by additional lesser match)
$(LI $(BUGZILLA 9708): inout breaks zero parameter IFTI)
$(LI $(BUGZILLA 9931): Mac OS X ABI not followed when returning structs for extern $(LPAREN)C$(RPAREN))
$(LI $(BUGZILLA 10054): x86_64 valgrind reports unrecognised instruction $(LPAREN)DMD 2.062$(RPAREN))
$(LI $(BUGZILLA 10071): 'real' alignment wrong on several platforms)
$(LI $(BUGZILLA 10112): Mangle, which defined by pragma$(LPAREN)mangle$(RPAREN) should not be mangled by backend.)
$(LI $(BUGZILLA 10133): ICE for templated static conditional lambda)
$(LI $(BUGZILLA 10169): duplicate error message: member is not accessible)
$(LI $(BUGZILLA 10219): Implicit conversion between delegates returning a class and an interface)
$(LI $(BUGZILLA 10366): Ddoc: Symbols in template classes don't get fully qualified anchors)
$(LI $(BUGZILLA 10629): [ICE]$(LPAREN)dt.c 106$(RPAREN) with void array)
$(LI $(BUGZILLA 10658): Cannot merge template overload set by using alias declaration)
$(LI $(BUGZILLA 10703): Front-end code removal "optimisation" with try/catch blocks produces wrong codegen)
$(LI $(BUGZILLA 10908): Links in d.chm file are broken)
$(LI $(BUGZILLA 10928): Fails to create closures that reference structs with dtor)
$(LI $(BUGZILLA 10985): Compiler doesn't attempt to inline non-templated functions from libraries $(LPAREN)even having the full source$(RPAREN))
$(LI $(BUGZILLA 11066): Spurious warning 'statement is not reachable' with -profile)
$(LI $(BUGZILLA 11177): parameterized enum can't be typed)
$(LI $(BUGZILLA 11181): Missing compile-time error for wrong array literal)
$(LI $(BUGZILLA 11201): ICE: $(LPAREN)symbol.c$(RPAREN) -inline stops compilation)
$(LI $(BUGZILLA 11333): ICE: Cannot subtype 0-tuple with "alias this")
$(LI $(BUGZILLA 11421): Dynamic array of associative array literal type inference)
$(LI $(BUGZILLA 11448): `dup` calls @system impure code from @safe pure function)
$(LI $(BUGZILLA 11453): Compiling packages has a dependency on order of modules passed to the compiler.)
$(LI $(BUGZILLA 11511): DDoc - C variadic parameters cannot be properly documented)
$(LI $(BUGZILLA 11535): CTFE ICE on reassigning a static array initialized with block assignment)
$(LI $(BUGZILLA 11542): scope$(LPAREN)failure$(RPAREN) messes up nothrow checking)
$(LI $(BUGZILLA 11543): multiple definition of std.regex with shared library)
$(LI $(BUGZILLA 11545): Aggregate function literal member should not have access to enclosing scope)
$(LI $(BUGZILLA 11550): [ICE] Checking if std.conv.to compiles with an array of non-builtins results in an ICE in s2ir.c.)
$(LI $(BUGZILLA 11622): Assertion failure in totym$(LPAREN)$(RPAREN), glue.c, line 1288)
$(LI $(BUGZILLA 11672): default initialization of static array of structs with a single value fails)
$(LI $(BUGZILLA 11677): user defined attributes must be first)
$(LI $(BUGZILLA 11678): user defined attributes cannot appear as postfixes)
$(LI $(BUGZILLA 11679): user defined attributes not allowed for local auto declarations)
$(LI $(BUGZILLA 11680): user defined attributes for type inference)
$(LI $(BUGZILLA 11735): pragma$(LPAREN)msg, ...$(RPAREN) fails to print wstring, dstring)
$(LI $(BUGZILLA 11740): [64-bit] Struct with constructor incorrectly passed on stack to extern$(LPAREN)C++$(RPAREN) function)
$(LI $(BUGZILLA 11752): Make issues.dlang.org work)
$(LI $(BUGZILLA 11774): Lambda argument to templated function changes its signature forever)
$(LI $(BUGZILLA 11783): Make std.datetime unittesting faster)
$(LI $(BUGZILLA 11788): [x86] Valgrind unhandled instruction bytes: 0xC8 0x8 0x0 0x0)
$(LI $(BUGZILLA 11832): std.datetime: ddoc warnings)
$(LI $(BUGZILLA 11872): Support for overloaded template functions in with block)
$(LI $(BUGZILLA 11885): ICE$(LPAREN)s2ir.c 359$(RPAREN) with continuing a labeled ByLine $(LPAREN)range struct w/ dtor$(RPAREN) loop)
$(LI $(BUGZILLA 11889): std.container.Array.opIndex returns by value, resulting in perfect storm)
$(LI $(BUGZILLA 11901): real win64)
$(LI $(BUGZILLA 11906): Compiler assertion when comparing function pointers)
$(LI $(BUGZILLA 12009): local import and "unable to resolve forward reference" error)
$(LI $(BUGZILLA 12011): "Internal Compiler Error: Null field" on CTFE method call on .init)
$(LI $(BUGZILLA 12042): "CTFE internal error: Dotvar assignment" with template method and "with")
$(LI $(BUGZILLA 12057): [ICE], backend/cg87.c 925)
$(LI $(BUGZILLA 12063): No line number error on uninitialized enum member if base type is not incrementable)
$(LI $(BUGZILLA 12077): Instantiated type does not match to the specialized alias parameter)
$(LI $(BUGZILLA 12078): forward reference issue with is$(LPAREN)$(RPAREN) and curiously recurring template pattern)
$(LI $(BUGZILLA 12110): [CTFE] Error: CTFE internal error: Dotvar assignment)
$(LI $(BUGZILLA 12138): Label statement creates an unexpected scope block)
$(LI $(BUGZILLA 12143): Base class is forward referenced)
$(LI $(BUGZILLA 12164): Function returning ptrdiff_t.min in 64-bit returning 0 when -O is set.)
$(LI $(BUGZILLA 12212): Static array assignment makes slice implicitly)
$(LI $(BUGZILLA 12231): ICE on the class declaration within lambda inside template constraint)
$(LI $(BUGZILLA 12235): ICE on printing mangled name of forward reference lambda by pragma$(LPAREN)msg$(RPAREN))
$(LI $(BUGZILLA 12236): Inconsistent mangleof result)
$(LI $(BUGZILLA 12237): Inconsistent behavior of the instantiating enclosing template function)
$(LI $(BUGZILLA 12263): Specialized template parameter incorrectly fail to match to the same name template.)
$(LI $(BUGZILLA 12278): __traits$(LPAREN)classInstanceSize$(RPAREN) returns wrong value if used before class is declared)
$(LI $(BUGZILLA 12287): infinite loop on std.traits.moduleName on templated struct member)
$(LI $(BUGZILLA 12292): Template specialization ": string" passes for static arrays of other types)
$(LI $(BUGZILLA 12302): Assertion failure in expression.c $(LPAREN)line 432$(RPAREN) when using template isCallable)
$(LI $(BUGZILLA 12306): Struct Enums cannot be read at compile time)
$(LI $(BUGZILLA 12307): Contextfull error diagnostic about AA key type)
$(LI $(BUGZILLA 12313): Unneeded stack temporaries created by tuple foreach)
$(LI $(BUGZILLA 12334): Cannot access frame pointer of nested class from inside lambda)
$(LI $(BUGZILLA 12350): Assigning __traits$(LPAREN)getAttributes$(RPAREN) to variable crashes DMD)
$(LI $(BUGZILLA 12362): dmd hangs when attempting to use undefined enum)
$(LI $(BUGZILLA 12378): Compiler accepts any syntactically-valid code inside double-nested map predicate)
$(LI $(BUGZILLA 12392): No attribute inference if first template instantiation uses `alias`)
$(LI $(BUGZILLA 12397): CTFE ICE CompiledCtfeFunction::walkAllVars with 2.065)
$(LI $(BUGZILLA 12432): Diagnostic on argument count mismatch for ranges and opApply should improve)
$(LI $(BUGZILLA 12436): Opaque struct parameter type should not be allowed)
$(LI $(BUGZILLA 12460): Crash with goto and static if)
$(LI $(BUGZILLA 12476): Assert error in interpret.c:3204)
$(LI $(BUGZILLA 12480): static assert should print out the string representation of a value it can interpret)
$(LI $(BUGZILLA 12498): ICE: while$(LPAREN)string$(RPAREN) causes compiler to crash during CTFE)
$(LI $(BUGZILLA 12499): tuple/TypeTuple 1-Arg initialization fails during CTFE.)
$(LI $(BUGZILLA 12503): Bad optimization with scope$(LPAREN)success$(RPAREN) and return statement)
$(LI $(BUGZILLA 12506): Wrongly private lambda to define global immutable array)
$(LI $(BUGZILLA 12508): Codegen bug for interface type covariant return with lambda type inference)
$(LI $(BUGZILLA 12523): wrong foreach argument type with ref and inout)
$(LI $(BUGZILLA 12524): wrong type with inout const arg and inout return)
$(LI $(BUGZILLA 12528): [CTFE] cannot append elements from one inout array to another inout array)
$(LI $(BUGZILLA 12534): ICE on using expression tuple as type tuple)
$(LI $(BUGZILLA 12539): Compiler crash when looking up a nonexistent tuple element in an associative array)
$(LI $(BUGZILLA 12542): No function attribute inference for recursive functions)
$(LI $(BUGZILLA 12543): Class.sizeof requires the Class' definition)
$(LI $(BUGZILLA 12555): Incorrect error ungagging for speculatively instantiated class)
$(LI $(BUGZILLA 12571): __traits$(LPAREN)parent$(RPAREN) should work for typed manifest constant in initializer)
$(LI $(BUGZILLA 12577): ice on compile time struct field access)
$(LI $(BUGZILLA 12586): redundant error messages for tuple index exceeding)
$(LI $(BUGZILLA 12602): [CTFE] Changes to an array slice wrapped in a struct do not propogate to the original)
$(LI $(BUGZILLA 12604): No "mismatched array lengths" error with narrowing conversions)
$(LI $(BUGZILLA 12622): Purity, @safe not checked for pointers to functions)
$(LI $(BUGZILLA 12630): @nogc should recognize compile-time evaluation context)
$(LI $(BUGZILLA 12640): Error inside a switch statement causes a spurious switch case fallthrough warning)
$(LI $(BUGZILLA 12642): Avoid some heap allocation cases for fixed-size arrays)
$(LI $(BUGZILLA 12651): TemplateArgsOf accepts nonsensical arguments)
$(LI $(BUGZILLA 12660): Wrong non-@nogc function invariant error)
$(LI $(BUGZILLA 12673): ICE with static assert and __traits$(LPAREN)compiles$(RPAREN) with non-existent symbol)
$(LI $(BUGZILLA 12677): Assertion failure: 'isCtfeValueValid$(LPAREN)newval$(RPAREN)' on line 6579 in file 'interpret.c')
$(LI $(BUGZILLA 12678): Field constness missing in diagnostics for multiple field initialization error)
$(LI $(BUGZILLA 12686): Struct invariant prevents NRVO)
$(LI $(BUGZILLA 12688): Strange error if function call is in parentheses)
$(LI $(BUGZILLA 12704): typeof function literal incorrectly infers attributes)
$(LI $(BUGZILLA 12705): @system is missing when using getFunctionAttributes on a typeof$(LPAREN)function$(RPAREN))
$(LI $(BUGZILLA 12706): ddoc: __dollar should not appear in the documentation)
$(LI $(BUGZILLA 12725): IFTI should consider instantiated types with dependent template parameters)
$(LI $(BUGZILLA 12737): static constructor requires call of super constructor)
$(LI $(BUGZILLA 12739): Foreach delegate to opApply does not have infered nothrow)
$(LI $(BUGZILLA 12745): [Ddoc] Underscore is removed from numbers in document comments)
$(LI $(BUGZILLA 12746): Wrong overload access within manually aliased eponymous function template)
$(LI $(BUGZILLA 12749): Constructor-local function allows multiple mutation of immutable member)
$(LI $(BUGZILLA 12756): Cannot build dmd on windows because of longdouble)
$(LI $(BUGZILLA 12777): const/immutable member function violating its const-ness - confusing error message)
$(LI $(BUGZILLA 12778): Aliasing opBinaryRight to opBinary works only in certain cases)
$(LI $(BUGZILLA 12788): -di doesn't warn about implicit conversion from char[] to char*)
$(LI $(BUGZILLA 12809): More strict nothrow check for try-finally statement)
$(LI $(BUGZILLA 12820): DMD can inline calls to functions that use alloca, allocating the memory in the caller function instead.)
$(LI $(BUGZILLA 12825): Invalid "duplicated union initialization" error with initialized field in extern$(LPAREN)C++$(RPAREN) class)
$(LI $(BUGZILLA 12826): Win64: bad code for x ~= x;)
$(LI $(BUGZILLA 12833): switch statement does not work properly when -inline used)
$(LI $(BUGZILLA 12836): CTFE ICE CompiledCtfeFunction::walkAllVars)
$(LI $(BUGZILLA 12838): Dmd show ICEs when using Tuple and wrong type)
$(LI $(BUGZILLA 12841): ICE on taking function address)
$(LI $(BUGZILLA 12849): pmovmskb instruction cannot store to 64-bit registers)
$(LI $(BUGZILLA 12850): ICE when passing associative array to template)
$(LI $(BUGZILLA 12851): ICE when passing const static array to template)
$(LI $(BUGZILLA 12852): 64 bit wrong code generated)
$(LI $(BUGZILLA 12855): Shadow register assignments for spilling can conflict)
$(LI $(BUGZILLA 12873): Valgrind unhandled instruction bytes 0x48 0xDB $(LPAREN)redundant REX_W prefix on x87 load$(RPAREN))
$(LI $(BUGZILLA 12874): Wrong file name in range violation error)
$(LI $(BUGZILLA 12876): Implicit cast of array slice to fixed-size array for templates too)
$(LI $(BUGZILLA 12901): `in`/`out` contracts on struct constructor must require function body)
$(LI $(BUGZILLA 12902): [ICE] Assertion failure '!ae->lengthVar' in 'expression.c' when using `opDollar`)
$(LI $(BUGZILLA 12907): [ICE] Assertion failure '0' in 'mangle.c' when using `auto` return type with lambda with dereferanced `function` call)
$(LI $(BUGZILLA 12909): [AA] Function is incorrectly inferred as strongly pure for associative array with key of non-mutable array or pointer as argument)
$(LI $(BUGZILLA 12928): Bounds check dropped for array[length])
$(LI $(BUGZILLA 12933): [D1] ICE with default __FILE__ and __LINE__)
$(LI $(BUGZILLA 12934): Strange newly implemented VRP behavior on foreach)
$(LI $(BUGZILLA 12937): ICE with void static array initializing)
$(LI $(BUGZILLA 12938): Error message mistake in out parameter with @disable this)
$(LI $(BUGZILLA 12953): Wrong alignment number in error messages)
$(LI $(BUGZILLA 12962): osver.mak should use isainfo on Solaris to determine model)
$(LI $(BUGZILLA 12965): DMD sets ELFOSABI to ELFOSABI_LINUX on all systems)
$(LI $(BUGZILLA 12968): DMD inline asm outputs wrong XCHG instruction)
$(LI $(BUGZILLA 12970): Enclosing @system attribute is precedence than postfix @safe)
$(LI $(BUGZILLA 13003): Lack of read-modify-write operation check on shared object field)
$(LI $(BUGZILLA 13011): inout delegate parameter cannot receive exactly same type argument)
$(LI $(BUGZILLA 13023): optimizer produces wrong code for comparision and division of ulong)
$(LI $(BUGZILLA 13043): Redundant linking to TypeInfo in non-root module)
$(LI $(BUGZILLA 13044): Assignment of structs with const members)
$(LI $(BUGZILLA 13045): TypeInfo.getHash should return consistent result with object equality by default)
$(LI $(BUGZILLA 13049): in template arguments the compiler fails to parse scope for function pointers arguments)
$(LI $(BUGZILLA 13050): pragma mangle breaks homonym template aliasing)
$(LI $(BUGZILLA 13082): Spurious error message with failed call to class ctor)
$(LI $(BUGZILLA 13088): Compiler segfaults with trivial case code.)
$(LI $(BUGZILLA 13089): Spurious 'is not nothrow' error on static array initialization)
$(LI $(BUGZILLA 13109): -run and -lib dmd flags conflict)
$(LI $(BUGZILLA 13116): Should not be able to return ref to 'this')
$(LI $(BUGZILLA 13131): [2.066-b3] dmd: glue.c:1492: unsigned int totym$(LPAREN)Type*$(RPAREN): Assertion `0' failed.)
$(LI $(BUGZILLA 13135): IFTI fails on partially qualified argument in some cases)
$(LI $(BUGZILLA 13142): Enums on different classes confuse the compiler)
$(LI $(BUGZILLA 13161): Wrong offset of extern$(LPAREN)C++$(RPAREN) class member)
$(LI $(BUGZILLA 13175): [D1] ICE on conflicting overloads in presense of default __FILE__/__LINE__)
$(LI $(BUGZILLA 13182): extern$(LPAREN)C++$(RPAREN) classes cause crash when allocated on the stack with scope)
$(LI $(BUGZILLA 13190): Optimizer breaks comparison with zero)
$(LI $(BUGZILLA 13194): ICE when static class members initialized to void)
$(LI $(BUGZILLA 13195): Delete calls destructor but doesn't free)
$(LI $(BUGZILLA 13204): recursive alias declaration)
$(LI $(BUGZILLA 13212): Trailing Windows line endings not stripped from .ddoc macros)
$(LI $(BUGZILLA 13217): nothrow, template function and delegate: compilation error)
$(LI $(BUGZILLA 13225): [ICE] Access violation on invalid mixin template instantiation)
$(LI $(BUGZILLA 13226): Symbol is not accessible when using traits or mixin)
$(LI $(BUGZILLA 13230): std.variant.Variant Uses Deprecated .min Property in opArithmetic When T is a Floating Point Type)
$(LI $(BUGZILLA 13235): Wrong code on mutually recursive tuple type)
$(LI $(BUGZILLA 13260): [D1] ICE accessing non-existent aggregate member)
$(LI $(BUGZILLA 13273): ddoc can't handle \r in unittests and ESCAPES properly)
$(LI $(BUGZILLA 13275): Wrong di header generation on if and foreach statements)
)
)
$(BUGSTITLE DMD Compiler enhancements,
$(P
$(LI $(BUGZILLA 1553): foreach_reverse is allowed for delegates)
$(LI $(BUGZILLA 1673): Implement the isTemplate trait)
$(LI $(BUGZILLA 1952): Support a unit test handler)
$(LI $(BUGZILLA 2025): Inconsistent rules for instantiating templates with a tuple parameter)
$(LI $(BUGZILLA 2548): Array ops that return value to a new array should work.)
$(LI $(BUGZILLA 3882): Unused result of pure functions)
$(LI $(BUGZILLA 5070): Heap-allocated closures listing)
$(LI $(BUGZILLA 6798): Integrate overloadings for multidimentional indexing and slicing)
$(LI $(BUGZILLA 7747): Diagnostic should be informative for an inferred return type in a recursive call)
$(LI $(BUGZILLA 7961): Add support for C++ namespaces)
$(LI $(BUGZILLA 8101): Display candidate function overloads when function call fails)
$(LI $(BUGZILLA 9112): Uniform construction for built-in types)
$(LI $(BUGZILLA 9570): Wrong foreach index implicit conversion error)
$(LI $(BUGZILLA 9616): SortedRange should support all range kinds)
$(LI $(BUGZILLA 10018): Value range propagation for immutable variables)
$(LI $(BUGZILLA 11345): Optimize array literal to static array assignment to not allocate on GC heap)
$(LI $(BUGZILLA 11620): dmd json output should output enum values)
$(LI $(BUGZILLA 11819): Implement better diagnostics for unrecognized traits)
$(LI $(BUGZILLA 12232): The result of pointer arithmetic on unique pointers should be a unique pointer)
$(LI $(BUGZILLA 12273): 'dmd -color' flag to colorize error/warning messages)
$(LI $(BUGZILLA 12280): Redundant "template instance ... error instantiating" messages)
$(LI $(BUGZILLA 12290): IFTI should consider implicit conversions of the literal arguments)
$(LI $(BUGZILLA 12310): [CTFE] Support heap allocation for built-in scalar types)
$(LI $(BUGZILLA 12352): Consistently stop encoding return type of parent functions)
$(LI $(BUGZILLA 12550): Deprecate -noboundscheck and replace with more useful -boundscheck= option)
$(LI $(BUGZILLA 12598): Poor diagnostic with local import hijacking)
$(LI $(BUGZILLA 12606): Mismatch of known array length during dynamic => static array assignment should emit better diagnostics)
$(LI $(BUGZILLA 12641): D1: __FILE__ and __LINE__ default argument behaviour)
$(LI $(BUGZILLA 12653): Add the getFunctionAttributes trait)
$(LI $(BUGZILLA 12681): Rewrite rule prevents unique detection)
$(LI $(BUGZILLA 12798): constant folding should optimize subsequent concatenations)
$(LI $(BUGZILLA 12802): Allow optional 'StorageClasses' for new alias syntax)
$(LI $(BUGZILLA 12821): Missed redundant storage class / protection errors.)
$(LI $(BUGZILLA 12932): Support @nogc for immediately iterated array literal)
$(LI $(BUGZILLA 12967): Prefix method 'this' qualifiers should be disallowed in DeclDefs scope)
$(LI $(BUGZILLA 13001): Support VRP for ternary operator $(LPAREN)CondExp$(RPAREN))
$(LI $(BUGZILLA 13138): add peek/poke as compiler intrinsics)
$(LI $(BUGZILLA 13277): The base class in the JSON output is always unqualified)
$(LI $(BUGZILLA 13281): Print type suffix of real/complex literals in pragma$(LPAREN)msg$(RPAREN) and error diagnostic)
)
)
$(BUGSTITLE Phobos regressions,
$(P
$(LI $(BUGZILLA 12332): std.json API broken without notice)
$(LI $(BUGZILLA 12375): Writeln of a char plus a fixed size array of chars)
$(LI $(BUGZILLA 12394): Regression: std.regex unittests take agonizingly long to run - like hours on OSX)
$(LI $(BUGZILLA 12428): Regression $(LPAREN)2.066 git-head$(RPAREN): toUpper is corrupting input data $(LPAREN)modifying immutable strings$(RPAREN))
$(LI $(BUGZILLA 12455): [uni][reg] Bad lowercase mapping for 'LATIN CAPITAL LETTER I WITH DOT ABOVE')
$(LI $(BUGZILLA 12494): Regression $(LPAREN)2.064$(RPAREN): to!string$(LPAREN)enum$(RPAREN) returns incorrect value)
$(LI $(BUGZILLA 12505): Null pointers are pretty-printed even when hex output is requested)
$(LI $(BUGZILLA 12713): [REG 2.066A] std.regex.regex crashes with SEGV, illegal instruction resp. assertion failure with certain bad input)
$(LI $(BUGZILLA 12859): Read-modify-write operation for shared variable in Phobos)
$(LI $(BUGZILLA 13076): [dmd 2.066-b2] DList clearing of empty list)
$(LI $(BUGZILLA 13098): std.path functions no longer works with DirEntry)
$(LI $(BUGZILLA 13181): install target broken)
)
)
$(BUGSTITLE Phobos bugs,
$(P
$(LI $(BUGZILLA 1452): std.cstream doc incorrect - imports of stream and stdio are not public)
$(LI $(BUGZILLA 1726): std.stream FileMode documentation problems)
$(LI $(BUGZILLA 3054): multithreading GC problem. And Stdio not multithreading safe)
$(LI $(BUGZILLA 3363): std.stream.readf segfaults with immutable format strings)
$(LI $(BUGZILLA 3484): std.socket.Address hierarchy not const-safe)
$(LI $(BUGZILLA 4330): std.range.transposed$(LPAREN)$(RPAREN) should be documented)
$(LI $(BUGZILLA 4600): writeln$(LPAREN)$(RPAREN) is not thread-safe)
$(LI $(BUGZILLA 5177): std.socketstream's close$(LPAREN)$(RPAREN) should call super.close$(LPAREN)$(RPAREN))
$(LI $(BUGZILLA 5538): Immutable classes can't be passed as messages in std.concurrency)
$(LI $(BUGZILLA 5870): Debug code in SortedRange assumes it can always print the range)
$(LI $(BUGZILLA 6644): std.stdio write/writef$(LPAREN)ln$(RPAREN) are not @trusted)
$(LI $(BUGZILLA 6791): std.algorithm.splitter random indexes utf strings)
$(LI $(BUGZILLA 6998): std.container.Array destroys class instances)
$(LI $(BUGZILLA 7246): Provide a simpler example for std.algorithm.remove)
$(LI $(BUGZILLA 7289): Document how std.format handles structs, unions, and hashes.)
$(LI $(BUGZILLA 7693): Getopt Ignores Trailing Characters on Enums)
$(LI $(BUGZILLA 7767): Unstable sort - slow performance cases)
$(LI $(BUGZILLA 7822): lseek cast$(LPAREN)int$(RPAREN)offset should be lseek cast$(LPAREN)off_t$(RPAREN)offset)
$(LI $(BUGZILLA 7924): reduce does not work with immutable/const as map and filter do)
$(LI $(BUGZILLA 8086): std.stdio is underdocumented)
$(LI $(BUGZILLA 8590): Documentation for "any" and "all" in std.algorithm is incorrect)
$(LI $(BUGZILLA 8721): std.algorithm.remove problem)
$(LI $(BUGZILLA 8730): writeln stops on a nul character, even if passed a D string)
$(LI $(BUGZILLA 8756): Add link to location of curl static library)
$(LI $(BUGZILLA 8764): chunks.transposed causes infinite ranges.)
$(LI $(BUGZILLA 8866): Splitter$(LPAREN)R1, R2$(RPAREN) CANNOT be bidirectional.)
$(LI $(BUGZILLA 8905): DList.Range: Internal error, inconsistent state)
$(LI $(BUGZILLA 8921): Enum arrays should be formatted properly)
$(LI $(BUGZILLA 9015): std.container.DList.opOpAssign missing return)
$(LI $(BUGZILLA 9016): swap$(LPAREN)$(RPAREN) doesn't work with std.container.DList.front and back)
$(LI $(BUGZILLA 9054): std.net.curl byLineAsync and byChunkAsync broken.)
$(LI $(BUGZILLA 9556): Missing underscore in docs for std.string.isNumeric)
$(LI $(BUGZILLA 9878): std.algorithm.cartesianProduct results order)
$(LI $(BUGZILLA 9975): pointsTo asserts because of false pointer in union)
$(LI $(BUGZILLA 10500): Problem with length property when using variant)
$(LI $(BUGZILLA 10502): Can't get fullyQualifiedName of a templated struct)
$(LI $(BUGZILLA 10693): cartesianProduct with over 7 ranges causes segfault at compile time)
$(LI $(BUGZILLA 10779): cartesianProduct leads to heavy code bloat)
$(LI $(BUGZILLA 10798): std.regex: ctRegex unicode set ops unimplemented)
$(LI $(BUGZILLA 10911): std.net.curl.HTTP: should allow user code to indicate content type of POST data)
$(LI $(BUGZILLA 10916): toHash on VariantN not being recognised)
$(LI $(BUGZILLA 10931): etc.c.zlib should properly annotate const parameters)
$(LI $(BUGZILLA 10948): BitArray.opEquals is invalid)
$(LI $(BUGZILLA 11017): std.string/uni.toLower is very slow)
$(LI $(BUGZILLA 11072): BitArray.opCmp is invalid on 64x)
$(LI $(BUGZILLA 11175): Format should support IUnknown classes)
$(LI $(BUGZILLA 11183): Win64: lrint yields bad results)
$(LI $(BUGZILLA 11184): Win64: killing process with invalid handle terimates current process)
$(LI $(BUGZILLA 11192): std.demangle doesn't demangle alias template arguments)
$(LI $(BUGZILLA 11253): std.algorithm.count is not nothrow)
$(LI $(BUGZILLA 11308): Don't use Voldemort types for std.process output)
$(LI $(BUGZILLA 11364): Variant fails to compile with const$(LPAREN)TypeInfo$(RPAREN).)
$(LI $(BUGZILLA 11608): Inadequate documentation for std.getopt.config.passThrough)
$(LI $(BUGZILLA 11698): readf doesn't compile with bool)
$(LI $(BUGZILLA 11705): std.typecons.Typedef is missing proper documentation)
$(LI $(BUGZILLA 11778): format for null does not verify fmt flags.)
$(LI $(BUGZILLA 11784): std.regex: bug in set intersection)
$(LI $(BUGZILLA 11825): An impossible memcpy at CTFE with cartesianProduct.array)
$(LI $(BUGZILLA 11834): std.net.curl: ddoc warnings)
$(LI $(BUGZILLA 11978): std.algorithm canFind uses "value" where it means "needle")
$(LI $(BUGZILLA 12007): cartesianProduct doesn't work with ranges of immutables)
$(LI $(BUGZILLA 12076): ctRegex range violation)
$(LI $(BUGZILLA 12148): std.uuid.parseUUID should document that it changes lvalue input data)
$(LI $(BUGZILLA 12157): Variant opEquals always returns false for classes.)
$(LI $(BUGZILLA 12169): sum$(LPAREN)int[]$(RPAREN) should return a int)
$(LI $(BUGZILLA 12183): using std.algorithm.sort makes valgrind abort)
$(LI $(BUGZILLA 12245): BinaryHeap exhibits quadratic performance in debug mode)
$(LI $(BUGZILLA 12297): std.typecons.Proxy does not properly forward IFTI calls)
$(LI $(BUGZILLA 12309): The template fullyQualifiedName returns wrong result)
$(LI $(BUGZILLA 12349): std.File.flush and error causes segfault after calling close)
$(LI $(BUGZILLA 12356): std.traits.isTypeTuple and isExpressionTuple are poorly documented)
$(LI $(BUGZILLA 12366): Range violation in compile-time regex)
$(LI $(BUGZILLA 12419): assertion failure in std.utf)
$(LI $(BUGZILLA 12434): std.algorithm.sum of immutable array too)
$(LI $(BUGZILLA 12449): Undefined format in std.algorithm.max)
$(LI $(BUGZILLA 12464): DMD/Phobos cannot auto-implement D variadic methods)
$(LI $(BUGZILLA 12477): std.bitmanip should emit informative diagnostics)
$(LI $(BUGZILLA 12557): std.numeric.gcd documentation reports Euler's algorithm, but it uses Euclid's algorithm)
$(LI $(BUGZILLA 12568): std.functional.memoize with constant array argument too)
$(LI $(BUGZILLA 12569): Better error message for std.algorithm.reduce used with two functions and a scalar seed)
$(LI $(BUGZILLA 12582): Non-existant named capture groups cause runtime range violation or segmentation fault in regex)
$(LI $(BUGZILLA 12600): Variant should support coercion to bool)
$(LI $(BUGZILLA 12608): Dead assignment in UUIDParsingException)
$(LI $(BUGZILLA 12609): Useless variable assignment in std.regex)
$(LI $(BUGZILLA 12643): @nogc std.range.dropOne)
$(LI $(BUGZILLA 12668): std.traits.functionAttributes should use the new getFunctionAttributes trait)
$(LI $(BUGZILLA 12691): std.regex.bmatch bug in empty OR operator inside of $(LPAREN)$(RPAREN)*)
$(LI $(BUGZILLA 12731): Infinite range slices are not themselves sliceable)
$(LI $(BUGZILLA 12747): std.regex bug in the parser allows reference to open groups.)
$(LI $(BUGZILLA 12771): opIndex on static arrays in a Variant is not implemented.)
$(LI $(BUGZILLA 12781): process.d: "Executable file not found" is supposed to show executable name but fails)
$(LI $(BUGZILLA 12796): std.string toLower/toUpper array conversion.)
$(LI $(BUGZILLA 12806): Does std.traits.isArray include associative arrays?)
$(LI $(BUGZILLA 12828): Fix SimpleTimeZone.utcOffset so that it has the correct return type)
$(LI $(BUGZILLA 12846): Phobos git HEAD: std.datetime spewing out tons of deprecation messages)
$(LI $(BUGZILLA 12853): std.encoding EncodingSchemeUtf16Native and EncodingSchemeUtf32Native decode$(LPAREN)$(RPAREN) and SafeDecode$(LPAREN)$(RPAREN) wrong stripping length)
$(LI $(BUGZILLA 12875): [unittest] std.datetime fails: Not a valid tzdata file.)
$(LI $(BUGZILLA 12898): `std.process.browse` expects URL to be encoded in CP_ACP on Windows instead of UTF-8)
$(LI $(BUGZILLA 12921): Module std.getopt does not respect property syntax)
$(LI $(BUGZILLA 12923): UTF exception in stride even though passes validate.)
$(LI $(BUGZILLA 12996): SList: linearRemove cannot remove root node)
$(LI $(BUGZILLA 13000): Casts should be removed to utilize features of inout)
$(LI $(BUGZILLA 13068): std.typecons.Unique should disable postblit)
$(LI $(BUGZILLA 13100): std.process.setCLOEXEC$(LPAREN)$(RPAREN) throws on invalid file descriptor)
$(LI $(BUGZILLA 13151): std.range.take template constraint ambiguity)
$(LI $(BUGZILLA 13163): std.conv.parse misses overflow when it doesn't result in a smaller value)
$(LI $(BUGZILLA 13171): std.algorithm.until$(LPAREN)range, sentinel, OpenRight.no$(RPAREN) doesn't propagate popping of sentinel to range)