@ignaloidas @wolf480pl Language committees never concerned themselves with sockets, and we didn't end up with such explosion. We also do not have a multitude of libraries for a simple TLS-wrapped socket abstraction.
Notices by Alexander Monakov (amonakov@mastodon.gamedev.place)
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Tuesday, 22-Apr-2025 16:00:00 JST Alexander Monakov
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Tuesday, 22-Apr-2025 14:42:37 JST Alexander Monakov
I still think that in C and C++ (additions to) standard libraries should be just for things that cannot be properly implemented without coordination with the compiler.
Likewise, "breadth" of the stdlib is not a strength of the language, nor where the main weak points are.
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Tuesday, 22-Apr-2025 14:42:35 JST Alexander Monakov
@wolf480pl I'd say they can be a part of a normal library, not something the language committee needs to be concerned with. And how easy it's to write and maintain _is_ a strength of the language.
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Saturday, 25-Jan-2025 00:07:56 JST Alexander Monakov
@dalias I do not see how this relates to [non-]transitivity. What would be the hypothetical third struct that would be compatible with exactly one of pthread_mutex_t and mtx_t?
Generally speaking, do you have an example that illustrates non-transitivity of compatibility relation that does not involve unprototyped function type?
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Friday, 24-Jan-2025 19:15:29 JST Alexander Monakov
Let's say a C program comprises two translation units, each of which declares the following type:
struct list {
struct list *next;
void *payload;
};For deciding whether they are compatible, the following clause of the language standard applies:
"there shall be a one-to-one correspondence between their members such that each pair of corresponding members are declared with compatible types;"
Apparently the implementation may claim that such self-referential types are not compatible! 🙃
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Friday, 24-Jan-2025 19:15:28 JST Alexander Monakov
Now suppose the program contains not two, but three such translation units. Let's say the instances of the struct type are A, B, and C. Can the implementation choose to A be compatible with B, B with C, but C incompatible with A?
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Friday, 24-Jan-2025 19:15:27 JST Alexander Monakov
@wolf480pl I'm probably missing what you're hinting at, but to me the most "interesting" (but not really) question is what choice an implementation aiming to detect many instances of UB, such as TIS-interpreter, would make.
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Tuesday, 27-Aug-2024 19:27:43 JST Alexander Monakov
@icedquinn @wolf480pl I don't think it's academic, checking decoded data is how you catch unintended bugs; floating-point decoding can be reproducible if you know what you're doing
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Tuesday, 27-Aug-2024 19:02:20 JST Alexander Monakov
@wolf480pl @icedquinn I can confirm that, both the ffmpeg decoder and reference library use floats; the reference library can be configured to avoid floating-point arithmetic, but that's not the default.
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Tuesday, 27-Aug-2024 19:02:19 JST Alexander Monakov
@wolf480pl @icedquinn but even without floating-point, you can get different decodes if your other version of ffmpeg doesn't know about the clever backward-compatible upgrade:
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Tuesday, 27-Aug-2024 19:02:18 JST Alexander Monakov
@wolf480pl @icedquinn hm, but on second thought, that is specifically for streaming over networks, and wouldn't be used in conventional encoding?
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Tuesday, 27-Aug-2024 19:02:16 JST Alexander Monakov
@wolf480pl @icedquinn possibly? from the sound of it, the encoder would have to opt-in for that, and I barely know what I'm talking about here.
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Tuesday, 27-Aug-2024 19:02:15 JST Alexander Monakov
@wolf480pl @icedquinn again, on second^2 thought, in case of Youtube that wouldn't make sense, because they are streaming over TLS, which is not lossy. It is for use cases where the protocols are specifically built with dropouts in mind, like videoconferencing.
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Saturday, 24-Aug-2024 06:43:55 JST Alexander Monakov
I am once again baffled that apparently nobody is caching random blobs like source tarballs, because only 'busybox wget' can issue 'GET https://...' to a proxy (wget and curl issue CONNECT for https resources), and Squid doesn't interoperate with 'busybox wget', as it sends TCP FIN early — I had to use nginx with 'proxy_ignore_client_abort on'.
But now we finally have a setup where we can have a caching http(s) proxy in front of containers that rebuild a distro.
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Thursday, 02-May-2024 20:19:16 JST Alexander Monakov
In 'less', you can interactively add command-line arguments without leaving the pager by pressing '-': you can press '-S' to flip wrapping/chopping of long lines, and '-j11' to spawn 10 wor^W^W^W see extra ten lines of context above the match when searching!
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Saturday, 20-Apr-2024 16:28:16 JST Alexander Monakov
@regehr how do you rate this verbatim quote from the paper:
GWP-ASan is neither GWP nor ASan.
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Friday, 19-Jan-2024 02:49:05 JST Alexander Monakov
@lanodan @wolf480pl good to know, thanks!
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Friday, 19-Jan-2024 02:25:56 JST Alexander Monakov
My kingdom for a distro with smooth cross-installation (preparing a rootfs for a foreign architecture without qemu).
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Saturday, 06-Jan-2024 00:48:44 JST Alexander Monakov
@shafik and yet sometimes a quad-long is okay with g++ if you twist its arm in exactly the right way:
-
Embed this notice
Alexander Monakov (amonakov@mastodon.gamedev.place)'s status on Wednesday, 04-Jan-2023 21:46:16 JST Alexander Monakov
At work, I'm helping recover a server that fails to boot, and as I learn more about common UEFI implementations, I keep wondering "what were they thinking??"
- Modifiable state (NVRAM) on the same flash chip as essential boot software;
- No logs whatsoever.