2
2
3
3
$(CHANGELOG_NAV_INJECT)
4
4
5
- $(VERSION Oct 01, 2022, =================================================,
5
+ $(VERSION Nov 01, 2022, =================================================,
6
6
7
7
$(CHANGELOG_HEADER_STATISTICS
8
- $(VER) comes with 32 major changes and 697 fixed Bugzilla issues.
8
+ $(VER) comes with 37 major changes and 734 fixed Bugzilla issues.
9
9
A huge thanks goes to the
10
- $(LINK2 #contributors, 297 contributors)
10
+ $(LINK2 #contributors, 300 contributors)
11
11
who made $(VER) possible.)
12
12
13
13
$(BUGSTITLE_TEXT_HEADER Compiler changes,
14
14
15
15
$(LI $(RELATIVE_LINK2 bitfields,Add bit fields to D))
16
16
$(LI $(RELATIVE_LINK2 class_instance_alignment,Added `__traits(classInstanceAlignment)`))
17
17
$(LI $(RELATIVE_LINK2 crt_constructor_signature,Relaxed `pragma(crt_constructor)` / `pragma(crt_destructor)` linkage check))
18
+ $(LI $(RELATIVE_LINK2 d_optimized,Add predefined version `D_Optimized` when compiling with `-O`))
18
19
$(LI $(RELATIVE_LINK2 deprecate_throwing_nothrow_contracts,Throwing from contracts of `nothrow` functions has been deprecated))
19
20
$(LI $(RELATIVE_LINK2 deprecate_version_int,Using integers for `version` or `debug` conditions has been deprecated))
20
21
$(LI $(RELATIVE_LINK2 dip1000_deprecation_warnings,Print deprecations for `scope` pointer errors))
@@ -28,8 +29,17 @@ $(LI $(RELATIVE_LINK2 previewInLink,`-preview=in` can now be used with `extern(C
28
29
29
30
)
30
31
32
+ $(BUGSTITLE_TEXT_HEADER Runtime changes,
33
+
34
+ $(LI $(RELATIVE_LINK2 cpuid-add-avx512f,Added avx512f detection to `core.cpuid`))
35
+ $(LI $(RELATIVE_LINK2 drt-oncycle-deprecate,`--DRT-oncycle=deprecate` is removed))
36
+ $(LI $(RELATIVE_LINK2 posix_gc_signals,Posix (excl. Darwin): Switch default GC signals from SIGUSR1/2 to SIGRTMIN/SIGRTMIN+1))
37
+
38
+ )
39
+
31
40
$(BUGSTITLE_TEXT_HEADER Library changes,
32
41
42
+ $(LI $(RELATIVE_LINK2 borrow_for_refcounted,Added `SafeRefCounted`, that can be used in `@safe` with `-preview=dip1000`.))
33
43
$(LI $(RELATIVE_LINK2 logger,Move logger out of experimental.))
34
44
$(LI $(RELATIVE_LINK2 logger_remove_compile_time_loglevel,remove std.experimental.logger's capability to set the minimal LogLevel at compile time))
35
45
$(LI $(RELATIVE_LINK2 logger_sharedLog_returning_shared_logger,Change std.experimental.logger.core.sharedLog to return shared(Logger)))
@@ -111,6 +121,15 @@ using the default `void ()` signature.
111
121
)
112
122
)
113
123
124
+ $(LI $(LNAME2 d_optimized,Add predefined version `D_Optimized` when compiling with `-O`)
125
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/d_optimized.dd)
126
+ $(P
127
+ It allows code to distinguish whether it's being compiled with optimizations enabled (the `-O` flag was provided).
128
+ This is orthogonal to whether `-release` mode is active - for that see the
129
+ predefined versions `assert`, `D_NoBoundsChecks`, `D_Invariants`, etc.
130
+ )
131
+ )
132
+
114
133
$(LI $(LNAME2 deprecate_throwing_nothrow_contracts,Throwing from contracts of `nothrow` functions has been deprecated)
115
134
$(CHANGELOG_SOURCE_FILE dmd, changelog/deprecate_throwing_nothrow_contracts.dd)
116
135
$(P
@@ -379,10 +398,108 @@ as `in` will allow to bind rvalues to `const T&`, as in C++.
379
398
)
380
399
381
400
401
+ )
402
+
403
+ $(BUGSTITLE_TEXT_BODY Runtime changes,
404
+
405
+ $(LI $(LNAME2 cpuid-add-avx512f,Added avx512f detection to `core.cpuid`)
406
+ $(CHANGELOG_SOURCE_FILE dmd, druntime/changelog/cpuid-add-avx512f.dd)
407
+ $(P
408
+ The feature flag `core.cpuid.avx512f` has been added to allow detection at
409
+ run-time CPUs with 512-bit vector support.
410
+ )
411
+ )
412
+
413
+ $(LI $(LNAME2 drt-oncycle-deprecate,`--DRT-oncycle=deprecate` is removed)
414
+ $(CHANGELOG_SOURCE_FILE dmd, druntime/changelog/drt-oncycle-deprecate.dd)
415
+ $(P
416
+ The option was [introduced in 2.072.2](https://dlang.org/changelog/2.072.2.html#drt-cycle-deprecated) to help transition code that relied on the old faulty cycle checker for module constructors.
417
+ It now prints a warning and does the same as the default, `--DRT-oncycle=abort`.
418
+ See also: $(DDSUBLINK spec/module, order_of_static_ctor, Order of Static Construction) in the specification.
419
+ )
420
+ )
421
+
422
+ $(LI $(LNAME2 posix_gc_signals,Posix (excl. Darwin): Switch default GC signals from SIGUSR1/2 to SIGRTMIN/SIGRTMIN+1)
423
+ $(CHANGELOG_SOURCE_FILE dmd, druntime/changelog/posix_gc_signals.dd)
424
+ $(P
425
+ As the SIGUSR ones might be used by 'system' libraries (e.g., Android
426
+ Dalvik VM or LLVM libFuzzer), while the SIGRT ones are reserved for
427
+ user-defined purposes and less likely to collide.
428
+ )
429
+
430
+ $(P
431
+ The used signals can still be customized with an early call to
432
+ `core.thread.osthread.thread_setGCSignals()`.
433
+ )
434
+ )
435
+
436
+
382
437
)
383
438
384
439
$(BUGSTITLE_TEXT_BODY Library changes,
385
440
441
+ $(LI $(LNAME2 borrow_for_refcounted,Added `SafeRefCounted`, that can be used in `@safe` with `-preview=dip1000`.)
442
+ $(CHANGELOG_SOURCE_FILE phobos, changelog/borrow_for_refcounted.dd)
443
+ $(P
444
+ `RefCounted` is only available for `@system` code, because of the possibility of
445
+ escaping a reference to its payload past the end of its lifetime. a modified
446
+ copy of it, `std.typecons.SafeRefCounted` has been added. Also added is a
447
+ `borrow` function, that lets one safely access and modify the payload.
448
+ `-preview=dip1000` prevents escaping a reference to it in `@safe` code.
449
+ )
450
+
451
+ -------
452
+ @safe pure nothrow void fun()
453
+ {
454
+ import std.typecons;
455
+
456
+ auto rcInt = safeRefCounted(5);
457
+ assert(rcInt.borrow!(theInt => theInt) == 5);
458
+ auto sameInt = rcInt;
459
+ assert(sameInt.borrow!"a" == 5);
460
+
461
+ // using `ref` in the function
462
+ auto arr = [0, 1, 2, 3, 4, 5, 6];
463
+ sameInt.borrow!(ref (x) => arr[x]) = 10;
464
+ assert(arr == [0, 1, 2, 3, 4, 10, 6]);
465
+
466
+ // modifying the payload via an alias
467
+ sameInt.borrow!"a*=2";
468
+ assert(rcInt.borrow!"a" == 10);
469
+ }
470
+ -------
471
+
472
+ $(P
473
+ Direct access to the payload unfortunately has to be `@system`, though. While
474
+ `-dip1000` could prevent escaping the reference, it is possible to destroy the
475
+ last reference before the end of it's scope:
476
+ )
477
+
478
+ -------
479
+ int destroyFirstAndUseLater()
480
+ {
481
+ import std.typecons;
482
+
483
+ auto rc = SafeRefCounted!int(123);
484
+ int* ptr = &rc.refCountedPayload();
485
+ destroy(rc);
486
+ return *ptr; // Reads from freed memory. Don't do this.
487
+ }
488
+ -------
489
+
490
+ $(P
491
+ As a side effect, this enabled us to make $(REF dirEntries, std, file) `@safe`
492
+ with `-preview=dip1000`.
493
+ )
494
+
495
+ $(P
496
+ Some member functions of `RefCounted` that are `@safe` are not so in
497
+ `SafeRefCounted`. The `RefCounted` type and `refCounted` function are still
498
+ available for the old behaviour. However, their main purpose is backwards
499
+ compatibility. They are not recommended for new code.
500
+ )
501
+ )
502
+
386
503
$(LI $(LNAME2 logger,Move logger out of experimental.)
387
504
$(CHANGELOG_SOURCE_FILE phobos, changelog/logger.dd)
388
505
$(P
@@ -730,6 +847,8 @@ $(LI $(BUGZILLA 23076): SIMD assert fail with -inline -O converting float to sho
730
847
$(LI $(BUGZILLA 23247): Deprecation: argument 0.0L for format specification "%La" must be double, not real)
731
848
$(LI $(BUGZILLA 23271): `goto` skips declaration of variable `bugred.A.test.__appendtmp4`)
732
849
$(LI $(BUGZILLA 23291): Members of arrays of shared classes cannot be compared)
850
+ $(LI $(BUGZILLA 23337): Wrongly elided postblit/copy ctor for array construction $(LPAREN)_d_arrayctor lowering$(RPAREN))
851
+ $(LI $(BUGZILLA 23386): Segfault on enum member UDA inside template)
733
852
)
734
853
$(BUGSTITLE_BUGZILLA DMD Compiler bug fixes,
735
854
@@ -756,6 +875,7 @@ $(LI $(BUGZILLA 11653): No error when forgetting break with range cases.)
756
875
$(LI $(BUGZILLA 12962): osver.mak should use isainfo on Solaris to determine model)
757
876
$(LI $(BUGZILLA 13123): Disallow throwing contracts for nothrow functions)
758
877
$(LI $(BUGZILLA 13661): static array init does not call destructors)
878
+ $(LI $(BUGZILLA 13732): Regular templates can use "template this", and they allow any type to be passed)
759
879
$(LI $(BUGZILLA 14024): [CTFE] unstable postblit/destructor call order on static array assignment)
760
880
$(LI $(BUGZILLA 14617): PTHREAD_MUTEX_INITIALIZER does not work on OSX)
761
881
$(LI $(BUGZILLA 15290): length of associative array literal with duplicate keys is wrong)
@@ -770,7 +890,6 @@ $(LI $(BUGZILLA 19178): Static initialization of 2d static arrays in structs pro
770
890
$(LI $(BUGZILLA 19285): false positive GC inferred)
771
891
$(LI $(BUGZILLA 19635): -checkaction=context not working with attributes)
772
892
$(LI $(BUGZILLA 19783): Fail to emplace struct with betterC)
773
- $(LI $(BUGZILLA 19812): nested class reference causes dangling reference to out-of-scope struct)
774
893
$(LI $(BUGZILLA 19831): throw/catch in scope$(LPAREN)exit$(RPAREN) crashes with illegal instruction)
775
894
$(LI $(BUGZILLA 20019): Symbol not found: _dyld_enumerate_tlv_storage on macOS 10.15)
776
895
$(LI $(BUGZILLA 20048): [Windows] Program segfaults when running tests)
@@ -801,14 +920,20 @@ $(LI $(BUGZILLA 22610): ImportC: 3 extra initializer$(LPAREN)s$(RPAREN) for stru
801
920
$(LI $(BUGZILLA 22626): Can't use synchronized member functions with -nosharedaccess)
802
921
$(LI $(BUGZILLA 22652): importC: Braceless initializer of nested struct is rejected.)
803
922
$(LI $(BUGZILLA 22664): Disassembler mistakes rdtscp for invlpg ECX)
923
+ $(LI $(BUGZILLA 22674): ImportC: compatible types declared in different translation units are not treated equivalent in D.)
804
924
$(LI $(BUGZILLA 22680): @safe hole with destructors)
805
925
$(LI $(BUGZILLA 22706): Bad error on explicit instantiation of function template with auto ref parameter)
806
926
$(LI $(BUGZILLA 22717): object.TypeInfo_Struct.equals swaps lhs and rhs parameters)
807
927
$(LI $(BUGZILLA 22724): ImportC: VC extension __pragma$(LPAREN)pack$(RPAREN) is not implemented)
808
928
$(LI $(BUGZILLA 22756): ImportC: no __builtin_offsetof)
929
+ $(LI $(BUGZILLA 22784): pragma$(LPAREN)printf$(RPAREN) applies to nested functions)
809
930
$(LI $(BUGZILLA 22830): Solaris: error: module 'core.stdc.math' import 'signbit' not found)
810
931
$(LI $(BUGZILLA 22846): [REG 2.066] SIGBUS, Bus error in _d_newarrayiT)
811
932
$(LI $(BUGZILLA 22865): __traits$(LPAREN)compiles$(RPAREN) affects inferrence of attributes)
933
+ $(LI $(BUGZILLA 22875): importC: cannot assign const typedef with pointers to non-const one)
934
+ $(LI $(BUGZILLA 22925): importC: multi-dimensional array is not a static and cannot have static initializer)
935
+ $(LI $(BUGZILLA 22952): Compiler fails to find package.d modules via -mv map)
936
+ $(LI $(BUGZILLA 22973): importC: sizeof with array and pointer access gives array type has incomplete element type)
812
937
$(LI $(BUGZILLA 23006): importC: dmd segfaults on static initializer for multi-dimensional array inside struct)
813
938
$(LI $(BUGZILLA 23007): importC: dmd segfaults for extra braces in array initializer)
814
939
$(LI $(BUGZILLA 23009): [CODEGEN][SIMD] SIMD + optimizations + inlining + double)
@@ -867,9 +992,23 @@ $(LI $(BUGZILLA 23252): Deprecation: format specifier "%[]]" is invalid)
867
992
$(LI $(BUGZILLA 23254): Deprecation: format specifier "%S" and "%C" are invalid)
868
993
$(LI $(BUGZILLA 23256): must supply -mscrtlib manually when compiling for Windows)
869
994
$(LI $(BUGZILLA 23262): typesafe variadic function parameter cannot infer return)
995
+ $(LI $(BUGZILLA 23293): ImportC: _Bool bit fields layout does not match gcc)
870
996
$(LI $(BUGZILLA 23308): Can't resolve overload of varargs function if one parameter is the result of a ternary expression)
871
997
$(LI $(BUGZILLA 23327): [ICE] SEGV in AssocArray!$(LPAREN)Identifier, Dsymbol$(RPAREN).AssocArray.opIndex$(LPAREN)const$(LPAREN)Identifier$(RPAREN)$(RPAREN) at src/dmd/root/aav.d:313)
998
+ $(LI $(BUGZILLA 23331): implicit cast from noreturn crashes compiler in various ways)
872
999
$(LI $(BUGZILLA 23338): braceless subarray initalizers for struct fields fails)
1000
+ $(LI $(BUGZILLA 23340): std.path: expandTilde erroneously raises onOutOfMemory on failed getpwam_r$(LPAREN)$(RPAREN))
1001
+ $(LI $(BUGZILLA 23342): ImportC: Array compound literals use the GC)
1002
+ $(LI $(BUGZILLA 23343): ImportC: functions declared with asm label to set symbol name gets extra underscore prepended)
1003
+ $(LI $(BUGZILLA 23345): ImportC: out of order designated initializers initialize to wrong value)
1004
+ $(LI $(BUGZILLA 23346): ImportC: pragma pack is not popped)
1005
+ $(LI $(BUGZILLA 23347): ImportC: pragma pack causes asm label to set symbol name to be ignored)
1006
+ $(LI $(BUGZILLA 23348): not handling braceless sub structs in initializers)
1007
+ $(LI $(BUGZILLA 23351): A bunch of Mayonix's dmd-segfaulting programs)
1008
+ $(LI $(BUGZILLA 23355): invalid template parameter loses error location in some cases)
1009
+ $(LI $(BUGZILLA 23357): ImportC: compatible types with definitions leads to redeclaration error when used from D.)
1010
+ $(LI $(BUGZILLA 23379): Cast of expressions with type noreturn result in ice)
1011
+ $(LI $(BUGZILLA 23380): [dip1000] class parameter should not be treated as ref qua lifetime)
873
1012
)
874
1013
$(BUGSTITLE_BUGZILLA DMD Compiler enhancements,
875
1014
@@ -879,11 +1018,13 @@ $(LI $(BUGZILLA 7372): Error provides too little information to diagnose the pro
879
1018
$(LI $(BUGZILLA 9726): Add minimum % coverage required for -cov testing)
880
1019
$(LI $(BUGZILLA 12330): array.reserve at compile time too)
881
1020
$(LI $(BUGZILLA 13138): add peek/poke as compiler intrinsics)
1021
+ $(LI $(BUGZILLA 14690): pragma$(LPAREN)inline, true$(RPAREN) functions must have their bodies emitted in the .di file)
882
1022
$(LI $(BUGZILLA 14755): Could -profile=gc also give the number of allocations that led to X bytes being allocated?)
883
1023
$(LI $(BUGZILLA 16394): TypeInfo.init$(LPAREN)$(RPAREN) for static arrays returns single element instead of whole array)
884
1024
$(LI $(BUGZILLA 16558): [Mir] Generic unaligned load/store like $(LPAREN)like LDC loadUnaligned and storeUnaligned$(RPAREN))
885
1025
$(LI $(BUGZILLA 16701): Remove Restriction of "package.d" Source File Module Forced to All Lowercase)
886
1026
$(LI $(BUGZILLA 17575): named mixin template error message)
1027
+ $(LI $(BUGZILLA 21243): Allow lambdas to return auto ref)
887
1028
$(LI $(BUGZILLA 21673): [SIMD][Win64] Wrong codegen for _mm_move_ss)
888
1029
$(LI $(BUGZILLA 22880): importC: support __restrict__ __signed__ __asm__)
889
1030
$(LI $(BUGZILLA 22911): dtoh: make include directives sorted for generated headers)
@@ -897,6 +1038,9 @@ $(LI $(BUGZILLA 23216): Better Error Message For foreach_reverse Without Bidirec
897
1038
$(LI $(BUGZILLA 23284): Enhance floating point not representable error message)
898
1039
$(LI $(BUGZILLA 23295): [dip1000] explain why scope inference failed)
899
1040
$(LI $(BUGZILLA 23306): @disable new$(LPAREN)$(RPAREN) ought not disable `scope A = new A`)
1041
+ $(LI $(BUGZILLA 23369): Confusing error message for duplicate import)
1042
+ $(LI $(BUGZILLA 23376): Allow multi-code-point HTML entities)
1043
+ $(LI $(BUGZILLA 23384): Suggest calling matching base class method when hidden)
900
1044
)
901
1045
$(BUGSTITLE_BUGZILLA Phobos regression fixes,
902
1046
@@ -913,6 +1057,8 @@ $(LI $(BUGZILLA 3798): core.cpuid locks systems with Xeon E5530 CPU)
913
1057
$(LI $(BUGZILLA 9025): core.thread.Fiber seems to crash on Win64)
914
1058
$(LI $(BUGZILLA 10469): WinAPI declarations in std.process should be moved to core.sys.windows.windows)
915
1059
$(LI $(BUGZILLA 11192): std.demangle doesn't demangle alias template arguments)
1060
+ $(LI $(BUGZILLA 14543): std.algorithm.searching.until does not handle range sentinels nicely)
1061
+ $(LI $(BUGZILLA 16034): map should be possible with a reference only)
916
1062
$(LI $(BUGZILLA 16232): std.experimental.logger.core.sharedLog isn't thread-safe)
917
1063
$(LI $(BUGZILLA 17966): chunkBy cannot accept an input range $(LPAREN)from multiwayMerge$(RPAREN))
918
1064
$(LI $(BUGZILLA 18631): std.random.choice does not work with const arrays)
@@ -925,16 +1071,20 @@ $(LI $(BUGZILLA 23250): Unicode regional indicators are not paired correctly)
925
1071
$(LI $(BUGZILLA 23270): std.random.dice is poorly documented)
926
1072
$(LI $(BUGZILLA 23288): zlib: Fix potential buffer overflow)
927
1073
$(LI $(BUGZILLA 23324): Incorrect source link in std.format docs)
1074
+ $(LI $(BUGZILLA 23350): Nondeterministic test failure in std.concurrency)
1075
+ $(LI $(BUGZILLA 23362): Permutations should be a forward range)
928
1076
)
929
1077
$(BUGSTITLE_BUGZILLA Phobos enhancements,
930
1078
931
1079
$(LI $(BUGZILLA 13893): "rawRead must take a non-empty buffer")
932
1080
$(LI $(BUGZILLA 15128): "IP_ADD_MEMBERSHIP" error in winsock2.d)
933
1081
$(LI $(BUGZILLA 18735): all versions of find and canfind should identify usage of predicate)
934
1082
$(LI $(BUGZILLA 20869): `std.algorithm.mutation : move` is overly trusting of `opPostMove`)
1083
+ $(LI $(BUGZILLA 21000): -preview=nosharedaccess precludes use of stdin,stdout,stderr)
935
1084
$(LI $(BUGZILLA 23101): [std.sumtype] canMatch does not account ref)
936
1085
$(LI $(BUGZILLA 23298): std.string wrap wraps early)
937
1086
$(LI $(BUGZILLA 23333): DList range can be @nogc)
1087
+ $(LI $(BUGZILLA 23370): std.base64 can have more @nogc functions)
938
1088
)
939
1089
$(BUGSTITLE_BUGZILLA Druntime regression fixes,
940
1090
@@ -1398,6 +1548,7 @@ $(BUGSTITLE_BUGZILLA dlang.org bug fixes,
1398
1548
1399
1549
$(LI $(BUGZILLA 3093): Object.factory has incomplete documentation)
1400
1550
$(LI $(BUGZILLA 13844): core.stdc.config isn't listed in the docs)
1551
+ $(LI $(BUGZILLA 14542): Table of contents in specification PDF is broken)
1401
1552
$(LI $(BUGZILLA 15379): "final" attribute on function parameter)
1402
1553
$(LI $(BUGZILLA 15476): DDOC_UNDEFINED_MACRO is undocumented)
1403
1554
$(LI $(BUGZILLA 17324): Floating point 1/$(LPAREN)1/x$(RPAREN) > 0 if x > 0 not generally true)
@@ -1422,19 +1573,22 @@ $(LI $(BUGZILLA 23276): DOC: ">" instead of ">" in dmd-windows.html)
1422
1573
$(LI $(BUGZILLA 23296): Value Range Propagation not documented)
1423
1574
$(LI $(BUGZILLA 23314): Language spec falsely states that struct field invariants are checked)
1424
1575
$(LI $(BUGZILLA 23325): Assigning dynamic array to static array not documented)
1576
+ $(LI $(BUGZILLA 23358): Link unusable due to space insertion)
1425
1577
)
1426
1578
$(BUGSTITLE_BUGZILLA dlang.org enhancements,
1427
1579
1428
1580
$(LI $(BUGZILLA 15286): is$(LPAREN)typeof$(LPAREN)symbol$(RPAREN)$(RPAREN))
1429
1581
$(LI $(BUGZILLA 19036): .tupleof order guarantee)
1582
+ $(LI $(BUGZILLA 22141): Property .capacity is not listed in the array properties section)
1430
1583
$(LI $(BUGZILLA 23186): wchar/dchar do not have their endianess defined)
1584
+ $(LI $(BUGZILLA 23359): Rename InOut to ParameterStorageClass)
1431
1585
)
1432
1586
$(BUGSTITLE_BUGZILLA Tools bug fixes,
1433
1587
1434
1588
$(LI $(BUGZILLA 18208): demangle RangeError@src/core/demangle.d$(LPAREN)230$(RPAREN))
1435
1589
)
1436
1590
)
1437
- $(D_CONTRIBUTORS_HEADER 297 )
1591
+ $(D_CONTRIBUTORS_HEADER 300 )
1438
1592
$(D_CONTRIBUTORS
1439
1593
$(D_CONTRIBUTOR 0l-l0)
1440
1594
$(D_CONTRIBUTOR 12345swordy)
@@ -1560,6 +1714,7 @@ $(D_CONTRIBUTORS
1560
1714
$(D_CONTRIBUTOR Jacob Carlborg)
1561
1715
$(D_CONTRIBUTOR Jakob Bornecrantz)
1562
1716
$(D_CONTRIBUTOR Jakob Øvrum)
1717
+ $(D_CONTRIBUTOR james)
1563
1718
$(D_CONTRIBUTOR Jan Jurzitza)
1564
1719
$(D_CONTRIBUTOR Jasmine Hegman)
1565
1720
$(D_CONTRIBUTOR Jason Evans)
@@ -1654,6 +1809,7 @@ $(D_CONTRIBUTORS
1654
1809
$(D_CONTRIBUTOR Philpax)
1655
1810
$(D_CONTRIBUTOR Puneet Goel)
1656
1811
$(D_CONTRIBUTOR qchikara)
1812
+ $(D_CONTRIBUTOR Quirin F. Schroll)
1657
1813
$(D_CONTRIBUTOR Radu Racariu)
1658
1814
$(D_CONTRIBUTOR Rainer Schuetze)
1659
1815
$(D_CONTRIBUTOR Rasmus Thomsen)
@@ -1731,6 +1887,7 @@ $(D_CONTRIBUTORS
1731
1887
$(D_CONTRIBUTOR Yuxuan Shui)
1732
1888
$(D_CONTRIBUTOR Ömer Faruk IRMAK)
1733
1889
$(D_CONTRIBUTOR Ömer Faruk Irmak)
1890
+ $(D_CONTRIBUTOR Ömer Faruk IRMAK)
1734
1891
$(D_CONTRIBUTOR Михаил Страшун)
1735
1892
$(D_CONTRIBUTOR سليمان السهمي (Suleyman Sahmi))
1736
1893
)
0 commit comments