Skip to content

Commit 1298ea9

Browse files
authored
Merge pull request #3867 from ibuclaw/merge_stable
update download and changelog for v2.110.0-beta.1
2 parents 5ddaff3 + 102dc59 commit 1298ea9

File tree

2 files changed

+214
-4
lines changed

2 files changed

+214
-4
lines changed

changelog/2.110.0_pre.dd

Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
Ddoc
2+
3+
$(CHANGELOG_NAV_INJECT)
4+
5+
$(VERSION Aug 01, 2024, =================================================,
6+
7+
$(CHANGELOG_HEADER_STATISTICS
8+
$(VER) comes with 4 major changes and 28 fixed Bugzilla issues.
9+
A huge thanks goes to the
10+
$(LINK2 #contributors, 27 contributors)
11+
who made $(VER) possible.)
12+
13+
$(BUGSTITLE_TEXT_HEADER Compiler changes,
14+
15+
$(LI $(RELATIVE_LINK2 dmd.copying-to-void-arrays,Copying from `const(void)[]` to `void[]` is disallowed with `-preview=fixImmutableConv`))
16+
$(LI $(RELATIVE_LINK2 dmd.import-exp-hexstring,Import expressions are now treated as hex strings))
17+
$(LI $(RELATIVE_LINK2 dmd.unsafe-boolean-values,`bool` values other than 0 or 1 are not `@safe`))
18+
19+
)
20+
21+
$(BUGSTITLE_TEXT_HEADER Dub changes,
22+
23+
$(LI $(RELATIVE_LINK2 selections_from_parent_dir,`dub.selections.json` files are now looked up in parent directories too))
24+
25+
)
26+
27+
$(CHANGELOG_SEP_HEADER_TEXT_NONEMPTY)
28+
29+
$(CHANGELOG_SEP_HEADER_TEXT)
30+
31+
$(BUGSTITLE_TEXT_BODY Compiler changes,
32+
33+
$(LI $(LNAME2 dmd.copying-to-void-arrays,Copying from `const(void)[]` to `void[]` is disallowed with `-preview=fixImmutableConv`)
34+
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.copying-to-void-arrays.dd)
35+
$(P
36+
If `const(void)[]` data contains tail `const` pointers, copying to `void[]`
37+
can subsequently violate `const` data:
38+
)
39+
---
40+
void f(int*[] a, const int*[] b)
41+
{
42+
void[] va = a;
43+
const void[] vb = b;
44+
va[] = vb[]; // fills `a` with pointers to const
45+
*a[0] = 0; // const data mutated
46+
}
47+
---
48+
$(P
49+
Copying `vb` data to `va` is no longer allowed with the
50+
`-preview=fixImmutableConv` switch.
51+
)
52+
)
53+
54+
$(LI $(LNAME2 dmd.import-exp-hexstring,Import expressions are now treated as hex strings)
55+
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.import-exp-hexstring.dd)
56+
$(P
57+
While [Import expressions](https://dlang.org/spec/expression.html#import_expressions) are typed as `string`, they are also used to embed binary files.
58+
By treating them the same as hex strings, they will implicitly convert to arrays of integral types other than `char`.
59+
)
60+
61+
---
62+
// Formerly, a cast was required:
63+
immutable ubyte[] iconImg = cast(immutable ubyte[]) import("icon.png");
64+
65+
// Now, it implicitly converts to integral arrays:
66+
immutable ubyte[] iconImg = import("icon.png");
67+
---
68+
)
69+
70+
$(LI $(LNAME2 dmd.unsafe-boolean-values,`bool` values other than 0 or 1 are not `@safe`)
71+
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.unsafe-boolean-values.dd)
72+
$(P
73+
The spec [was updated](https://dlang.org/spec/type.html#bool)
74+
(for 2.109) so that only 0 and 1 are
75+
[safe values](https://dlang.org/spec/function.html#safe-values)
76+
for `bool`. This means that reading a `bool` value whose underlying byte representation
77+
has other bits set is implementation-defined and should be avoided.
78+
Consequently the following are deprecated in `@safe` code:
79+
)
80+
81+
$(P
82+
* `void` initialization of booleans (since 2.109)
83+
* Reading a `bool` field from a union (since 2.109)
84+
* Runtime casting a dynamic array to a `bool` dynamic array type
85+
* Runtime casting a `bool` dynamic array to a tail mutable dynamic array type
86+
* Casting a pointer to a `bool` pointer type
87+
* Casting a `bool` pointer to a tail mutable pointer type
88+
)
89+
)
90+
91+
92+
)
93+
94+
$(BUGSTITLE_TEXT_BODY Dub changes,
95+
96+
$(LI $(LNAME2 selections_from_parent_dir,`dub.selections.json` files are now looked up in parent directories too)
97+
$(CHANGELOG_SOURCE_FILE dub, changelog/selections_from_parent_dir.dd)
98+
$(P
99+
In case the root package directory doesn't contain a `dub.selections.json`
100+
file, dub now looks in parent directories too and potentially uses the
101+
first (deepest) one it finds - if and only if that JSON file contains an
102+
optional new `"inheritable": true` flag.
103+
)
104+
105+
$(P
106+
This allows using a 'central' `dub.selections.json` file for a repository
107+
containing multiple dub projects, making it automatically apply to all
108+
builds in that source tree if located in the repository root directory
109+
(unless a local `dub.selections.json` overrides it).
110+
)
111+
112+
$(P
113+
Such an inherited selections file is never mutated when running dub for a
114+
nested project, i.e., changes are always saved to a *local*
115+
`dub.selections.json` file. E.g., when running `dub upgrade` for a nested
116+
project.
117+
)
118+
)
119+
120+
121+
)
122+
123+
$(CHANGELOG_SEP_TEXT_BUGZILLA)
124+
125+
$(BUGSTITLE_BUGZILLA DMD Compiler bug fixes,
126+
127+
$(LI $(BUGZILLA 12885): const union wrongly converts implicitly to mutable)
128+
$(LI $(BUGZILLA 17148): Copying from const$(LPAREN)void$(RPAREN)[] to void[] breaks immutable)
129+
$(LI $(BUGZILLA 23957): Casting to derived extern$(LPAREN)C++$(RPAREN) class is unsafe)
130+
$(LI $(BUGZILLA 24534): Having a label on a declaration makes it possible to skip it with goto)
131+
$(LI $(BUGZILLA 24558): C asserts segfault on Glibc)
132+
$(LI $(BUGZILLA 24577): Struct with constructor returned from C++ wrong)
133+
$(LI $(BUGZILLA 24582): Detect unsafe `cast$(LPAREN)bool[]$(RPAREN)`)
134+
$(LI $(BUGZILLA 24583): di generator emits return scope and scope return in wrong order)
135+
$(LI $(BUGZILLA 24592): ImportC: Bitfield layout wrong for int64 on 32-bit Linux)
136+
$(LI $(BUGZILLA 24594): ImportC: Packed struct has wrong layout)
137+
$(LI $(BUGZILLA 24603): Can copy from non-void array into void[] in safe code)
138+
$(LI $(BUGZILLA 24622): Modify const data with void[] concatenation/append)
139+
$(LI $(BUGZILLA 24630): Casting a bool pointer to a mutable pointer type is unsafe)
140+
$(LI $(BUGZILLA 24631): Pointer cast allows changing @system field in @safe code)
141+
$(LI $(BUGZILLA 24634): Parse error initializing array from expression with StructInitializer)
142+
)
143+
$(BUGSTITLE_BUGZILLA DMD Compiler enhancements,
144+
145+
$(LI $(BUGZILLA 20243): inout not substituted for in associative array key type)
146+
$(LI $(BUGZILLA 24135): Eponymous template member overloads not shown as call candidates)
147+
$(LI $(BUGZILLA 24580): ImportC: Asm label after attributes results in syntax error)
148+
$(LI $(BUGZILLA 24598): OpenBSD: adapt compiler tests)
149+
$(LI $(BUGZILLA 24623): Rename version CppRuntime_Clang/Gcc to CppRuntime_libcxx/libstdcxx.)
150+
)
151+
$(BUGSTITLE_BUGZILLA Phobos bug fixes,
152+
153+
$(LI $(BUGZILLA 24564): std.file.DirEntry throws Exception instead of FileException)
154+
)
155+
$(BUGSTITLE_BUGZILLA Druntime bug fixes,
156+
157+
$(LI $(BUGZILLA 24579): stat_t has wrong size for Android armv7a)
158+
$(LI $(BUGZILLA 24626): hasUDA does not handle multiple UDAs of the same symbol)
159+
)
160+
$(BUGSTITLE_BUGZILLA Druntime enhancements,
161+
162+
$(LI $(BUGZILLA 24590): Illegal instruction with module constructors cycle and shared libphobos2 in _d_criticalenter2)
163+
)
164+
$(BUGSTITLE_BUGZILLA dlang.org bug fixes,
165+
166+
$(LI $(BUGZILLA 24543): The `@__future` attribute is $(LPAREN)almost$(RPAREN) undocumented)
167+
$(LI $(BUGZILLA 24548): [spec] Boolean condition conversion is not documented)
168+
$(LI $(BUGZILLA 24565): out contract variable is implicitly const)
169+
)
170+
$(BUGSTITLE_BUGZILLA Installer bug fixes,
171+
172+
$(LI $(BUGZILLA 24600): DMD nightly builds are outdated)
173+
)
174+
)
175+
$(D_CONTRIBUTORS_HEADER 27)
176+
$(D_CONTRIBUTORS
177+
$(D_CONTRIBUTOR 0-v-0)
178+
$(D_CONTRIBUTOR 0v0)
179+
$(D_CONTRIBUTOR Alex Muscar)
180+
$(D_CONTRIBUTOR Andrei Horodniceanu)
181+
$(D_CONTRIBUTOR Ben Jones)
182+
$(D_CONTRIBUTOR Brad Roberts)
183+
$(D_CONTRIBUTOR Brian Callahan)
184+
$(D_CONTRIBUTOR Connor)
185+
$(D_CONTRIBUTOR Dennis)
186+
$(D_CONTRIBUTOR Dennis Korpel)
187+
$(D_CONTRIBUTOR Emmanuel Nyarko)
188+
$(D_CONTRIBUTOR Iain Buclaw)
189+
$(D_CONTRIBUTOR Jeremy Baxter)
190+
$(D_CONTRIBUTOR Johan Engelen)
191+
$(D_CONTRIBUTOR Jonathan M Davis)
192+
$(D_CONTRIBUTOR Martin Kinkelin)
193+
$(D_CONTRIBUTOR Mathias Lang)
194+
$(D_CONTRIBUTOR Nicholas Wilson)
195+
$(D_CONTRIBUTOR Nick Treleaven)
196+
$(D_CONTRIBUTOR Paul Backus)
197+
$(D_CONTRIBUTOR Quirin F. Schroll)
198+
$(D_CONTRIBUTOR Quirin Schroll)
199+
$(D_CONTRIBUTOR Razvan Nitu)
200+
$(D_CONTRIBUTOR ryuukk)
201+
$(D_CONTRIBUTOR Tim Schendekehl)
202+
$(D_CONTRIBUTOR Walter Bright)
203+
$(D_CONTRIBUTOR zopsicle)
204+
)
205+
$(D_CONTRIBUTORS_FOOTER)
206+
$(CHANGELOG_NAV_INJECT)
207+
208+
Macros:
209+
VER=2.110.0
210+
TITLE=Change Log: $(VER)

download.dd

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,10 @@ Macros:
226226

227227
DMDV2=$(LATEST)
228228

229-
BETA=$(COMMENT $0)
230-
_=BETA=$0
231-
B_DMDV2=2.109.1
232-
B_SUFFIX=rc.1
229+
_=BETA=$(COMMENT $0)
230+
BETA=$0
231+
B_DMDV2=2.110.0
232+
B_SUFFIX=beta.1
233233

234234
DEB32=$(DLSITE dmd_$(DMDV2)-0_i386.deb)
235235
DEB64=$(DLSITE dmd_$(DMDV2)-0_amd64.deb)

0 commit comments

Comments
 (0)