war mal wieder beim Blutspenden.
Und offenbar wird die Stuttgarter Blutspendezentrale richtig "woke". 👍
Neben den "Standard-Würstchen" gibt es inzwischen auch eine vegetarische Alternative. Und seit dem letzten Mal haben sie jetzt auch die CocaCola rausgeschmissen und durch die lokale May Cola ersetzt.
Find ich gut!
Es war natürlich nicht erst meine 31. Blutspende, aber da es nicht zentral registriert wird, muss man in jeder Stelle wieder von Null beg…
I've probably mentioned that I'm working on switching #Gentoo from our half-broken eselect-ldso logic to #FlexiBLAS. This also involves a transition period where both setups would be supported.
A good thing is that the switch is ABI-compatible with the previous state (or at least it's supposed to be — we're working with upstream on fixing function coverage). Since libblas.so, liblapack.so and the rest are replaced by symlinks, programs that link to them will simply start using FlexiBLAS. So far, so good.
Unfortunately, switching the other way doesn't work as well. Stuff newly built against our libblas.so & co. symlinks naturally reads FlexiBLAS's SONAME from them, and links to libflexiblas directly. So should you decide to switch back, some packages will stay linked to FlexiBLAS and will need to rebuilt.
In order to avoid this, I would have to replace the symlinks with wrapper libraries, having libblas.so.3 and so on SONAMEs, and linking to libflexiblas. Unfortunately, a dummy wrapper isn't going to work — the linker will complain about using indirect symbols from libflexiblas.so. So I would probably have to "reexport" their symbols somehow, and ideally split into appropriate libraries, so that `-Wl,--as-needed` wouldn't drop some of them. But how to do that?
Well, let's look at the existing logic for eselect-ldso — clearly both BLIS and OpenBLAS create some wrappers. So I've spent some time investigating upstream Makefiles, and literally couldn't find the respective targets. I mean, these are quite complex Makefiles, but I'm grepping hard and can't find even a partial match.
As it turns out, these Makefile targets are added by Gentoo-specific patches. And these patches are just horrible. In case of OpenBLAS, they create the wrapper libraries by linking all the relevant .o files from OpenBLAS build, plus the shared OpenBLAS library. So the OpenBLAS symbols relevant to each interface end up duplicated in libblas.so, liblapack.so, etc., and apparently the symbols needed by them are taken from libopenblas.so. The individual interface libraries aren't even linked to one another, so they expose their own duplicate symbols, but use the implementation from OpenBLAS instead.
BLIS is even worse — the patch is simply creating libblas.so and libcblas.so, using all BLIS objects directly, plus symbol visibility to hide symbols irrelevant to the library. So yes, libblis.so, libblas.so and libcblas.so are roughly three separate copies of the same library, differing only in symbol visibility. And of course libcblas.so doesn't use libblas.so.
Truly #GSoC quality.
On nut graphs with two vertex and three edge orbits
Ksenija Rozman, Primo\v{z} \v{S}parl
https://arxiv.org/abs/2508.17842 https://arxiv.org/pdf/2508.17842
Classification of global structures of evaporating regular black holes with infinite periods of time
Kensuke Sueto, Hirotaka Yoshino
https://arxiv.org/abs/2508.21315 https://
Another day, another instance of trying to use some #golang code I found on the Internet throwing a nil pointer dereference panic, another moment spent wondering why you would design a language where that is possible in the 21st century