1,282 karma · joined August 12, 2016
Raymond's blog on the Alpha https://devblogs.microsoft.com/oldnewthing/20170816-00/?p=96...
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p27...
It's also important to recognize that controllers are human and can only deal with one thing at once. The current system generally speaking gives one human control over one section of airspace.
In this specific case the pilot should have been aware of the restricted airspace and set a flight plan that took them away from it before turning to their destination. There is zero excuses for flying into restricted airspace as there are published maps. The zone around the WH and USC is a permanent zone, so even less of an excuse.
Architectures set back significantly by Itanium: POWER, SPARC
The answer is: yes
Itanium failed because getting instruction parallelism is actually incredibly hard to do and compilers didn't catch up in time to make it matter. But it also failed because of AMD64 which had backwards compat, was cheaper by a lot, and was a lot easier to get decent perf out of.
Opinion: I think Itanium was always destined to fail. The idea seems good on paper but fails in practicality because it limits what the hardware can do to achieve speed without breaking backwards compat with itself. You can't have a superscalar Itanium by definition because branch prediction etc. is by design delegated to the compiler. This means that the chips can literally only go up via clock speed, which as we now know doesn't scale forever.
In theory RISC was intended to be basically no microcode where the CPU would expose the hardware instructions. In reality that is done to an extent but superscalar basically made the advantage that had mostly obsolete. This left RISC having the main advantage of having a ton of registers which does simplify other things when designing a superscalar CPU. But at the end of the day most architectures are falling into the "FISC" singularity where speed is all that matters. This is why AARCH64 was deliberately designed to be insanely superscalar from the ground up.
But the point of a battleship wasn't just showing off, it was also area denial. You really can't move another surface combatant into an area with a battleship unless it is a battleship (that didn't stop Taffy 3 [3] from trying). So battleships served two clear roles IMO: Area denial and shore bombardment. There is a reason the US Navy kept the Iowas around until the 90s. For what they do there is nothing like them. That said let's also be clear the counter to a battleship is an aircraft carrier, not a battleship based on existing data.
[1] https://en.wikipedia.org/wiki/Battle_of_Leyte_Gulf#Battle_of... [2] https://en.wikipedia.org/wiki/Naval_Battle_of_Guadalcanal [3] https://en.wikipedia.org/wiki/Battle_off_Samar
std::unique_ptr<ADDRINFOEXW, addrinfo_deleter> holder;
ADDRINFOEXW hint = { .ai_family = AF_UNSPEC };
if (const auto result = GetAddrInfoExW(
sHost
, nullptr
, NS_ALL
, nullptr
, &hint
, std::out_ptr(holder)
, nullptr
, nullptr
, nullptr
, nullptr); result != ERROR_SUCCESS) {
// print error here
}The (admittedly very dumb) issue I as a developer have switching from MFC/ATL to newer kits is that it makes it very hard to ship all in one apps without bloating them by shipping the control toolkit every single time. I realize this is a dumb complaint, but when I can get something down to ~3.5MB which I consider a win for size squishing in modern apps. But does it make sense for all cases? No, if I was writing something people need to use on more than an occasional basis I'd probably grab a toolkit that did the work for me to use D2D (which btw operates on top of either GDI or DX11, not DX12).
[1] https://learn.microsoft.com/en-us/windows/win32/direct2d/com... [2] https://learn.microsoft.com/en-us/windows-hardware/drivers/d...
https://www.techdirt.com/2018/04/27/how-microsoft-convinced-...
There is a Blog from Raymond on this[1]. The TL;DR: is that zero length arrays and FAMs weren't legal until C99. Not sure where the support from MSVC factors in. But that's the story and AFAIK he's sticking too it.
[1] https://devblogs.microsoft.com/oldnewthing/20040826-00/?p=38...
[1] Also because the C++ committee ignored Herb and just forced it into later C++ revs from a library perspective.
Longerish answer: Still maybe, drivers are going to be an issue. Just because the thing can boot into a DOS compatible mode doesn't mean it will have windows 9x compatible drivers. Having DOS drivers does not also make something automagically windows 9x compatible either[2]. That said it should be plausible to get a board like Rastari did that is fairly compatible because industrial reasons. But it does mean you have to pick carefully.
[1] https://www.vortex86.com/news/3 [2] https://devblogs.microsoft.com/oldnewthing/20071224-00/?p=24...
[1] https://devblogs.microsoft.com/oldnewthing/20071224-00/?p=24...
I think most of the retro youtubers I've seen have done this mod along with PRam battery replacements that don't leak. They seem to use the m.2 SATA mode drives to 44pin like thus (not recommending, just showing an example) https://www.amazon.com/44pin-Converter-Adapter-Computer-Acce...
But the page tables do technically support 16bit protected mode code when in compatibility mode under long mode AFAICT.