@@ -5,35 +5,35 @@ $(CHANGELOG_NAV_INJECT)
5
5
$(VERSION Nov 01, 2022, =================================================,
6
6
7
7
$(CHANGELOG_HEADER_STATISTICS
8
- $(VER) comes with 37 major changes and 734 fixed Bugzilla issues.
8
+ $(VER) comes with 37 major changes and 736 fixed Bugzilla issues.
9
9
A huge thanks goes to the
10
- $(LINK2 #contributors, 300 contributors)
10
+ $(LINK2 #contributors, 299 contributors)
11
11
who made $(VER) possible.)
12
12
13
13
$(BUGSTITLE_TEXT_HEADER Compiler changes,
14
14
15
- $(LI $(RELATIVE_LINK2 bitfields,Add bit fields to D))
16
- $(LI $(RELATIVE_LINK2 class_instance_alignment,Added `__traits(classInstanceAlignment)`))
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`))
19
- $(LI $(RELATIVE_LINK2 deprecate_throwing_nothrow_contracts,Throwing from contracts of `nothrow` functions has been deprecated))
20
- $(LI $(RELATIVE_LINK2 deprecate_version_int,Using integers for `version` or `debug` conditions has been deprecated))
21
- $(LI $(RELATIVE_LINK2 dip1000_deprecation_warnings,Print deprecations for `scope` pointer errors))
22
- $(LI $(RELATIVE_LINK2 dtoh-improvements,Improvements for the C++ header generation))
23
- $(LI $(RELATIVE_LINK2 fix-immutable-conv,`-preview=fixImmmutableConv` has been added))
24
- $(LI $(RELATIVE_LINK2 fix22134,Returning a discarded void value from a function is now deprecated))
25
- $(LI $(RELATIVE_LINK2 importc_typeof,ImportC now recognizes the `typeof(...)` operator))
26
- $(LI $(RELATIVE_LINK2 markdown,Removed the `-transition=markdown` and `-revert=markdown` switches))
27
- $(LI $(RELATIVE_LINK2 new-aa,`new` can now allocate an associative array))
28
- $(LI $(RELATIVE_LINK2 previewInLink,`-preview=in` can now be used with `extern(C++)`, disabled for other non-D linkage))
15
+ $(LI $(RELATIVE_LINK2 dmd. bitfields,Add bit fields to D))
16
+ $(LI $(RELATIVE_LINK2 dmd. class_instance_alignment,Added `__traits(classInstanceAlignment)`))
17
+ $(LI $(RELATIVE_LINK2 dmd. crt_constructor_signature,Relaxed `pragma(crt_constructor)` / `pragma(crt_destructor)` linkage check))
18
+ $(LI $(RELATIVE_LINK2 dmd. d_optimized,Add predefined version `D_Optimized` when compiling with `-O`))
19
+ $(LI $(RELATIVE_LINK2 dmd. deprecate_throwing_nothrow_contracts,Throwing from contracts of `nothrow` functions has been deprecated))
20
+ $(LI $(RELATIVE_LINK2 dmd. deprecate_version_int,Using integers for `version` or `debug` conditions has been deprecated))
21
+ $(LI $(RELATIVE_LINK2 dmd. dip1000_deprecation_warnings,Print deprecations for `scope` pointer errors))
22
+ $(LI $(RELATIVE_LINK2 dmd. dtoh-improvements,Improvements for the C++ header generation))
23
+ $(LI $(RELATIVE_LINK2 dmd. fix-immutable-conv,`-preview=fixImmmutableConv` has been added))
24
+ $(LI $(RELATIVE_LINK2 dmd. fix22134,Returning a discarded void value from a function is now deprecated))
25
+ $(LI $(RELATIVE_LINK2 dmd. importc_typeof,ImportC now recognizes the `typeof(...)` operator))
26
+ $(LI $(RELATIVE_LINK2 dmd. markdown,Removed the `-transition=markdown` and `-revert=markdown` switches))
27
+ $(LI $(RELATIVE_LINK2 dmd. new-aa,`new` can now allocate an associative array))
28
+ $(LI $(RELATIVE_LINK2 dmd. previewInLink,`-preview=in` can now be used with `extern(C++)`, disabled for other non-D linkage))
29
29
30
30
)
31
31
32
32
$(BUGSTITLE_TEXT_HEADER Runtime changes,
33
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))
34
+ $(LI $(RELATIVE_LINK2 druntime. cpuid-add-avx512f,Added avx512f detection to `core.cpuid`))
35
+ $(LI $(RELATIVE_LINK2 druntime. drt-oncycle-deprecate,`--DRT-oncycle=deprecate` is removed))
36
+ $(LI $(RELATIVE_LINK2 druntime. posix_gc_signals,Posix (excl. Darwin): Switch default GC signals from SIGUSR1/2 to SIGRTMIN/SIGRTMIN+1))
37
37
38
38
)
39
39
@@ -73,8 +73,8 @@ $(CHANGELOG_SEP_HEADER_TEXT)
73
73
74
74
$(BUGSTITLE_TEXT_BODY Compiler changes,
75
75
76
- $(LI $(LNAME2 bitfields,Add bit fields to D)
77
- $(CHANGELOG_SOURCE_FILE dmd, changelog/bitfields.dd)
76
+ $(LI $(LNAME2 dmd. bitfields,Add bit fields to D)
77
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. bitfields.dd)
78
78
$(P
79
79
They work just like the bit fields in ImportC do.
80
80
)
@@ -100,8 +100,8 @@ int vaporator(B b)
100
100
---
101
101
)
102
102
103
- $(LI $(LNAME2 class_instance_alignment,Added `__traits(classInstanceAlignment)`)
104
- $(CHANGELOG_SOURCE_FILE dmd, changelog/class_instance_alignment.dd)
103
+ $(LI $(LNAME2 dmd. class_instance_alignment,Added `__traits(classInstanceAlignment)`)
104
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. class_instance_alignment.dd)
105
105
$(P
106
106
To complement `__traits(classInstanceSize)`, providing the required
107
107
alignment for manual buffers etc.:
@@ -113,25 +113,25 @@ void[__traits(classInstanceSize, C)] buffer;
113
113
---
114
114
)
115
115
116
- $(LI $(LNAME2 crt_constructor_signature,Relaxed `pragma(crt_constructor)` / `pragma(crt_destructor)` linkage check)
117
- $(CHANGELOG_SOURCE_FILE dmd, changelog/crt_constructor_signature.dd)
116
+ $(LI $(LNAME2 dmd. crt_constructor_signature,Relaxed `pragma(crt_constructor)` / `pragma(crt_destructor)` linkage check)
117
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. crt_constructor_signature.dd)
118
118
$(P
119
119
`extern(C)` isn't a requirement for CRT con/destructors anymore when
120
120
using the default `void ()` signature.
121
121
)
122
122
)
123
123
124
- $(LI $(LNAME2 d_optimized,Add predefined version `D_Optimized` when compiling with `-O`)
125
- $(CHANGELOG_SOURCE_FILE dmd, changelog/d_optimized.dd)
124
+ $(LI $(LNAME2 dmd. d_optimized,Add predefined version `D_Optimized` when compiling with `-O`)
125
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. d_optimized.dd)
126
126
$(P
127
127
It allows code to distinguish whether it's being compiled with optimizations enabled (the `-O` flag was provided).
128
128
This is orthogonal to whether `-release` mode is active - for that see the
129
129
predefined versions `assert`, `D_NoBoundsChecks`, `D_Invariants`, etc.
130
130
)
131
131
)
132
132
133
- $(LI $(LNAME2 deprecate_throwing_nothrow_contracts,Throwing from contracts of `nothrow` functions has been deprecated)
134
- $(CHANGELOG_SOURCE_FILE dmd, changelog/deprecate_throwing_nothrow_contracts.dd)
133
+ $(LI $(LNAME2 dmd. deprecate_throwing_nothrow_contracts,Throwing from contracts of `nothrow` functions has been deprecated)
134
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. deprecate_throwing_nothrow_contracts.dd)
135
135
$(P
136
136
Up until now, the compiler accepted `in` and `out` contracts of `nothrow`
137
137
functions to throw exceptions and call throwing functions. As this breaks
164
164
---
165
165
)
166
166
167
- $(LI $(LNAME2 deprecate_version_int,Using integers for `version` or `debug` conditions has been deprecated)
168
- $(CHANGELOG_SOURCE_FILE dmd, changelog/deprecate_version_int.dd)
167
+ $(LI $(LNAME2 dmd. deprecate_version_int,Using integers for `version` or `debug` conditions has been deprecated)
168
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. deprecate_version_int.dd)
169
169
$(P
170
170
The problem is that it only provides a single number namespace without any meaning.
171
171
It's better to use version identifiers describing the feature they enable.
190
190
---
191
191
)
192
192
193
- $(LI $(LNAME2 dip1000_deprecation_warnings,Print deprecations for `scope` pointer errors)
194
- $(CHANGELOG_SOURCE_FILE dmd, changelog/dip1000_deprecation_warnings.dd)
193
+ $(LI $(LNAME2 dmd. dip1000_deprecation_warnings,Print deprecations for `scope` pointer errors)
194
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. dip1000_deprecation_warnings.dd)
195
195
$(P
196
196
The `scope` attribute has existed for a long time, but the compiler would only verify its semantics when the `-preview=dip1000` switch was passed, to avoid breaking code.
197
197
Pointers or references stored in a scope variable are not allowed to escape the scope in which the variable is defined.
247
247
)
248
248
)
249
249
250
- $(LI $(LNAME2 dtoh-improvements,Improvements for the C++ header generation)
251
- $(CHANGELOG_SOURCE_FILE dmd, changelog/dtoh-improvements.dd)
250
+ $(LI $(LNAME2 dmd. dtoh-improvements,Improvements for the C++ header generation)
251
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. dtoh-improvements.dd)
252
252
$(P
253
253
The following features/bugfixes/improvements were implemented for the
254
254
experimental C++ header generator:
@@ -267,8 +267,8 @@ Note: The header generator is still considered experimental, so please submit
267
267
)
268
268
)
269
269
270
- $(LI $(LNAME2 fix-immutable-conv,`-preview=fixImmmutableConv` has been added)
271
- $(CHANGELOG_SOURCE_FILE dmd, changelog/fix-immutable-conv.dd)
270
+ $(LI $(LNAME2 dmd. fix-immutable-conv,`-preview=fixImmmutableConv` has been added)
271
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. fix-immutable-conv.dd)
272
272
$(P
273
273
The compiler allows implicitly converting a return value with indirections to immutable if it determines the result must be unique.
274
274
Formerly, this check would inspect the types of the indirections, and forget to take into account conversions, such as `int[]` to `void[]`:
@@ -297,8 +297,8 @@ Since it is unrelated to dip1000 (which is about `scope` pointers), the fix has
297
297
)
298
298
)
299
299
300
- $(LI $(LNAME2 fix22134,Returning a discarded void value from a function is now deprecated)
301
- $(CHANGELOG_SOURCE_FILE dmd, changelog/fix22134.dd)
300
+ $(LI $(LNAME2 dmd. fix22134,Returning a discarded void value from a function is now deprecated)
301
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. fix22134.dd)
302
302
$(P
303
303
An expression statement of type void that has no side effects should
304
304
be discarded since it has no effect. The compiler, generally, does not
@@ -331,8 +331,8 @@ is deprecated. Such code can be deleted as it most certainly is dead code.
331
331
)
332
332
)
333
333
334
- $(LI $(LNAME2 importc_typeof,ImportC now recognizes the `typeof(...)` operator)
335
- $(CHANGELOG_SOURCE_FILE dmd, changelog/importc_typeof.dd)
334
+ $(LI $(LNAME2 dmd. importc_typeof,ImportC now recognizes the `typeof(...)` operator)
335
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. importc_typeof.dd)
336
336
$(P
337
337
ISO C does not specify a `typeof` operator, but it is a widely-implemented vendor extension.
338
338
ImportC now implements this extension as well.
@@ -344,8 +344,8 @@ Only the form `typeof(...)` is recognized, other compilers also support (or only
344
344
)
345
345
)
346
346
347
- $(LI $(LNAME2 markdown,Removed the `-transition=markdown` and `-revert=markdown` switches)
348
- $(CHANGELOG_SOURCE_FILE dmd, changelog/markdown.dd)
347
+ $(LI $(LNAME2 dmd. markdown,Removed the `-transition=markdown` and `-revert=markdown` switches)
348
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. markdown.dd)
349
349
$(P
350
350
This release removes the `-transition=markdown`, which prints markdown substitutions
351
351
made when processing markdown in ddoc documentation blocks, and `-revert=markdown`
@@ -358,8 +358,8 @@ is always performed.
358
358
)
359
359
)
360
360
361
- $(LI $(LNAME2 new-aa,`new` can now allocate an associative array)
362
- $(CHANGELOG_SOURCE_FILE dmd, changelog/new-aa.dd)
361
+ $(LI $(LNAME2 dmd. new-aa,`new` can now allocate an associative array)
362
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. new-aa.dd)
363
363
$(P
364
364
This allows two associative array references to point to the same
365
365
associative array instance before any keys have been inserted.
@@ -380,8 +380,8 @@ doesn't exist.
380
380
)
381
381
)
382
382
383
- $(LI $(LNAME2 previewInLink,`-preview=in` can now be used with `extern(C++)`, disabled for other non-D linkage)
384
- $(CHANGELOG_SOURCE_FILE dmd, changelog/previewInLink.dd)
383
+ $(LI $(LNAME2 dmd. previewInLink,`-preview=in` can now be used with `extern(C++)`, disabled for other non-D linkage)
384
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/dmd. previewInLink.dd)
385
385
$(P
386
386
The intent of `-preview=in` is to make `in` the go-to storage class for input parameters in D.
387
387
However, it is D centric, as it is an enhanced version of `scope const ref`.
@@ -402,25 +402,25 @@ as `in` will allow to bind rvalues to `const T&`, as in C++.
402
402
403
403
$(BUGSTITLE_TEXT_BODY Runtime changes,
404
404
405
- $(LI $(LNAME2 cpuid-add-avx512f,Added avx512f detection to `core.cpuid`)
406
- $(CHANGELOG_SOURCE_FILE dmd, druntime/ changelog/cpuid-add-avx512f.dd)
405
+ $(LI $(LNAME2 druntime. cpuid-add-avx512f,Added avx512f detection to `core.cpuid`)
406
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/druntime. cpuid-add-avx512f.dd)
407
407
$(P
408
408
The feature flag `core.cpuid.avx512f` has been added to allow detection at
409
409
run-time CPUs with 512-bit vector support.
410
410
)
411
411
)
412
412
413
- $(LI $(LNAME2 drt-oncycle-deprecate,`--DRT-oncycle=deprecate` is removed)
414
- $(CHANGELOG_SOURCE_FILE dmd, druntime/ changelog/drt-oncycle-deprecate.dd)
413
+ $(LI $(LNAME2 druntime. drt-oncycle-deprecate,`--DRT-oncycle=deprecate` is removed)
414
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/druntime. drt-oncycle-deprecate.dd)
415
415
$(P
416
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
417
It now prints a warning and does the same as the default, `--DRT-oncycle=abort`.
418
418
See also: $(DDSUBLINK spec/module, order_of_static_ctor, Order of Static Construction) in the specification.
419
419
)
420
420
)
421
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)
422
+ $(LI $(LNAME2 druntime. posix_gc_signals,Posix (excl. Darwin): Switch default GC signals from SIGUSR1/2 to SIGRTMIN/SIGRTMIN+1)
423
+ $(CHANGELOG_SOURCE_FILE dmd, changelog/druntime. posix_gc_signals.dd)
424
424
$(P
425
425
As the SIGUSR ones might be used by 'system' libraries (e.g., Android
426
426
Dalvik VM or LLVM libFuzzer), while the SIGRT ones are reserved for
@@ -878,6 +878,8 @@ $(LI $(BUGZILLA 13661): static array init does not call destructors)
878
878
$(LI $(BUGZILLA 13732): Regular templates can use "template this", and they allow any type to be passed)
879
879
$(LI $(BUGZILLA 14024): [CTFE] unstable postblit/destructor call order on static array assignment)
880
880
$(LI $(BUGZILLA 14617): PTHREAD_MUTEX_INITIALIZER does not work on OSX)
881
+ $(LI $(BUGZILLA 14694): Functions nested within functions need their body in the generated .di file)
882
+ $(LI $(BUGZILLA 14905): duplicate error message: 'Warning: statement is not reachable')
881
883
$(LI $(BUGZILLA 15290): length of associative array literal with duplicate keys is wrong)
882
884
$(LI $(BUGZILLA 15353): std.experimental.allocator cannot free memory in its destructor if the GC is an ancestor)
883
885
$(LI $(BUGZILLA 15525): SEGV running semantic analysis on non-root decl that has errors.)
@@ -1588,7 +1590,7 @@ $(BUGSTITLE_BUGZILLA Tools bug fixes,
1588
1590
$(LI $(BUGZILLA 18208): demangle RangeError@src/core/demangle.d$(LPAREN)230$(RPAREN))
1589
1591
)
1590
1592
)
1591
- $(D_CONTRIBUTORS_HEADER 300 )
1593
+ $(D_CONTRIBUTORS_HEADER 299 )
1592
1594
$(D_CONTRIBUTORS
1593
1595
$(D_CONTRIBUTOR 0l-l0)
1594
1596
$(D_CONTRIBUTOR 12345swordy)
@@ -1887,7 +1889,6 @@ $(D_CONTRIBUTORS
1887
1889
$(D_CONTRIBUTOR Yuxuan Shui)
1888
1890
$(D_CONTRIBUTOR Ömer Faruk IRMAK)
1889
1891
$(D_CONTRIBUTOR Ömer Faruk Irmak)
1890
- $(D_CONTRIBUTOR Ömer Faruk IRMAK)
1891
1892
$(D_CONTRIBUTOR Михаил Страшун)
1892
1893
$(D_CONTRIBUTOR سليمان السهمي (Suleyman Sahmi))
1893
1894
)
0 commit comments