C Is a Demonic Instrument
C is not just a bad language. It is a demonic instrument, that leaves scars on your soul that not even time can heal. We had a small bug recently where one extension that works with SQLite stopped working with libSQL. One of our engineers, @iavins, spent a whole day debugging it, and manage to find the commit that broke it. He looked at the commit puzzled, and told us it wasn't really doing much, just adding some functions and moving stuff around. I just heard the description and uttered: "something, somewhere, changed the size, alignment or field ordering in a struct, and broke everything". Lo and behold: I was right. As it was night for @iavins in India, I looked at the commit, saw which structs it was touching, and added void pointers to the structs. Just the void pointers, without the rest of the code. And then we found out that one of them, in fact, had to be kept untouched.
A programmer recounts a tiny C-related bug in which changing a struct’s layout broke compatibility between SQLite-related software. The joke is that C has infamous low-level memory and ABI pitfalls: even seemingly harmless changes to field size, alignment, or ordering can break everything, and the absurd temporary fix was adding void pointers to the structs. EN: A programmer recounts a tiny C-related bug in which changing a struct’s layout broke compatibility between SQLite-related software. The joke is that C has infamous low-level memory and ABI pitfalls: even seemingly harmless changes to field size, alignment, or ordering can break everything, and the absurd temporary fix was adding void pointers to the structs.
social media post / пост в социальной сетиprogrammer / программистprofile photo / фотография профиляverification badge / значок верификацииfollow button / кнопка подпискиblack background / чёрный фонwhite text / белый текстcode / кодprogramming language / язык программированияstruct / структураvoid pointer / указатель voidsoftware bug / программная ошибкаSQLite logo reference / упоминание SQLitelibSQL reference / упоминание libSQLdebugging / отладкаcommit / коммит
- @gentoomemes / 9391 2024-02-14
- Template
- Twitter/X text post
- Type
- image
- Size
- 479×800 · 94.4 KiB
- Mood
- sarcastic, exasperated
- Language
- en
- Added