693 karma · joined October 29, 2021
It really is tragic. He deserved better. RIP King Terry https://youtu.be/Xb9GBLPCeVw
Math often doesn't have applications for hundreds of years and that application is only possible because people deeply understand it and how it applies to the real world.
Generating an endless list of true statements doesn't really do anything, those things are already true regardless of whether someone has written a lean program to model them.
if (BLQS_CMP(x, piv)) { *lwr = x; ++lwr; }
else { *rwr = x; --rwr; }
The difference is post-increment has strange semantics. While the compiler should be able to understand that the value wasn't used and post increment and pre increment are the same I wouldn't be surprised if it tracks that it was post increment and misses some optimizations because it's trying to garuntee post increment semantics.Although it's true compilers can be very sensitive to exact phrasing triggering specific optimization passes. So it still might not give the branchless version by changing it to pre increment (which is the same as a normal +=1).
The only way to really know is to dig into what optimization passes clang took in both cases and analyze the difference.
I think this is still true today. Software is only just starting and there is a lot of room to find better ways of doing things.
I was just doing some research and apparently all of this stuff was invented around the late 60s and so in the 70s it was still new and by the 90s it was standard practice. The dragon book came out in 1986 and spelled it all out in one place.
Today we have the benefit of knowing the right ideas to use from the start and confidence that if you follow the formula it will all work out.
Also if you broadcast noise when your missile is about to hit then your own jamming signal acts as an early warning as well, although I guess it wouldn't provide location.
It's a major overhaul of the design they've been working on for a long time. There was talk of v3 fixing the problems in early v2 test flights. The booster is v3 as well which presumably is why they had some problems. I believe this is also the first time they flew the v3 engines with the plumbing fully integrated in a single piece housing they 3D printed.
Edit I found this in the paper
> Elevator sidesteps the code-versus-data determination altogether through an application of superset disassembly [6]: we simultaneously interpret every executable byte offset in the original binary as (i) data and (ii) the start of a potential instruction sequence beginning at that offset, and we build the superset control flow graph from every one of the resulting candidate decodes. Every potential target of indirect jumps, callbacks, or other runtime dispatch mechanisms that cannot be statically analyzed therefore has a corresponding landing point in the rewritten binary. These targets are resolved at runtime through a lookup table from original instruction addresses to translated code addresses that we embed in the final binary.
To be clear I don't think the AI can do either job