Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2023-04-08 00:00:00Z and 2023-04-09 00:00:00Z
ZombieToad
if you could provide proof for me being constantly racist that would be good
In fact, -static gcc flag on Linux doesn't work now. Let me cite from the GNU libc FAQ:
2.22. Even statically linked programs need some shared libraries
which is not acceptable for me. What
...
Well I think the reason was to have consistent behaviour across all programs on the same system, e.g. one program resolves a hostname one way and another a different way would be undesirable
NSS allows using different services (e.g. NIS, files, db, hesiod) by just changing one configuration file (/etc/nsswitch.conf) without relinking any programs.
You could isolate such global state into a kernel part of the driver and the rest can be statically linked. But is that strictly better for performance? Now the code that could be certain about state needs to wait on a mutex
Anyway, idk. It certainly is possible to split it. Just not sure if it strictly implies better performance, since dynamic linking is pretty cheap, only an indirect call away
Learath2
You could isolate such global state into a kernel part of the driver and the rest can be statically linked. But is that strictly better for performance? Now the code that could be certain about state needs to wait on a mutex
well it has to be minimized ofc, and mutex was just to illustrate the idea.
but what i'd see is a kernel that is so micro that it really just prevents data races
Learath2
Anyway, idk. It certainly is possible to split it. Just not sure if it strictly implies better performance, since dynamic linking is pretty cheap, only an indirect call away
But is removing deadcode really doing anything except optimizing the loaded size of the library? Some more advanced LTO can help and stuff can be inlined, so there definitely will be performance improvements on a single app basis. For the whole system idk either. Too complex for me to imagine as a hypothetical
Learath2
But is removing deadcode really doing anything except optimizing the loaded size of the library? Some more advanced LTO can help and stuff can be inlined, so there definitely will be performance improvements on a single app basis. For the whole system idk either. Too complex for me to imagine as a hypothetical
well yeah dead code and link time optimizations are the mean points indeed
08:37
with a language like rust that is rather relaxed about how a struct must look like, it could even optimize structures across a whole programm across the whole amount of libraries needed
So I guess the best way to achieve this would be a minimal dynamic library with a set interface managing global state and the rest of the library is statically linkable
I think I still want a libsyscall dynamically linked for now just so more than a single version of the kernel can be handled. The kernel isn't stable enough yet
08:43
I think atleast for non-embedded purposes the kernel still needs to do some form of syscalls and their dispatching
-DCLIENT=[ON|OFF]
Whether to enable client compilation. If set to OFF, DDNet will not depend on Curl, Freetype, Ogg, Opus, Opusfile, and SDL2. Default value is ON.
Having received more than 100 awards and recommendations from international hardware websites and magazines, Noctua’s flagship model NF-A12x25 has established itself as a true deluxe choice when it comes to premium-quality quiet 120mm fans. Various state-of-the-art technologies and a record tight tip clearance of only 0.5mm, which is made possib...