From: Andrew Hewus Fresh Subject: OpenBSD perl 5.40.0 - Call for Testing To: tech@openbsd.org Date: Sun, 17 Nov 2024 20:35:28 -0800 I have updated our local patches to bring perl in base to 5.40.0. I would like to get some testing done on it, as they are talking about 5.40.1 release which shouldn't have any breaking changes, and I'd like to import that when it becomes available. Not a huge release, but try/catch in core are no longer experimental, and neither is the one I've been waiting for, multiple value foreach. Additionally, a bunch of stuff in the builtin namespace is no longer experimental. The perldelta has a more complete list of changes: https://metacpan.org/release/HAARG/perl-5.40.0/view/pod/perldelta.pod The changes to what we have now are in a branch on Github: https://github.com/afresh1/OpenBSD-perl/tree/perl-5.40 Ideally, I could use some help making sure tests pass on architectures I don't have, or that are giving me trouble at the moment (looking at you alpha and octeon!). See the build-logs in the above repo for what I have already, and the main README for instructions on running the tests. You can also download the contents of the right branch of the repo without git and follow the README from there. https://github.com/afresh1/OpenBSD-perl/archive/refs/heads/perl-5.40.tar.gz I also have available some things for testing it as a replacement system perl: * A pre-patched replacement for src/gnu/usr.bin/perl https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.40.0.tar.gz * A patch that should be able to be applied to the src tree https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.40.0.patch Copy the patch into your src checkout (or adjust the paths below) # This, unfortunately, requires devel/gpatch # Ok, this time I didn't actually test that, but usually it does gpatch -p0 -uNE < OpenBSD-perl-5.40.0.patch # Remove patch cruft find gnu/usr.bin/perl -name '*.orig' -delete # Add and remove binary and zero sized files that patch doesn't understand grep -B1 -e '^Index:' -e 'Binary files /tmp/.* and /dev/null differ' \ perl-5.40.0.patch | sed -ne 's/^diff -N //p' | while read f; do if [ -e $f ]; then rm $f; else touch $f; fi; done cd gnu/usr.bin/perl && find -d . \ \( -type d -o -path '*/CVS' -prune \) \ ! -name CVS \ -exec test -e {}/CVS \; \ -execdir sh -c 'test $( ls -1 {} | grep -v '^CVS/$' | wc -l ) -eq 0' \; \ -exec rm -r {} \;