On Saturday, 28 June 2025 at 12:04:36 UTC, Ogi wrote:
>On Thursday, 26 June 2025 at 17:03:33 UTC, Walter Bright wrote:
>Your idea is a good one, but I think it's a bit too late. I'm concerned about the disruption it could cause. People with a lot of code just don't care for even simple changes like search/replace. We've inflicted enough of that.
How about a Phobos module that wraps version identifiers in a type-safe manner?
Draft: https://gist.github.com/Ogi-kun/3946759f86ef03ba59dacc81cd6e63e6
import std.config;
static if (isPosix) {
/*...*/
}
else static if (platform == Platform.windows) {
/*...*/
}
else static assert(0, "Unsupported platform");
static if (arch == Arch.x86) {
static if (pointerWidth == P64) {
/*...*/
}
else static if (pointerWidth == P32) {
/*...*/
}
else static assert(0, "This CPU does not exist");
}
else static assert(0, "Unsupported architecture");
We already have quite a bit of that inside std.system
.
You can get the operating system and architecture the user is in by using std.system.os
and instructionSetArchitecture