> You know what's the most interesting part of this whole article? The thing Rust is very famous for, memory safety, did not feature at all.
I think that's the essential point, really... It'd be hard to argue that the rest of Rust isn't overall "better" than C++, but the compromises made to flexibility and ergonomics to achieve memory safety in Rust are the biggest points of contention for Rust critics.
The GBA SDK is pretty minimal in terms of library support. It's mostly functions for accessing save data plus wrappers around syscalls found in the bootrom. Those syscalls are some basic math functions, a few decompression algorithms, and an early version of the MusicPlayer2000 sound engine.
I would not let the name distract you - it's equivalent to overloading, not "generics" (i.e. parametric polymorphism)
In that capacity I think it's quite a lot more sane than C++. Having a closed set of overloads, not having name mangling, not having complex name lookup rules are all a good thing.
I have made a lengthy comment about why I dislike C23. I cannot find it right now, but yeah, mainly because it is kind of turning into C++ and I do not like that, that is why I will continue sticking to C99. The earlier version of the book is great for that.
I have to say, of all programming languages, C is the one which gets the most strident opposition to the most minor of changes.
I would love to read your reasoning because so far I have not been able to understand the stiff resistance to what I see are very positive changes aimed at cleaning up so much of the mess that is C.
> Within a structure object, the non-bit-field members and the units in which bit-fields reside have addresses that increase in the order in which they are declared. A pointer to a structure object, suitably converted, points to its initial member (or if that member is a bit-field, then to the unit in which it resides), and vice versa. There may be unnamed padding within a structure object, but not at its beginning
C99 §6.7.2.1.13
> An implementation may allocate any addressable storage unit large enough to hold a bit-field. If enough space remains, a bit-field that immediately follows another bit-field in a structure shall be packed into adjacent bits of the same unit. If insufficient space remains, whether a bit-field that does not fit is put into the next unit or overlaps adjacent units is implementation-defined. The order of allocation of bit-fields within a unit (high-order to low-order or low-order to high-order) is implementation-defined. The alignment of the addressable storage unit is unspecified.
Which is standardese for pretty much exactly everything you said :)
The consequence of the first rule is that there's only one sane way to lay out structs. The only way to break that rule which I can imagine would be to add extra padding - you can't swap the order of any members under these rules.
Etrian Odyssey released in 2007 and was a fun throwback to this sort of experience. The concept for this game is that the Nintendo DS's touch screen can be used to draw a map and keep notes while dungeon crawling. It's funny to think that it's about as old now as the style of games it was imitating then.
The 3DS also had a note-keeping system built into the main menu and usable in any game, but I don't think many people bothered.
It is new in living memory. The scale and sheer audacity of it is staggering.
Prior to this year, you could say with a straight face that the US is mostly a low-corruption, rule of law sort of country. Even the veneer of that has been thrown completely out the window, in favor of rule-by-law. This government is petty, vindictive, and is openly peddling access to groups that are passing loyalty and purity tests.
Meanwhile, all the watchmen have been fired, and replaced with party loyalists.
I present Exhibit A: The shitshow around the cessation of the prosecution of Eric Adams. It's literal quid-pro-quo political horse trading, where he'll be shilling for Trump, in exchange for not going to prison.
I also present Exhibit B: Every tech firm literally tripping over itself to virtue signal and comply with whatever nonsense is coming out of the White House. Showing up in person to kiss the ring helps too, see, in particular - TikTok magically getting a stay of execution, in exchange for some secret, undisclosed backroom deal.
If your boss at work behaved this way to you, anyone here would be livid.
I think it happening in the US is the new bit, but the WOT produced the insane scenes of flying in twelve billion dollars of loose notes and it (of course) vanishing: https://www.theguardian.com/world/2007/feb/08/usa.iraq1
Those rights, like to bear arms and freely associate, only exist on paper. That they are in a state of nominal existence and practical abrogation serves to deradicalise and defuse resistance against the government, not encourage it.
I think the point is that Intel had such a lead in the Bulldozer era that for AMD to overtake them was a tremendous failure.
I would not say that the first gen of Zen is was a clear winner over Skylake. It took a couple iterations before AMD clearly took the lead. AMD was simply so far behind that several large generational improvements were needed to do better than Intel.
> I would not say that the first gen of Zen is was a clear winner over Skylake.
In 2017, I would not have said that either for Zen 1 without qualification[1]. Zen 3 on the other hand, was a winner.
That said, 1st gen Zen had better bang-for-buck than Intel, for multicore workloads - in my case, I had built a workstation and thr equivalent intel build would have cost much more, expensive Ryzen motherboards notwithstanding.
1. In my comparison as I buyer, I didn't compare Intel and AMD processors by core count, but by what I'd get with my budget. The AMD build I eent with was better than an intel build for the same amount of money.
The first smartphone I owned was a ZTE Blade 13 years ago. As a budget phone, that definitely had compromised performance.
It's been years and years since I ever felt like my phone's performance was holding back its usefulness to me. I have only ever replaced my phone because the battery could no longer hold a charge or the charging port was damaged beyond use.
It has a camera, web browser, chat apps, and receives emails. It also makes calls and texts. It doesn't lag while doing these things. That's plenty.
I think that's the essential point, really... It'd be hard to argue that the rest of Rust isn't overall "better" than C++, but the compromises made to flexibility and ergonomics to achieve memory safety in Rust are the biggest points of contention for Rust critics.