A format that does one thing well or one-size-fits-all?
The Unix philosophy states that we ought to design programs that “do one thing well”. Nevertheless, the current trend is to design huge monoliths with multiple unrelated functions, with web browsers at...
View ArticleThe story of distutils build directory in Gentoo
The Python distutils build system, as well as setuptools (that it was later merged into), used a two-stage build: first, a build command would prepare a built package version (usually just copy the .py...
View ArticleOptimizing parallel extension builds in PEP517 builds
The distutils (and therefore setuptools) build system supports building C extensions in parallel, through the use of -j (--parallel) option, passed either to build_ext or build command. Gentoo...
View ArticleThe dead weight of packages in Gentoo
You’ve probably noticed it already: Gentoo developers are overwhelmed. There is a lot of unresolved bugs. There is a lot of unmaintained packages. There is a lot of open pull requests. This is all...
View ArticleThe review-work balance, and other dilemmas
One of the biggest problems of working in such a large project as Gentoo, is that there’s always a lot of work to be done. Once you get engaged deeply enough, no matter how hard you’re going to try,...
View ArticleOptimizing distutils-r1.eclass via wheel reuse
Yesterday I’ve enabled a new distutils-r1.eclass optimization: wheel reuse. Without this optimization, the eclass would build a separate wheel for every Python implementation enabled, and then install...
View ArticleGentoo: profiles and keywords rather than releases
Different distributions have different approaches to releases. For example, Debian simultaneously maintains multiple releases (branches). The “stable” branch is recommended for production use,...
View ArticleOverview of cross-architecture portability problems
Ideally, you’d want your program to work everywhere. Unfortunately, that’s not that simple, even if you’re using high-level “portable” languages such as Python. In this blog post, I’d like to focus on...
View ArticleThe perils of transition to 64-bit time_t
(please note that there’s a correction at the bottom) In the Overview of cross-architecture portability problems, I have dedicated a section to the problems resulting from use of 32-bit time_t type....
View ArticleTesting the safe time64 transition path
Recently I’ve been elaborating on the perils of transition to 64-bit time_t, following the debate within Gentoo. Within these deliberations, I have also envisioned potential solutions to ensure that...
View Article