Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
xorblurb
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
8 ms
·
1.
▲
by
xorblurb
8y ago
That's, given the question, is a really moronic answer. There are means to apply the modern approach of optimizations beyond O0 on C without importing all kind of UB from the language level. You just have to actually proove the prope
2.
▲
by
xorblurb
8y ago
Those kind of discussions have various effects, some of which I believe to be far from moot. First, they permit that some people even take notice about this situation. Few developers read the standard and even less write it or follow the di
3.
▲
by
xorblurb
8y ago
Could have been (should, in some -most?- cases) implementation defined.
4.
▲
by
xorblurb
8y ago
Microbenchmark can be very misleading compared to real impact in real programs. Still, the gains allowed by UB of signed overflow (when you are lucky enough that this transformation is actually correct in the context of what the original pr
5.
▲
by
xorblurb
8y ago
(Technically it is not really an overflow check the problem in that case, but typically more the need of extending an index from 32 to 64 bits because the instruction set in 64 bits do not support indexing with 32 bits index) If you want pe
6.
▲
by
xorblurb
8y ago
Large pieces of sw have been able to switch some plateform specific code to other compilers (chrome for windows comes to mind). This is probably way smaller than the whole Windows, but I would not be surprised if some MS dev are already int
7.
▲
by
xorblurb
8y ago
Sane compilers should do that. The standard should eventually specify that. But before it does, you can not write portable code that expect that (but hopefully once enough compilers are sane but before the standard is updated, you can w
8.
▲
by
xorblurb
8y ago
Modern DMA is cache coherent (maybe except if you opt-out of it? I'm not even sure you can). It is still costly though.
9.
▲
by
xorblurb
8y ago
It's also integrated to new instructions to flush things and wait for them to be made persistent.
10.
▲
by
xorblurb
8y ago
I think you can still do non burst transactions and even set masks on byte granularity for writes. Classic processors probably don't do that, though.
11.
▲
by
xorblurb
8y ago
VS2012 (I guess this was the compiler, maybe it has been upgraded after) had a quite limited support of C++ 11. Only starting with VS2015 (and then maybe even update 2 IIRC) we had what we can call C++ 11 (for the purpose of not having to p
12.
▲
by
xorblurb
9y ago
This seems like an interesting book but a few points are dangerous, especially if it is used for teaching. 1. Concurrent access to a variable out of a critical section is qualified as not being dangerous. This actually can't be decided
13.
▲
by
xorblurb
9y ago
I will never ever buy the "we are forced to do evil things for the greater good" argument. Especially behind real inventors' back. You can't just dictate your own distorted ethical vision just because you are too big. Ed
14.
▲
by
xorblurb
9y ago
HN turns rabid, rightfully so. Even with so-called good motives, which are not even proven. And to be clear, in no way there can be a good motive here: their pledge is limited to Free and Open Source Software, its not even sure this pledge
15.
▲
by
xorblurb
9y ago
Of course if you can do that, it's really good. However, sometimes you need low latency.
16.
▲
by
xorblurb
9y ago
That very page makes me think device drivers don't choose their DIRQL. Any more precise pointer to how they can do that?
17.
▲
by
xorblurb
9y ago
Traditional NT personalities were about the mechanism details. Otherwise it is very current in operating systems to have a common kernel running different kind of userspace using different API - so of course there are some similarities, but
18.
▲
by
xorblurb
9y ago
Needing to wake up usermode is not necessarily an insurmountable obstacle; under Linux you can use a PREEMPT config. Storming a network card having unwanted consequences can also be mitigated: under Linux you have some network device driver
19.
▲
by
xorblurb
9y ago
Windows does not really have interrupt priorities IIRC. It kind of sort of have some, but the applicative code (device driver included) can't chose at which level they run their ISR, so its quite random whether or not the ISR you prefe
20.
▲
by
xorblurb
9y ago
Except WSL has little in common with traditional NT personalities. Traditional NT personalities were a false good idea, and have been a failure in the long term, especially to run Unix workloads -- however this jugement is easy with insight
21.
▲
by
xorblurb
9y ago
I've seen some speculative inlining happening even without LTO (so obviously, in the same TU) with GCC.
22.
▲
by
xorblurb
9y ago
For me, personally? I occasionally can write that kind of stuff.
23.
▲
by
xorblurb
9y ago
I replaced my Thinkpad by an XPS15 with a small fear that I would regret the Thinkpad, and I absolutely not. Under Windows, the Dell software is far better than the one of Lenovo (far less bloated, and far more discret). I thought that I wo
24.
▲
by
xorblurb
9y ago
> Unless there's an instruction you need that doesn't have an intrinsic or you're writing something like a spin lock where instruction ordering is critical and a compiler barrier for some reason is not sufficient, there&#x
25.
▲
by
xorblurb
9y ago
A virtual call on a modern processor is typically not very costly. Too much inlining, OTOH, can be (if it generates bloated code that trashes your cache)
26.
▲
by
xorblurb
9y ago
> The contents of padding are unspecified after a write; reading it is not UB. Ok so like I said: "depending of the [effective] type maybe reading an uninitialized byte will be UB, or maybe not, depending of how that byte was in a f
27.
▲
by
xorblurb
9y ago
I might actually end up doing that. But honestly what a waste of resources. I would prefer to be able to work on topics that are not problems created by a recent shift of view of how compiler should be designed and optimize, shift that is f
28.
▲
by
xorblurb
9y ago
I might actually end up doing that. But honestly what a waste of resources. I would prefer to be able to work on topics that are not problems created by a recent shift of view of how compiler should be designed and optimize, shift that is f
29.
▲
by
xorblurb
9y ago
Nope. The age of the sufficiently "advanced" (actually: retarded?) compiler was only theoretical during most of the lifetime of C, and UB were actually defined mostly because of differences between processors, NOT compilers. Compi
30.
▲
by
xorblurb
9y ago
> The standard can't mandate a diagnostic for undefined behaviour, because it's not always possible to determine if behaviour is undefined. Yet that argument is stupid if we are talking about compilers issuing warnings for the
More ›