This exists mostly as a way to harmonise between the different spellings of the same concepts in LDC and GDC, rather than to provide a useful implementation from DMD.
This adds a new pragma for ImportC, which allows to set default storage
classes. Only `nothrow`, `@nogc` and `pure` are supported for now.
They can be disabled later using `#pragma attribute(pop)`.
Unknown storage classes are ignored.
The original changelog item was added to stable after 2.109.0, so will
appear in 2.109.1:
https://dlang.org/changelog/2.109.1.html#dmd.unsafe-boolean-values
However, fewer people may see point release changelogs, so its worth
repeating those for 2.110 IMO.
This also adds new items.
I am fairly convinced that no possible arguments to or global state at the time
of any call to Thread.sleep can result in memory corruption.
There is a precondition on Thread.sleep, that the duration must be
non-negative. On Windows, Thread.sleep calls Sleep, which takes an unsigned
integer. On POSIX, Thread.sleep calls nanosleep, which is specified to handle
negative durations gracefully. As such, violating this precondition should not
be a source of undefined behavior.
* Remove the interface function fullCollectNoStack from the gcinterface
* Fix tests that depend on the GC not scanning the stack.
* Remove all nostack remnants
* Add changelog entry
* Fix Issue 14128 - AliasDeclaration allows expressions, causing false code for ThisExp
* Add test case
* Fix deprecation comment
* Add changelog
* Use dummy out param, not null
* Change to error with __edition_latest_do_not_use
* Implement __ctfeWrite builtin
Reworked stalled PR #12412.
The __ctfeWrite function is already part of druntime (core.builtins), but was never implemented.
The actual implementation is the one used at Weka (slightly different from PR #12412) and does not require any changes to expression.d (contrary to said PR).
* fix file extension of changelog entry
* fix changelog file naming
* Improve changelog entry
* Remove superfluous code and add test case.
This implements the Enhanced Interpolated Expression Sequence proposal:
i"" or iq{} or q`` with a $(expression) in the middle are converted to a tuple of druntime types for future processing by library code.
- Rejects MemoryOrder.rel and MemoryOrder.acq_rel as the `fail`
argument in atomicCompareExchangeStrong and atomicCompareExchangeWeak.
- Rejects `fail` argument having a stronger value than the `succ`
memory model.
These are rejected as invalid memory models if ever encountered
compiling with GDC or LDC, so make it also rejected by druntime atomics.
- Rejects MemoryOrder.acq_rel in atomicLoad and atomicStore.
- Rejects MemoryOrder.acq in atomicExchange.
These are rejected as an invalid memory models if ever encountered
compiling with GDC or LDC, so make it also rejected by druntime atomics