Ongoing scheduling issues have meant we haven’t met all three together
for a while, but today Paul and Leon found a time to discuss a few
issues.
Dev point releases
5.43.3 just went out. .4 to .7 are accounted for, so we’ve a few months
yet on that. Nothing for PSC to do for now.
OpenSSL progress
Leon has been building a replacement for Net::SSLeay - an XS wrapper
of libssl. Eventual plan is that IO::Socket::SSL should be able to
use that instead. Eventual intention is that it can be bundled with the
actual core perl dist and get us ability to use https URLs from the
in-core CPAN client directly.
We should have a technical meeting at some point to round up some of
the interested parties. PSC’s involvement can just be keeping an eye on
it, and seeing if it is on track to be included in (5.)44.
TODO: Plan a time and audience for said meeting.
Better categorization of core vs dual-life modules
Without weighing in to the pros and cons of using a Monorepo approach to your organizations codebase, I am interested in hearing about tools and approaches that have been used with Perl.
For example, I have found that Bazel has Perl support which seem fairly actively. I wonder if there is anything that can integrate with Dist::Zilla? Or any way of managing pulling third party code?
Experiences with CI/CD in the normal Git hosting platforms are also of interest - although it does seem like Github and Gitlab are designed around death-by-repo - and I have seen some features to vary the "actions" behavior based on whats changed. I am however just as interested in if you have had experiences withotherplatforms please chime in!
Fwiw I realize that perhaps Git isn't the best for Monorepos (although you could argue that the Linux Kernel is in a monorepo) and I have no issue with current alternatives and upcoming ones.
Any plugins that can help? For anything mentioned or not.
I apologize it took longer than expected - open source doesn't always
move as fast as we'd like it to - but there's a lot of great things in
this release that make it worth the wait.
Head on over to Perl.com to check out the details. Here's a quick
summary of what's new:
New documentation, courtesy of a grant from the Perl and Raku
Foundation
Extendable config system, thanks to Mikko Koivunalho
Removed Dancer2::Template::Simple from core Dancer2
Retired our fork of Template::Tiny, and integrated our changes into
the core distribution (thanks, @ether!)
Configurable data/secrets censoring with Data::Censor
Logging of hooks as they are executed
New hook: on_hook_exception
CLI improvements:
Changes that allow for scaffolding of other things (plugins, etc.)
in future Dancer2 releases
Scaffolding of tutorial app
We're really excited for this release, and we hope you are too!
We often rely on our tools and just deploy new DB versions and move on.
Lets see these simple examples. Example 1
You have Schema v1 where table's column has the name `X`. At the next Schema v2 instead of it you created column named `Y`.
v1 -> v2
X -> -
- -> Y
So the tool correctly drops the `X` and creates `Y`. Example 2:
For downgrades it looks the similar:
v2 -> v1
Y -> -
- -> X
Simple! Right??
Example 3
Let's do it in more advanced way. Now instead of create/drop we will rename field:
v1 -> v2
X -> Y{renamed X}
In this scenario SQL:T will detect `renamed` option and will generate `ALTER ...` statements correctly instead of CREATE/DROP one.
Example 4
Let's move to Schema v3 where we create `X` and drop `Y` (like we did in the example 1):
The annual Perl-Conf.Ru/25 will take place in Moscow on September 27, 2025 — a special date marking the birthday of Perl's creator, Larry Wall!
The conference will bring together the Perl community to share experiences and discuss current trends in development. The program includes reports on modern tools and practical approaches to solving complex problems.
The talks will cover:
Test2: life after Test::More
Turbo Perl: batteries debugger included
Writing typemap for passing structures to XS
Perl & Postgres: the hard way, because it's easier
After a very long hiatus due to the triplet of work-vacation-work, we return to Part 3 of my AI assisted coding of a Perl interface to a foreign library.
I will not repeat the post on my Github pages Github pages, or the documentation of my MetaCPAN package Bit::Set which features a "vibecoding" section.
However, I would like to share the take home points from my exercise:
I found the agentic bots to not be very helpful, as they entered these long repetitive and useless reflections without being able to fix the problems they identified when the build of `Bit::Set` failed.
The "Ask" mode chatbots could generate lots of code, but with subtle mistakes.
Success with porting test suites from one language to the other was highly variable, ranging from near perfect to outright refusal to execute a difficult task.
On the other hand, the chatbot was excellent as an auto-complete, often helping me finish the structure of the POD and putting together the scaffold to fill things in.
All three of us attended, but with Aristotle and Paul short on time. So this was a short meeting. We discussed some administrivia and reviewed the left-over todo list from the previous PSC.
We are moving full steam ahead. The Journals are not so easy to put out 2x a year we are finding, but the editing process for Issue #2 is moving ahead nonetheless. We are now collecting papers for inclusion for Issue #3. But our hybrid conferences are proving to be very successful endeavors. We hope you will consider submitting a Science Track paper or regular Perl talk to this 2 day hybrid conference in sunny ole Austin, TX, USA.
Twenty years is a long time in the world of software. That's how long it's been since I last updated my Perl module, File::Finder. But today, thanks to a bug report from a dedicated user, I'm excited to announce the release of version 1.0.0!
For those who don't know, File::Finder is a handy little module that gives you the power of the find command right in your Perl code. It turns out that it wasn't playing nicely with Windows, and it was high time to fix that.
It's a surreal and wonderful feeling to revisit code you wrote two decades ago and find that it's still useful to people. It's a testament to the power and longevity of Perl and the open-source community.
A big thank you to the user who took the time to report the bug and help me bring this module into the modern era. It's moments like these that make you appreciate the collaborative spirit of software development.
Graphic::Toolkit::Color 1.9 brought several big new features which I will write about when 2.0 comes out - just to sum up what changed since 1.0. This time I want to describe the internal changes, since this release completed an in-depth rewrite. So this will be about software engineering, architecture and coding style. TLDR: simple, clear, DDD, OO by composition and arg and a color space DSL!
I recently refactored the multi-core benchmarking framework I've been using for my Perl CPU benchmark suite (Benchmark::DKbench) and released it as a separate module: Benchmark::MCE.
Why spin it out? Because the harness can do more: it can be used to write custom benchmark suites of any type, generate massively parallel workloads for stress testing, or run throughput benchmarks against services and APIs.
The exact scenario that prompted me was a comparison of Cloud SQL database instances. We wanted to see how a 16-CPU Enterprise Plus instance would compare to a 24-CPU Enterprise instance under heavy load. One way to do that is to write one or more functions that run randomized, typical/heavy queries (e.g. random searches for SpareRoom ads in our case), then use Benchmark::MCE to time them running on dozens of parallel MCE workers to simulate high load:
The transition meeting to the new PSC proved a bit tricky to schedule to get everyone from both the old and new PSC in attendance, but eventually we succeeded: Aristotle, Graham, Leon, Paul, and Philippe all participated.
We discussed our structure for PSC meetings and our learnings about it from last cycle. We briefly introduced Leon to it and went over the onboarding checklist.
We discussed roadmap items from the last cycle that did not get done, such as getting TLS in core. No decisions were taken as they will be for the new PSC to make.
You may also join the Perl Programmers Facebook Group, or if you're a member go there. A few days after the latest videos are sent to our exclusive mailing list, they will get set to the FB group.
Finally, you may monitor our Perl Community Subreddit, which will be the last place they are officially released to the public. We just dropped batch #2. We have 2 more batches for the 2024 PCC. Then we'll be doing it all over again for the 2025 Summer PCC we just had in July.
And if you see anyone else releasing them on any other platforms, note this is currently unauthorized!