Skip to content

Commit 041aaa7

Browse files
committed
update download and changelog for v2.103.0-beta.1
1 parent 055b63b commit 041aaa7

File tree

2 files changed

+339
-3
lines changed

2 files changed

+339
-3
lines changed

changelog/2.103.0_pre.dd

Lines changed: 336 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,336 @@
1+
Ddoc
2+
3+
$(CHANGELOG_NAV_INJECT)
4+
5+
$(VERSION Apr 01, 2023, =================================================,
6+
7+
$(CHANGELOG_HEADER_STATISTICS
8+
$(VER) comes with 9 major changes and 66 fixed Bugzilla issues.
9+
A huge thanks goes to the
10+
$(LINK2 #contributors, 43 contributors)
11+
who made $(VER) possible.)
12+
13+
$(BUGSTITLE_TEXT_HEADER Compiler changes,
14+
15+
$(LI $(RELATIVE_LINK2 dmd.check,Add __check(assign-expression) to ImportC))
16+
$(LI $(RELATIVE_LINK2 dmd.deprecate-alias-this-for-classes,Alias this for classes is deprecated))
17+
$(LI $(RELATIVE_LINK2 dmd.dip25-default,`-preview=dip25` has been enabled by default))
18+
$(LI $(RELATIVE_LINK2 dmd.extern-dllimport,export int a; now generates dllexport instead of dllimport))
19+
$(LI $(RELATIVE_LINK2 dmd.get-is-virtual-function,Deprecate `traits(isVirtualFunction)` and `traits(getVirtualFunctions)`))
20+
21+
)
22+
23+
$(BUGSTITLE_TEXT_HEADER Library changes,
24+
25+
$(LI $(RELATIVE_LINK2 grapheme_walker_update,Unicode grapheme walking updated to conform to Unicode version 15))
26+
$(LI $(RELATIVE_LINK2 joiner_assert_message,Better static assert messages for `std.algorithm.iteration.joiner`))
27+
$(LI $(RELATIVE_LINK2 sort_assert_messaged,Better static assert messages for `std.algorithm.sorting.sort`))
28+
29+
)
30+
31+
$(BUGSTITLE_TEXT_HEADER Dub changes,
32+
33+
$(LI $(RELATIVE_LINK2 colors,The `--color` argument now accepts values `auto`, `never`, `always`))
34+
35+
)
36+
37+
$(CHANGELOG_SEP_HEADER_TEXT_NONEMPTY)
38+
39+
$(CHANGELOG_SEP_HEADER_TEXT)
40+
41+
$(BUGSTITLE_TEXT_BODY Compiler changes,
42+
43+
$(LI $(LNAME2 dmd.check,Add __check(assign-expression) to ImportC)
44+
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.check.dd)
45+
$(P
46+
C code normally relies on `#include <assert.h>` to add support for assert's. D has them builtin to the
47+
language, which is much more convenient and does not rely on a preprocessor. This extension adds
48+
)
49+
50+
---
51+
__check(assign-expression)
52+
---
53+
54+
$(P
55+
as an expression to ImportC. The compiler switch -checkaction=C gives it the same behavior
56+
as C's assert macro. If the compiler switch -release is thrown, the `__check`'s are ignored.
57+
The `__check` expressions are handy for writing C programs that are free of reliance on `#include`.
58+
)
59+
60+
$(P
61+
`__assert` is not used due to conflicts with some C .h files.
62+
)
63+
)
64+
65+
$(LI $(LNAME2 dmd.deprecate-alias-this-for-classes,Alias this for classes is deprecated)
66+
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.deprecate-alias-this-for-classes.dd)
67+
$(P
68+
Using `alias this` for classes has not been clearly specified and the lookup rules in such circumstances are not defined. As a consequence, various failures or crashes may appear when `alias this` is used in conjunction with classes. Starting with this release, `alias this` for classes is being deprecated. As an alternative, getter/setter methods may be used to replace the `alias this`. This can be generically handled by:
69+
)
70+
71+
```d
72+
static foreach(member, __traits(allMembers, LeClass))
73+
mixin("ref auto " ~ member() { return $field_name." ~ member ~ "; }");
74+
```
75+
)
76+
77+
$(LI $(LNAME2 dmd.dip25-default,`-preview=dip25` has been enabled by default)
78+
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.dip25-default.dd)
79+
$(P
80+
Deprecation warnings for [DIP25](http://dlang.org/dips/25) violations have been enabled since 2.092.
81+
Starting with this release, it will report errors, unless the `-revert=dip25` switch is used.
82+
Using the switch (or its short version `-dip25`) is now deprecated.
83+
)
84+
85+
---
86+
ref int escapeRef(ref int x) {return x;}
87+
88+
// Formerly:
89+
// Deprecation: returning `x` escapes a reference to parameter `x`
90+
// perhaps annotate the parameter with `return`
91+
//
92+
// Now it is an error, unless `-revert=dip25` is used
93+
---
94+
)
95+
96+
$(LI $(LNAME2 dmd.extern-dllimport,export int a; now generates dllexport instead of dllimport)
97+
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.extern-dllimport.dd)
98+
$(P
99+
In order to make it dllimport, use:
100+
)
101+
102+
---
103+
export extern int a;
104+
---
105+
)
106+
107+
$(LI $(LNAME2 dmd.get-is-virtual-function,Deprecate `traits(isVirtualFunction)` and `traits(getVirtualFunctions)`)
108+
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.get-is-virtual-function.dd)
109+
$(P
110+
Up until this release, D had both `traits(isVirtualFunction)` and `traits(isVirtualMethod)`
111+
(and their coressponding `traits(get...)` counterpart). The differenrcte between the two is
112+
that `isVirtualFunction` returns true for `final` methods that do not override anything. This
113+
is in contradiction with the D spec which states that `final` functions that do not override
114+
other functions cannot be virtual. `isVirtualMethod` correctly returns `false` in that case.
115+
)
116+
117+
$(P
118+
Starting with this release, both `traits(isVirtualFunction)` and `traits(getVirtualFunctions)`
119+
are deprecated. If the behavior of `traits(isVirtualFunction)` is desired, it can be achieved by
120+
`traits(isVirtualMethod, f) || (traits(isFinalFunction, f) && !traits(isOverrideFunction, f))`.
121+
)
122+
)
123+
124+
125+
)
126+
127+
$(BUGSTITLE_TEXT_BODY Library changes,
128+
129+
$(LI $(LNAME2 grapheme_walker_update,Unicode grapheme walking updated to conform to Unicode version 15)
130+
$(CHANGELOG_SOURCE_FILE phobos, changelog/grapheme_walker_update.dd)
131+
$(P
132+
Up until now `graphemeStride`, `byGrapheme` and `decodeGrapheme` functions in
133+
`std.uni` have used obsolete rules from earlier Unicode standards.
134+
)
135+
136+
$(P
137+
This release brings grapheme breaking rules up to date with Unicode version 15.
138+
This means Phobos functions now recognise extended pictogram sequences and
139+
prepend characters.
140+
)
141+
)
142+
143+
$(LI $(LNAME2 joiner_assert_message,Better static assert messages for `std.algorithm.iteration.joiner`)
144+
$(CHANGELOG_SOURCE_FILE phobos, changelog/joiner_assert_message.dd)
145+
$(P
146+
Up until now `filter` used a template constraint to check if the passed Data
147+
could be used. If it were not, it was very tedious to figure out why.
148+
)
149+
150+
$(P
151+
As the template constraint is not used to overload the symbol template
152+
function, the constrains are move into static asserts with expressive error
153+
messages.
154+
)
155+
)
156+
157+
$(LI $(LNAME2 sort_assert_messaged,Better static assert messages for `std.algorithm.sorting.sort`)
158+
$(CHANGELOG_SOURCE_FILE phobos, changelog/sort_assert_messaged.dd)
159+
$(P
160+
Up until now `sort` used a template constraint to check if the passed Range
161+
could be used. If it were not, it was very tedious to figure out why.
162+
)
163+
164+
$(P
165+
As the template constraint is not used to overload the symbol template
166+
function, the constrains are move into static asserts with expressive error
167+
messages.
168+
)
169+
)
170+
171+
172+
)
173+
174+
$(BUGSTITLE_TEXT_BODY Dub changes,
175+
176+
$(LI $(LNAME2 colors,The `--color` argument now accepts values `auto`, `never`, `always`)
177+
$(CHANGELOG_SOURCE_FILE dub, changelog/colors.dd)
178+
$(P
179+
The previous `automatic`, `on`, `off` values are still supported, but
180+
undocumented, because they are used in almost no other program like this. For
181+
consistency, with other Linux tools especially, we have implemented and switched
182+
the defaults to the widely-used `auto`, `never`, `always` values.
183+
)
184+
)
185+
186+
187+
)
188+
189+
$(CHANGELOG_SEP_TEXT_BUGZILLA)
190+
191+
$(BUGSTITLE_BUGZILLA DMD Compiler regression fixes,
192+
193+
$(LI $(BUGZILLA 15985): [REG2.068/2.069] Code doesn't link unless compiled with -debug)
194+
$(LI $(BUGZILLA 18472): [Reg 2.078] betterC: cannot use format at compile time.)
195+
$(LI $(BUGZILLA 21772): [REG2.069] Consecutive different-signed double.nans in an array literal take the sign of the previous nan $(LPAREN)same for float and real$(RPAREN))
196+
$(LI $(BUGZILLA 23688): FTBFS: error: cannot convert 'Expression' to 'Expression*')
197+
$(LI $(BUGZILLA 23710): [REG master] Reachable code inside an 'if $(LPAREN)false$(RPAREN)' block no longer gets codegen)
198+
)
199+
$(BUGSTITLE_BUGZILLA DMD Compiler bug fixes,
200+
201+
$(LI $(BUGZILLA 11051): Unmatched case in a final switch should throw in both release and non-release mode)
202+
$(LI $(BUGZILLA 16098): align$(LPAREN)N$(RPAREN) not respected for stack variables if N > platform stack alignment)
203+
$(LI $(BUGZILLA 20781): Can call @live function without checking dip1021 rules)
204+
$(LI $(BUGZILLA 21492): betterC: TypeInfo is generated for code guarded by if$(LPAREN)__ctfe$(RPAREN))
205+
$(LI $(BUGZILLA 21821): Optimizer assumes immutables do not change, but they can in @system code)
206+
$(LI $(BUGZILLA 22916): [dip1000] copy of ref return still treated as scope variable)
207+
$(LI $(BUGZILLA 23145): Stack allocation of scope new variables defeats @safe)
208+
$(LI $(BUGZILLA 23195): Win64 function ABI bug for small non-POD arguments)
209+
$(LI $(BUGZILLA 23261): druntime core.std.attribute.Tagged1_2 constructor is unsafe)
210+
$(LI $(BUGZILLA 23387): ImportC: identical structs defined in two C files lead to duplicate .init symbol on macOS)
211+
$(LI $(BUGZILLA 23407): ImportC: function-local struct definition as part of variable declaration doesn’t shadow global definition)
212+
$(LI $(BUGZILLA 23545): export int a; should generate dllexport, not dllimport)
213+
$(LI $(BUGZILLA 23583): ImportC: undefined identifier __builtin___memmove_chk)
214+
$(LI $(BUGZILLA 23584): ImportC: __builtin_bit_cast not supported)
215+
$(LI $(BUGZILLA 23598): Circular reference bug with static if and eponymous templates)
216+
$(LI $(BUGZILLA 23606): betterC with CTFE and gc)
217+
$(LI $(BUGZILLA 23616): ImportC: clang __has_feature and __has_extension not recognized)
218+
$(LI $(BUGZILLA 23617): traits$(LPAREN)child$(RPAREN) compile error need this for something that doesn't need this)
219+
$(LI $(BUGZILLA 23622): ImportC #defines conflict with declarations)
220+
$(LI $(BUGZILLA 23635): Nonsensical "`case` must be a `string` or an integral constant, not `x`")
221+
$(LI $(BUGZILLA 23639): Casting to shared not allowed with -preview=nosharedaccess)
222+
$(LI $(BUGZILLA 23650): Using typeid with struct defined in in __traits$(LPAREN)compiles, ...$(RPAREN) causes linker error)
223+
$(LI $(BUGZILLA 23651): Order dependency in semantic analysis of template members)
224+
$(LI $(BUGZILLA 23658): .di generation of variables should turn them into declarations)
225+
$(LI $(BUGZILLA 23669): [DIP1000] Compound assignment to length of slice member variable in scope method fails)
226+
$(LI $(BUGZILLA 23676): Static foreach hangs compilation for some time)
227+
$(LI $(BUGZILLA 23682): dip1000 problem with return by ref)
228+
$(LI $(BUGZILLA 23694): compilable/ctests2.c:51:9: error: initializer element is not constant)
229+
$(LI $(BUGZILLA 23711): compilable/testcstuff1.c:63:1: error: invalid use of restrict)
230+
$(LI $(BUGZILLA 23717): runnable/bitfields.c:192:5: error: unknown type name S; use struct keyword to refer to the type)
231+
)
232+
$(BUGSTITLE_BUGZILLA DMD Compiler enhancements,
233+
234+
$(LI $(BUGZILLA 11316): Some cases of missing delegate argument type inference)
235+
$(LI $(BUGZILLA 13656): clarify error message upon trying to declare a variable of type ref)
236+
$(LI $(BUGZILLA 16495): __traits$(LPAREN)fullyQualifedName$(RPAREN) instead of std.traits.fullyQualifiedName)
237+
$(LI $(BUGZILLA 20101): BetterC: Template instantiation in CTFE only context should skip codegen / nogc / ... Phases)
238+
$(LI $(BUGZILLA 23558): add __traits$(LPAREN)getModuleClasses [, module name]$(RPAREN))
239+
$(LI $(BUGZILLA 23597): .di files not compatible with -i)
240+
)
241+
$(BUGSTITLE_BUGZILLA Phobos bug fixes,
242+
243+
$(LI $(BUGZILLA 23474): Grapheme should end after carriage return if not followed by line feed.)
244+
$(LI $(BUGZILLA 23600): [std.format.read] formattedRead static asserts with Tuple and compile time format string)
245+
$(LI $(BUGZILLA 23668): Can't stable sort structs with disabled default constructor.)
246+
$(LI $(BUGZILLA 23724): HTTP.onReceive example does not compile)
247+
)
248+
$(BUGSTITLE_BUGZILLA Phobos enhancements,
249+
250+
$(LI $(BUGZILLA 19567): [std.stdio] Not really helpful documentation of `tell`)
251+
$(LI $(BUGZILLA 20397): [std.algorithm] documentation nthPermutation)
252+
$(LI $(BUGZILLA 23683): std.file.setTimes requests more permissions than needed)
253+
$(LI $(BUGZILLA 23706): Do not escape POSIX shell parameters unless necessary)
254+
)
255+
$(BUGSTITLE_BUGZILLA Druntime bug fixes,
256+
257+
$(LI $(BUGZILLA 19575): core.cpuid not usable without a runtime)
258+
$(LI $(BUGZILLA 23625): Function ZeroMemory missing in windows headers)
259+
)
260+
$(BUGSTITLE_BUGZILLA dlang.org bug fixes,
261+
262+
$(LI $(BUGZILLA 6583): cast$(LPAREN)$(RPAREN) operation not fully specified)
263+
$(LI $(BUGZILLA 11493): dlang.org/type.html incorrectly says that you can't cast from -1 to unsigned types)
264+
$(LI $(BUGZILLA 16707): [Templates] run variadic templates example failed)
265+
$(LI $(BUGZILLA 21132): Ff two keys in an associative array literal are equal)
266+
$(LI $(BUGZILLA 21178): It is not explained what is "unknown")
267+
$(LI $(BUGZILLA 23716): ImportC: Missing documentation on the asm keyword accepted as an extension)
268+
)
269+
$(BUGSTITLE_BUGZILLA dlang.org enhancements,
270+
271+
$(LI $(BUGZILLA 18765): [Arrays] Docs need info on initialization of static array with element literal)
272+
$(LI $(BUGZILLA 20997): Missing example of scope guard executing after return statement)
273+
$(LI $(BUGZILLA 22418): Error in documentation on strings)
274+
$(LI $(BUGZILLA 22594): Update "Interfacing to C" to include intptr_t and uintptr_t)
275+
$(LI $(BUGZILLA 23612): Template constraints article not listed in article index)
276+
$(LI $(BUGZILLA 23636): No spec docs for shared qualifer)
277+
$(LI $(BUGZILLA 23730): Clarify IsExpression `Identifier :` and `== TypeCtor` spec)
278+
)
279+
$(BUGSTITLE_BUGZILLA Tools bug fixes,
280+
281+
$(LI $(BUGZILLA 23624): Race condition in test runner for DMD)
282+
$(LI $(BUGZILLA 23634): Possible data race with runnable example tester)
283+
)
284+
)
285+
$(D_CONTRIBUTORS_HEADER 43)
286+
$(D_CONTRIBUTORS
287+
$(D_CONTRIBUTOR Amaury)
288+
$(D_CONTRIBUTOR Andra Maslaev)
289+
$(D_CONTRIBUTOR Andrea Fontana)
290+
$(D_CONTRIBUTOR Ate Eskola)
291+
$(D_CONTRIBUTOR Ben Jones)
292+
$(D_CONTRIBUTOR BVRazvan)
293+
$(D_CONTRIBUTOR Daniel Zuncke)
294+
$(D_CONTRIBUTOR DanutAldea)
295+
$(D_CONTRIBUTOR Dennis)
296+
$(D_CONTRIBUTOR Dennis Korpel)
297+
$(D_CONTRIBUTOR Drehuta Andreea)
298+
$(D_CONTRIBUTOR Dumitrache Adrian-George)
299+
$(D_CONTRIBUTOR Hiroki Noda)
300+
$(D_CONTRIBUTOR Iain Buclaw)
301+
$(D_CONTRIBUTOR Ikey Doherty)
302+
$(D_CONTRIBUTOR ioanavivi12)
303+
$(D_CONTRIBUTOR Jan Jurzitza)
304+
$(D_CONTRIBUTOR Johan Engelen)
305+
$(D_CONTRIBUTOR João Lourenço)
306+
$(D_CONTRIBUTOR KytoDragon)
307+
$(D_CONTRIBUTOR Luís Ferreira)
308+
$(D_CONTRIBUTOR Mateiuss)
309+
$(D_CONTRIBUTOR MathewColin)
310+
$(D_CONTRIBUTOR Mathias Lang)
311+
$(D_CONTRIBUTOR matthriscu)
312+
$(D_CONTRIBUTOR Mike Parker)
313+
$(D_CONTRIBUTOR Nathan Sashihara)
314+
$(D_CONTRIBUTOR Nick Treleaven)
315+
$(D_CONTRIBUTOR Paul Backus)
316+
$(D_CONTRIBUTOR Quirin F. Schroll)
317+
$(D_CONTRIBUTOR Rareș Constantin)
318+
$(D_CONTRIBUTOR Razvan Mihai Popa)
319+
$(D_CONTRIBUTOR Razvan Nitu)
320+
$(D_CONTRIBUTOR richard (rikki) andrew cattermole)
321+
$(D_CONTRIBUTOR Robert burner Schadek)
322+
$(D_CONTRIBUTOR Robert Grancsa)
323+
$(D_CONTRIBUTOR Robert Stoica)
324+
$(D_CONTRIBUTOR Rosca Rares)
325+
$(D_CONTRIBUTOR Steven Schveighoffer)
326+
$(D_CONTRIBUTOR Teodor Dutu)
327+
$(D_CONTRIBUTOR Tudor Brindus)
328+
$(D_CONTRIBUTOR Vladimir Panteleev)
329+
$(D_CONTRIBUTOR Walter Bright)
330+
)
331+
$(D_CONTRIBUTORS_FOOTER)
332+
$(CHANGELOG_NAV_INJECT)
333+
334+
Macros:
335+
VER=2.103.0
336+
TITLE=Change Log: $(VER)

download.dd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,9 @@ Macros:
199199

200200
DMDV2=$(LATEST)
201201

202-
BETA=$(COMMENT $0)
203-
_=BETA=$0
204-
B_DMDV2=2.102.2
202+
_=BETA=$(COMMENT $0)
203+
BETA=$0
204+
B_DMDV2=2.103.0
205205
B_SUFFIX=beta.1
206206

207207
DEB32=$(DLSITE dmd_$(DMDV2)-0_i386.deb)

0 commit comments

Comments
 (0)