I built labeille to find CPython JIT crashes, but it's a "run real world test suites at scale" platform.
It also works for:
— Checking which packages pass their tests on a new CPython version
— Testing free-threaded (no-GIL) CPython compatibility
— Measuring coverage.py or memray overhead across hundreds of packages
— Comparing CPython vs PyPy performance on real code
The registry of 350+ packages with install/test commands is the core.
#Python #CPython #PyPI #testing #benchmarking #labeille
labeille can compare 2 test runs and show what changed and why it changed.
When it goes from PASS to CRASH, labeille looks at the package's repo. If the commit is the same, it's a CPython/JIT regression. Otherwise, it might be the package:
requests: PASS → CRASH
Repo: abc1234 → abc1234 (unchanged — likely a CPython/JIT regression)
flask: CRASH → PASS
Repo: 222bbbb → 333cccc (changed)
This allows figuring out "3 of these are JIT regressions".
#Python #CPython #JIT #labeille #testing
labeille has a bisect command that binary-searches through a package's git history to find the commit that triggers a JIT crash:
labeille bisect requests --good=v2.30.0 --bad=HEAD --target-python /path/to/cpython-jit
https://github.com/devdanzin/labeille#bisecting-crashes
Commits that won't build get skipped automatically (like git bisect skip), revisions get a fresh venv so dependency versions don't leak, and you can filter by crash signature when a package has distinct crashes.
#Python #CPython #JIT #debugging #labeille
labeille runs test suites from popular PyPI packages against a JIT-enabled CPython build and catches crashes: segfaults, assertion failures, etc.
If all of requests, flask, attrs, etc. pass their tests under the JIT, that shows the JIT is working. If one crashes, there's a bug with a reproducer. We've found one crash so far: https://github.com/python/cpython/issues/145197
This requires curating a local package registry with repo URLs, install and test commands, etc.
#Python #CPython #JIT #fuzzing #labeille #testing
I've been working on a new Python tool: labeille. Its main purpose is to look for CPython JIT crashes by running real world test suites.
https://github.com/devdanzin/labeille
But it's grown a feature that might interest more people: benchmarking using PyPI packages.
How does that work?
labeille allows you to run test suites in 2 different configurations. Say, with coverage on and off, or memray on and off. Here's an example:
https://gist.github.com/devdanzin/63528343df98779b5fedf657bf8286cd
#Python #labeille #fuzzing #JIT #PyPI #benchmarking
Python Tip: Type Hints for Clarity
def greet(name: str, times: int = 1) -> str:
return (f'Hello, {name}! ' * times).strip()
result: str = greet('World', 3)
Type hints make code self-documenting and enable IDE autocomplete. Your future self will thank you.
https://raccoonette.gumroad.com/l/Python-for-Beginners-From-Zero-to-Your-First-Projects
#Python #CodingTips #Programming
Python Tip: collections.Counter
from collections import Counter
words = 'the cat sat on the mat'.split()
Counter(words).most_common(2)
# [('the', 2), ('cat', 1)]
Counter counts occurrences in O(n) time. Better than writing your own dict-based counter.
https://raccoonette.gumroad.com/l/Python-for-Beginners-From-Zero-to-Your-First-Projects
#Python #CodingTips #Programming
Olha eu na primeira aula do curso Programando em Python realizado pelo SENAI - Londrina!
Vamos ver o que aprenderei de novo hahahahah
#Python #SENAI #Programação #Aprendizagem
PlayStation is hiring Senior Software Engineer-Full Stack
🔧 #golang #java #javascript #python #react #api #aws #azure #cicd #sql #seniorengineer
🌎 San Diego, California, United States
⏰ Full-time
🏢 PlayStation
Job details https://jobsfordevelopers.com/jobs/senior-software-engineer-full-stack-at-playstation-com-dec-17-2025-1fb5eb?utm_source=mastodon.world&utm_medium=social&utm_campaign=posting
#jobalert #jobsearch #hiring
Conference registration for the 2026 Applied Machine Learning Conference is now open! The conference will take place on April 17–18 in Charlottesville, Virginia — now just 7 weeks away. appliedml.us/2026/register/
Conference Registration | Appl...
Yesterday I released #pygobject 3.56.0, the #Python bindings for the #GNOME platform. Because it’s a packed release, I summarised the biggest improvements in a post: https://pygobject.gnome.org/news/pygobject-3-56.html
Just found reviewer from @simonpcouch.com@bsky.brid.gy: Human-scale LLM code review, as if a member of the tidyverse team were there with you to workshop your code for reproducibility, readability, and resilience. Note it's still very experimental. #Rstats github.com/simonpcouch/...
