I think a large part of this comes from the fact that the expressiveness of LLVM’s C++ APIs does not translate well into a “plain old C” style interface. Many of the abstractions and extension points are simply awkward or impractical to expose in C.
On top of that, there is little incentive for contributors to invest in the C API: most LLVM users and developers interact with the C++ API directly, so new features and options tend to be added there first, and often exclusively. As a result, the C API inevitably lags behind and remains a second-class citizen.
If only that was only about emitting byte code in a file then calling the linker... you also have the problem of debug information, optimizers passes, the amount of tests required to prove the output byte code is valid, etc.
The cookies will still be correlated with each other, and your behavior will still be sent offsite for aggregation by ad identity companies, then linked back to your non-private browser behavior via IP, or browser fingerprinting, or any site you log into, etc.
How this was discovered is incredible. An amator satelite was lauched. operators collected data. At some point they had the idea to plot them. That gave a big stain in the south atlantic.
Not into ZIG but for some reasons I monitor new issues that pop in the bug tracker of "new" / "raisins" languages. ZIG has clearly reached the next level, let's say if you compare the issues two years ago (lot of comptime/type system things) VS now.
I cannot reply on the blog but to answer the author about other languages, here is the D version, using a single template:
auto ref T max(T)(auto ref T u, auto ref T v) => u > v ? u : v;
void main()
{
int a = 1;
int b = 0;
int x;
static assert(__traits(compiles, &max(a,b) == &a),
"should have selected the lvalue version");
static assert(__traits(compiles, x = max(1,0)),
"should have selected the rvalue version");
static assert(__traits(compiles, x = max(a,0)),
"should have selected the rvalue version");
static assert(__traits(compiles, x = max(1,0)),
"should have selected the rvalue version");
}
reply