XS has a reputation for being hard to access and I think it's a shame because I don't think it has to be: it's mostly that the Perl API is hard. What if you offload as much logic as possible to perl, and use XS only to expose functions to perl? That would be much easier for a casual XS writer who doesn't know anything about Perl's internals.| blogs.perl.org
XS has a reputation of being ugly and cumbersome, but in my experience, it doesn't have to be. Let's take for example this snippet from my Thread::Csp::Promise class: MODULE = Thread::Csp PACKAGE = Thread::Csp::Promise PREFIX = promise_ SV* promise_get(Promise* promise)...| Leon Timmermans
Perl I had a reasonably productive year, releasing several modules that I think/hope are useful for the wider ecosystem. Crypt::Passphrase This module manages the passwords in a cryptographically agile manner. That means that it can not only verify passwords using...| Leon Timmermans
A lot has been said about the recent CAT report and updates. It feels to me like we're not getting anywhere because the critical matters aren't being addressed....| Leon Timmermans
Before reading this, you should watch this video where Bryan Cantrill explains a value-conflict between Joyent and Node.js, I believe we have a similar problem. In it he defines a list of project values: All these values are important -...| Leon Timmermans
Hegel remarks somewhere that all great world-historic facts and personages appear, so to speak, twice. He forgot to add: the first time as tragedy, the second time as farce. The Eighteenth Brumaire of Louis Napoleon - Karl Marx Sawyer...| Leon Timmermans
What happened? In the latest development release of perl, smartmatch changed quite a bit. Almost everything you believed about smartmatching is now wrong No really, everything. All previous rules are gone except a single one: you can smartmatch against any...| Leon Timmermans
If you are using File::Slurp, you should possibly reconsider. Basically, there are three reasons to do so; It is wrong in a lot of cases. File::Slurp predates IO layers, and as such doesn't take them into account well. A few...| Leon Timmermans
Pre-hackathon: We Tux Day 1 My first day was largely spent analyzing and fixing bugs in the Module::Build::Tiny toolchain, and some Lancaster consensus discussions on various toolchain pieces. This was a very useful day, that ended with some wonderful food....| Leon Timmermans
A week ago I attended the 2025 PTS. For me it was a different PTS than the previous ones.| blogs.perl.org
Now that we have set up our mbtiny configuration in the previous post, we can actually use it. Minting a new distribution Minting a distribution is trivial once you’ve completed the setup. It’s typically just a matter of calling mbtiny...| Leon Timmermans
App::ModuleBuildTiny is a relatively new authoring tool. It aims to be a relatively lightweight (at least to some other tools like Dist::Zilla) and newbie friendly tool. It supports two install tools: Module::Build::Tiny (obviously what it was originally designed for) and Dist::Build; it does not support ExtUtils::MakeMaker or Module::Build.| blogs.perl.org
People usually don't think about Perl's type system. Some would even mistakenly claim it doesn't have one. It is, however, a most unusual one that doesn't really look like anything else.| blogs.perl.org
Crypt::Passphrase| blogs.perl.org
2023 was a rather productive year for me on CPAN. Aided by taking some time off I managed to release a whopping 18 new modules.| blogs.perl.org