Uses a regular initialized temporary array when sorting elements with an elaborate assignment to avoid undefined behavior when destructors, postblits or copy constructors are invoked during the array assignment.
The current implementation of spawnProcessPosix is broken on systems
with a large `ulimit -n` because it always OOMs making it impossible
to spawn processes. Using the libc implementation, when available, for
doing file descriptor operations en-mass partially solves this problem.
Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me>
The documentation for the from*String functions specifies what they
accept, and the fromISO*String functions accept ISO or ISO extended
strings, but it is technically the case that there are ISO and ISO
extended strings which they do not accept (since the standard specifies
what the fields should look like for each string but doesn't specify
that all fields must be present or that any code parsing them must
accept all variants).
So, technically, the error messages which have said that the given
strings are not valid ISO or ISO extended strings are not necessarily
correct. So, this changes the error messages to remove that ambiguity.
The second opCast overload is necessary to allow built-in implicit
conversions (e.g., mutable to const) to be performed explicitly via a
cast expression. Nullable.opEquals depends on this behavior.
Note: www.canonware.com/download/jemalloc/jemalloc-latest/doc/jemalloc.html jemalloc link isn't responding, and it now lives at jemalloc.net (see also https://github.com/jemalloc/jemalloc?tab=readme-ov-file#readme).
Fixes Bugzilla Issue 24667 - goo.gl is going away.
This is a useful technique, and non-obvious enough that other D
community members were surprised when I showed it to them.
The unusual formatting and code layout used here achieves the following
goals:
1. Have this example appear below "Basic usage".
2. Have the overload set appear as it would at module level.
3. Have as much of the example code unit-tested as possible.
Goal (2), in particular, rules out the use of a "wrapper" struct to
create an overload set of static methods, which is the technique that's
normally used to include an overload set in a unittest block.
This technique has turned out not to be very useful in practice, and the
example is a bit subtle and tricky to understand. Removing it will make
room for more useful and less confusing examples.