
2025-07-13 20:38:29
Ciekawostki o Pythonowym "limited API" i "stable ABI".
1. #CPython ma "limited API". Jak się tego używa, to kompilowane rozszerzenia są zgodne ze wskazaną wersją i wersjami nowszymi. Takie rozszerzenia dostają sufiks `.abi3.so` (albo podobny) zamiast np. `.cpython-313-x86_64-linux-gnu.so`.
2. Wsparcie podzielone jest między CPythona i systemy budowania
"On a normal ascii line, the only safe condition to detect is a 'BREAK'
- everything else having been assigned functions by Gnu EMACS."
(By Tarl Neustaedter)
https://rudhar.com/sfreview/siworin/siworin06a.htm
More performance test of my search engine siworin, under Alpine Linux (busybox, musl; slow) and Debian (GNU; faster, especially faster sorting).
But GNU has bugs, still unfixed 4.5 years after reporting them, w…
The chat program is in public domain. This is not the GNU public license.
If it breaks then you get to keep both pieces.
-- Copyright notice for the chat program
I'd just like to interject for a moment. What you're referring to as OpenBSD, is in fact, GNU/OpenBSD, or as I've recently taken to calling it, GNU plus OpenBSD. OpenBSD is not an operating system unto itself but rather another free component of a fully functioning GNU system
I wanted to replace my home PC with my laptop for my daily tasks, but for some reason the old ViewSonic monitor is incompatible. It doesn't show up on the hdmi connections when I list them with xrandr and, what's worse, it's the same with all other laptops, no matter if they run Windows or GNU/Linux.
In the end, after testing it on 3 laptops and a minipc, it only works connected to my current PC.
Has anyone seen anything similar? 🤨
Some fun facts about #Python limited API / stable ABI.
1. #CPython supports "limited API". When you use it, you get extensions that are compatible with the specified CPython version and versions newer than that. To indicate this compatibility, such extensions use `.abi3.so` suffix (or equivalent) rather than the usual `.cpython-313-x86_64-linux-gnu.so` or alike.
2. The actual support is split between CPython itself and #PEP517 build systems. For example, if you use #setuptools and specify `py_limited_api=` argument to the extension, setuptools will pass appropriate C compiler flags and swap extension suffix. There's a similar support in #meson, and probably other build systems.
3. Except that CPython freethreading builds don't support stable ABI right now, so building with "limited API" triggers an explicit error from the headers. Setuptools have opted for building explicit about this: it emits an error if you try to use `py_limited_api` on a freethreading interpreter. Meson currently just gives the compile error. This implies that package authors need to actively special-case freethreading builds and enable "limited API" conditionally.
4. A some future versions of CPython will support "limited API" in freethreading builds. I haven't been following the discussions closely, but I suspect that it will only be possible when you target that version or newer. So I guess people will need to be building two stable ABI wheels for a time — one targeting older Python versions, and one targeting newer versions plus freethreading. On top of that, all these projects will need to update their "no 'limited API' on freethreading" conditions.
5. And then there's #PyPy. PyPy does not feature a stable ABI, but it allows you to build extensions using "limited API". So setuptools and meson just detect that there is no `.abi3.so` on PyPy, and use regular suffix for the extensions built with "limited API".
@emi200@sakurajima.moe GOG is my first platform of choice these days. They suck when it comes to GNU/Linux support, but Heroic with Wine or Proton largely fixes that.
I used to get everything physically, but I'll rarely be doing that going forward (with everything going digital, and even physical carts mandating a download for the game, or updates, or DLC...). As such, there's no longer any point prioritising games on console unless it's a really good exclusive — and even t…
Très bonne idée cette carte pour recenser des aidants Š l'installation et prise en main de linux : https://aidelinux.gogocarto.fr
Un des repair cafés dont je suis membre est chaud pour ma proposition d'organiser des sessions de découverte et install parties Š l'ancienne, pour toutes…
Wahey! Now, I can completely boot this Krups off a modern host:
krups:~# uname -a
Linux krups 2.4.27 #3 Sun Jun 15 15:25:39 UTC 2025 sparc GNU/Linux
krups:~# cat /proc/mounts
.....
rootfs / rootfs rw 0 0
/dev/root / nfs rw,v3,rsize=4096,wsize=4096,hard,udp,nolock,addr=192.168.69.1 0 0
*v3* !
This https://arxiv.org/abs/2409.04588 has been replaced.
initial toot: https://mastoxiv.page/@arXiv_csSE_…