Skip to content

Commit 16af6a1

Browse files
committed
update download and changelog for v2.107.0-rc.1
1 parent 493198c commit 16af6a1

File tree

2 files changed

+115
-4
lines changed

2 files changed

+115
-4
lines changed

changelog/2.107.0_pre.dd

Lines changed: 114 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ $(CHANGELOG_NAV_INJECT)
55
$(VERSION Feb 01, 2024, =================================================,
66

77
$(CHANGELOG_HEADER_STATISTICS
8-
$(VER) comes with 9 major changes and 52 fixed Bugzilla issues.
8+
$(VER) comes with 10 major changes and 61 fixed Bugzilla issues.
99
A huge thanks goes to the
10-
$(LINK2 #contributors, 35 contributors)
10+
$(LINK2 #contributors, 37 contributors)
1111
who made $(VER) possible.)
1212

1313
$(BUGSTITLE_TEXT_HEADER Compiler changes,
@@ -22,6 +22,7 @@ $(LI $(RELATIVE_LINK2 dmd.template-_d_newarratmT,`_d_newarray{mTX,miTX,OpT}` are
2222

2323
$(BUGSTITLE_TEXT_HEADER Runtime changes,
2424

25+
$(LI $(RELATIVE_LINK2 druntime.coreatomic,Using an invalid MemoryOrder for `core.atomic` operations are now rejected at compile time))
2526
$(LI $(RELATIVE_LINK2 druntime.makefiles,Makefiles cleanup for druntime))
2627
$(LI $(RELATIVE_LINK2 druntime.stdatomic,New addition of the C stdatomic header implemented in D))
2728

@@ -172,6 +173,105 @@ This change adds the new template to `core.internal.array.construction`.
172173

173174
$(BUGSTITLE_TEXT_BODY Runtime changes,
174175

176+
$(LI $(LNAME2 druntime.coreatomic,Using an invalid MemoryOrder for `core.atomic` operations are now rejected at compile time)
177+
$(CHANGELOG_SOURCE_FILE dmd, changelog/druntime.coreatomic.dd)
178+
$(P
179+
The following `core.atomic` functions have become more restrictive:
180+
)
181+
182+
$(P
183+
1. `atomicLoad` and `atomicStore` now reject being instantiated with the
184+
argument `MemoryOrder.acq_rel`. Previously `atomicLoad` and `atomicStore` only
185+
rejected `MemoryOrder.rel` and `MemoryOrder.acq` respectively.
186+
)
187+
188+
$(P
189+
In most cases, code that previously used `MemoryOrder.acq_rel` should switch to
190+
use `MemoryOrder.seq` instead.
191+
)
192+
193+
---
194+
// Error:
195+
atomicLoad!(MemoryOrder.acq_rel)(src);
196+
atomicStore!(MemoryOrder.acq_rel)(dest, value);
197+
198+
// Corrective action:
199+
atomicLoad!(MemoryOrder.seq)(src);
200+
atomicStore!(MemoryOrder.seq)(dest, value);
201+
202+
// Or:
203+
atomicLoad(src);
204+
atomicStore(dest, value);
205+
---
206+
207+
$(P
208+
2. `atomicExchange` now rejects being instantiated with the argument
209+
`MemoryOrder.acq`.
210+
)
211+
212+
$(P
213+
In most cases, code that previously used `MemoryOrder.acq` should switch to use
214+
`MemoryOrder.seq` instead.
215+
)
216+
217+
---
218+
// Error:
219+
atomicExchange!(MemoryOrder.acq)(dest, value);
220+
221+
// Corrective action:
222+
atomicExchange!(MemoryOrder.seq)(dest, value);
223+
224+
// Or:
225+
atomicExchange(dest, value);
226+
---
227+
228+
$(P
229+
3. `atomicCompareExchangeWeak` and `atomicCompareExchangeStrong` now reject
230+
being instantiated when the second `fail` argument is `MemoryOrder.rel` or
231+
`MemoryOrder.acq_rel`.
232+
)
233+
234+
$(P
235+
In most cases, code that previously used either of these should switch to use
236+
`MemoryOrder.raw` instead.
237+
)
238+
239+
---
240+
// Error:
241+
atomicExchangeWeak!(MemoryOrder.rel, MemoryOrder.rel)(dest, compare, value);
242+
atomicExchangeWeakNoResult!(MemoryOrder.acq_rel, MemoryOrder.acq_rel)(dest, compare, value);
243+
atomicExchangeStrong!(MemoryOrder.acq, MemoryOrder.rel)(dest, compare, value);
244+
atomicExchangeStrongNoResult!(MemoryOrder.seq, MemoryOrder.acq_rel)(dest, compare, value);
245+
246+
// Corrective action:
247+
atomicExchangeWeak!(MemoryOrder.rel, MemoryOrder.raw)(dest, compare, value);
248+
atomicExchangeWeakNoResult!(MemoryOrder.acq_rel, MemoryOrder.raw)(dest, compare, value);
249+
atomicExchangeStrong!(MemoryOrder.acq, MemoryOrder.raw)(dest, compare, value);
250+
atomicExchangeStrongNoResult!(MemoryOrder.seq, MemoryOrder.raw)(dest, compare, value);
251+
---
252+
253+
$(P
254+
4. `atomicCompareExchangeWeak` and `atomicCompareExchangeStrong` additionally
255+
now reject being instantiated when the second `fail` argument has a greater
256+
value than its first `succ` argument.
257+
)
258+
259+
$(P
260+
In most cases, code that violates this contract should use the same MemoryOrder
261+
for both `succ` and `fail` arguments.
262+
)
263+
264+
---
265+
// Error:
266+
atomicExchangeWeak!(MemoryOrder.raw)(dest, compare, value);
267+
atomicExchangeStrong!(MemoryOrder.acq, MemoryOrder.seq)(dest, compare, value);
268+
269+
// Corrective action:
270+
atomicExchangeWeak!(MemoryOrder.raw, MemoryOrder.raw)(dest, compare, value);
271+
atomicExchangeStrong!(MemoryOrder.acq, MemoryOrder.acq)(dest, compare, value);
272+
---
273+
)
274+
175275
$(LI $(LNAME2 druntime.makefiles,Makefiles cleanup for druntime)
176276
$(CHANGELOG_SOURCE_FILE dmd, changelog/druntime.makefiles.dd)
177277
$(P
@@ -234,7 +334,9 @@ $(BUGSTITLE_BUGZILLA DMD Compiler regression fixes,
234334

235335
$(LI $(BUGZILLA 24266): ImportC: struct initializer entry gets ignored)
236336
$(LI $(BUGZILLA 24274): [REG master] ImportC: unrecognized C initializer with array in struct)
337+
$(LI $(BUGZILLA 24295): [betterC] ICE with new int[])
237338
$(LI $(BUGZILLA 24301): [REG 2.100] Misleading error message when passing non-copyable struct by value in @safe code)
339+
$(LI $(BUGZILLA 24338): Cannot concatenate dynamic arrays of enum type with static array base type)
238340
)
239341
$(BUGSTITLE_BUGZILLA DMD Compiler bug fixes,
240342

@@ -252,6 +354,7 @@ $(LI $(BUGZILLA 24094): importC __declspec not working in front of declaration s
252354
$(LI $(BUGZILLA 24200): ImportC: .di file collected macro conflicts with Special Token)
253355
$(LI $(BUGZILLA 24224): __traits$(LPAREN)initSymbol$(RPAREN) treats aggregate-derived enum as base type)
254356
$(LI $(BUGZILLA 24248): const constructor call with mutable target gives wrong error message)
357+
$(LI $(BUGZILLA 24252): ci: Error: error writing file 'compilable\testcstuff3_0.obj')
255358
$(LI $(BUGZILLA 24264): ImportC: inliner trips on _Bool return)
256359
$(LI $(BUGZILLA 24276): ImportC: typedef aliases not emitted correctly in .di files)
257360
$(LI $(BUGZILLA 24280): ImportC: forward reference error when compiling multiple files)
@@ -261,6 +364,11 @@ $(LI $(BUGZILLA 24292): Struct with destructor wrongly returned in register)
261364
$(LI $(BUGZILLA 24303): anonymous struct problems when typedef'd in separate C files)
262365
$(LI $(BUGZILLA 24304): __uint16_t, __uint32_t, __uint64_t are not recognized)
263366
$(LI $(BUGZILLA 24306): ImportC: same name structs in separate C files interfere when compiled together)
367+
$(LI $(BUGZILLA 24309): Memory allocation failed on Azure pipeline)
368+
$(LI $(BUGZILLA 24311): Named enum with AA base type causes ICE)
369+
$(LI $(BUGZILLA 24319): OpenBSD: Use correct type for file_time)
370+
$(LI $(BUGZILLA 24326): ImportC: segfault on nameless enum translation with -H)
371+
$(LI $(BUGZILLA 24340): Invalid export directives generated)
264372
)
265373
$(BUGSTITLE_BUGZILLA DMD Compiler enhancements,
266374

@@ -284,6 +392,7 @@ $(BUGSTITLE_BUGZILLA Phobos bug fixes,
284392
$(LI $(BUGZILLA 24151): std.container.array: Array!string$(LPAREN)""$(RPAREN) does not compile)
285393
$(LI $(BUGZILLA 24215): std.traits.isBasicType!Enum should be false)
286394
$(LI $(BUGZILLA 24278): std.math.abs promotes unsigned argument to 32 bits)
395+
$(LI $(BUGZILLA 24342): T[][].until$(LPAREN)T[]$(RPAREN) breaks if sentinel is longer than 1.)
287396
)
288397
$(BUGSTITLE_BUGZILLA Phobos enhancements,
289398

@@ -313,11 +422,12 @@ $(LI $(BUGZILLA 24177): Array literal can implicitly convert to an expected type
313422
$(LI $(BUGZILLA 24210): Function types are not documented)
314423
)
315424
)
316-
$(D_CONTRIBUTORS_HEADER 35)
425+
$(D_CONTRIBUTORS_HEADER 37)
317426
$(D_CONTRIBUTORS
318427
$(D_CONTRIBUTOR Adam D. Ruppe)
319428
$(D_CONTRIBUTOR Atila Neves)
320429
$(D_CONTRIBUTOR Basile Burg)
430+
$(D_CONTRIBUTOR Brian Callahan)
321431
$(D_CONTRIBUTOR Daniel Pflager)
322432
$(D_CONTRIBUTOR Danil Sidoruk)
323433
$(D_CONTRIBUTOR Denis Feklushkin)
@@ -347,6 +457,7 @@ $(D_CONTRIBUTORS
347457
$(D_CONTRIBUTOR Sönke Ludwig)
348458
$(D_CONTRIBUTOR Teodor Dutu)
349459
$(D_CONTRIBUTOR Tim Schendekehl)
460+
$(D_CONTRIBUTOR Timon Gehr)
350461
$(D_CONTRIBUTOR Walter Bright)
351462
$(D_CONTRIBUTOR Yang Yujie)
352463
$(D_CONTRIBUTOR Семён Марьясин)

download.dd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ Macros:
228228
_=BETA=$(COMMENT $0)
229229
BETA=$0
230230
B_DMDV2=2.107.0
231-
B_SUFFIX=beta.1
231+
B_SUFFIX=rc.1
232232

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

0 commit comments

Comments
 (0)