From 01c3c165b37d3a077ab610e0ba161b59162a8dd9 Mon Sep 17 00:00:00 2001 From: Flavio Soibelmann Glock Date: Wed, 8 Apr 2026 09:41:43 +0200 Subject: [PATCH 1/3] fix: restore _charnames.pm PerlOnJava patches, add to sync.pl Restored two PerlOnJava-specific patches that sync.pl overwrote: 1. populate_txt: fallback when unicore/Name.pl unavailable 2. viacode: ICU4J-backed _java_viacode() lookup Added _charnames.pm.patch and config.yaml patch reference so future sync.pl runs preserve these changes automatically. Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- dev/import-perl5/config.yaml | 1 + dev/import-perl5/patches/_charnames.pm.patch | 32 +++++++++++++++++++ .../org/perlonjava/core/Configuration.java | 4 +-- 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 dev/import-perl5/patches/_charnames.pm.patch diff --git a/dev/import-perl5/config.yaml b/dev/import-perl5/config.yaml index 01158cb4e..39a7619d0 100644 --- a/dev/import-perl5/config.yaml +++ b/dev/import-perl5/config.yaml @@ -219,6 +219,7 @@ imports: # From core library - source: perl5/lib/_charnames.pm target: src/main/perl/lib/_charnames.pm + patch: _charnames.pm.patch # From core library - source: perl5/lib/charnames.pm diff --git a/dev/import-perl5/patches/_charnames.pm.patch b/dev/import-perl5/patches/_charnames.pm.patch new file mode 100644 index 000000000..a7e682e0f --- /dev/null +++ b/dev/import-perl5/patches/_charnames.pm.patch @@ -0,0 +1,32 @@ +--- perl5/lib/_charnames.pm 2025-12-11 14:13:49 ++++ src/main/perl/lib/_charnames.pm 2026-04-08 09:40:13 +@@ -137,6 +137,12 @@ + return if $txt; + + $txt = do "unicore/Name.pl"; ++ if (!defined $txt || $txt eq '') { ++ # unicore/Name.pl not available (e.g. on PerlOnJava); ++ # set $txt to a truthy placeholder so we don't retry and crash. ++ # viacode() will fall back to _java_viacode() for name lookups. ++ $txt = "# unavailable\n"; ++ } + Internals::SvREADONLY($txt, 1); + } + +@@ -805,6 +811,16 @@ + if (defined $algorithmic) { + $viacode{$hex} = $algorithmic; + return $algorithmic; ++ } ++ ++ # Try Java-backed ICU4J name lookup if available (PerlOnJava). ++ # This provides complete Unicode name data without needing unicore/Name.pl. ++ if (defined &_java_viacode) { ++ my $java_name = _java_viacode(CORE::hex $hex); ++ if (defined $java_name && $java_name ne '') { ++ $viacode{$hex} = $java_name; ++ return $java_name; ++ } + } + + # Return the official name, if exists. It's unclear to me (khw) at diff --git a/src/main/java/org/perlonjava/core/Configuration.java b/src/main/java/org/perlonjava/core/Configuration.java index 9b62b8dd1..314943cfd 100644 --- a/src/main/java/org/perlonjava/core/Configuration.java +++ b/src/main/java/org/perlonjava/core/Configuration.java @@ -33,7 +33,7 @@ public final class Configuration { * Automatically populated by Gradle/Maven during build. * DO NOT EDIT MANUALLY - this value is replaced at build time. */ - public static final String gitCommitId = "3652e0b19"; + public static final String gitCommitId = "ebc5caa5b"; /** * Git commit date of the build (ISO format: YYYY-MM-DD). @@ -48,7 +48,7 @@ public final class Configuration { * Parsed by App::perlbrew and other tools via: perl -V | grep "Compiled at" * DO NOT EDIT MANUALLY - this value is replaced at build time. */ - public static final String buildTimestamp = "Apr 8 2026 09:23:25"; + public static final String buildTimestamp = "Apr 8 2026 09:43:36"; // Prevent instantiation private Configuration() { From cc2df66a91760caa560c6cc044bd38504d1948e8 Mon Sep 17 00:00:00 2001 From: Flavio Soibelmann Glock Date: Wed, 8 Apr 2026 09:46:16 +0200 Subject: [PATCH 2/3] chore: sync core modules from perl5/ upstream Run dev/import-perl5/sync.pl to update core modules: - Pod::Simple 3.45 version bump across all submodules - Pod::Simple::XHTML: new accessibility features - Pod::perlhack.pod, Pod::perlsyn.pod: documentation updates - English.pm: minor update Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../org/perlonjava/core/Configuration.java | 4 +- src/main/perl/lib/English.pm | 4 +- src/main/perl/lib/Pod/Simple.pm | 2 +- src/main/perl/lib/Pod/Simple/BlackBox.pm | 2 +- src/main/perl/lib/Pod/Simple/Checker.pm | 2 +- src/main/perl/lib/Pod/Simple/Debug.pm | 2 +- src/main/perl/lib/Pod/Simple/DumpAsText.pm | 2 +- src/main/perl/lib/Pod/Simple/DumpAsXML.pm | 2 +- src/main/perl/lib/Pod/Simple/HTML.pm | 5 +- src/main/perl/lib/Pod/Simple/HTMLBatch.pm | 7 +-- src/main/perl/lib/Pod/Simple/LinkSection.pm | 2 +- src/main/perl/lib/Pod/Simple/Methody.pm | 2 +- src/main/perl/lib/Pod/Simple/Progress.pm | 2 +- src/main/perl/lib/Pod/Simple/PullParser.pm | 2 +- .../perl/lib/Pod/Simple/PullParserEndToken.pm | 2 +- .../lib/Pod/Simple/PullParserStartToken.pm | 2 +- .../lib/Pod/Simple/PullParserTextToken.pm | 2 +- .../perl/lib/Pod/Simple/PullParserToken.pm | 2 +- src/main/perl/lib/Pod/Simple/RTF.pm | 2 +- src/main/perl/lib/Pod/Simple/Search.pm | 2 +- src/main/perl/lib/Pod/Simple/SimpleTree.pm | 2 +- src/main/perl/lib/Pod/Simple/Text.pm | 2 +- src/main/perl/lib/Pod/Simple/TextContent.pm | 2 +- src/main/perl/lib/Pod/Simple/TiedOutFH.pm | 2 +- src/main/perl/lib/Pod/Simple/Transcode.pm | 2 +- src/main/perl/lib/Pod/Simple/TranscodeDumb.pm | 2 +- .../perl/lib/Pod/Simple/TranscodeSmart.pm | 2 +- src/main/perl/lib/Pod/Simple/XHTML.pm | 30 ++++++++---- src/main/perl/lib/Pod/Simple/XMLOutStream.pm | 2 +- src/main/perl/lib/Pod/perlhack.pod | 46 ++++++++++++++----- src/main/perl/lib/Pod/perlsyn.pod | 18 ++++++-- 31 files changed, 105 insertions(+), 57 deletions(-) diff --git a/src/main/java/org/perlonjava/core/Configuration.java b/src/main/java/org/perlonjava/core/Configuration.java index 314943cfd..1343e8aa8 100644 --- a/src/main/java/org/perlonjava/core/Configuration.java +++ b/src/main/java/org/perlonjava/core/Configuration.java @@ -33,7 +33,7 @@ public final class Configuration { * Automatically populated by Gradle/Maven during build. * DO NOT EDIT MANUALLY - this value is replaced at build time. */ - public static final String gitCommitId = "ebc5caa5b"; + public static final String gitCommitId = "01c3c165b"; /** * Git commit date of the build (ISO format: YYYY-MM-DD). @@ -48,7 +48,7 @@ public final class Configuration { * Parsed by App::perlbrew and other tools via: perl -V | grep "Compiled at" * DO NOT EDIT MANUALLY - this value is replaced at build time. */ - public static final String buildTimestamp = "Apr 8 2026 09:43:36"; + public static final String buildTimestamp = "Apr 8 2026 09:45:37"; // Prevent instantiation private Configuration() { diff --git a/src/main/perl/lib/English.pm b/src/main/perl/lib/English.pm index 283cd0107..a7d8df9c7 100644 --- a/src/main/perl/lib/English.pm +++ b/src/main/perl/lib/English.pm @@ -1,6 +1,6 @@ package English; -our $VERSION = '1.11'; +our $VERSION = '1.12'; require Exporter; @ISA = qw(Exporter); @@ -191,8 +191,6 @@ sub import { # Error status. *CHILD_ERROR = *? ; - *OS_ERROR = *! ; - *ERRNO = *! ; *OS_ERROR = *! ; *ERRNO = *! ; *EXTENDED_OS_ERROR = *^E ; diff --git a/src/main/perl/lib/Pod/Simple.pm b/src/main/perl/lib/Pod/Simple.pm index a71cb54d7..ad72126d6 100644 --- a/src/main/perl/lib/Pod/Simple.pm +++ b/src/main/perl/lib/Pod/Simple.pm @@ -11,7 +11,7 @@ use Pod::Simple::TiedOutFH; #use utf8; our @ISA = ('Pod::Simple::BlackBox'); -our $VERSION = '3.47'; +our $VERSION = '3.48'; our @Known_formatting_codes = qw(I B C L E F S U X Z); our %Known_formatting_codes = map(($_=>1), @Known_formatting_codes); diff --git a/src/main/perl/lib/Pod/Simple/BlackBox.pm b/src/main/perl/lib/Pod/Simple/BlackBox.pm index 7a0ddf079..8e937840a 100644 --- a/src/main/perl/lib/Pod/Simple/BlackBox.pm +++ b/src/main/perl/lib/Pod/Simple/BlackBox.pm @@ -22,7 +22,7 @@ use integer; # vroom! use strict; use warnings; use Carp (); -our $VERSION = '3.47'; +our $VERSION = '3.48'; #use constant DEBUG => 7; sub my_qr ($$) { diff --git a/src/main/perl/lib/Pod/Simple/Checker.pm b/src/main/perl/lib/Pod/Simple/Checker.pm index 5a4f490e4..abbaa37e4 100644 --- a/src/main/perl/lib/Pod/Simple/Checker.pm +++ b/src/main/perl/lib/Pod/Simple/Checker.pm @@ -8,7 +8,7 @@ use warnings; use Carp (); use Pod::Simple::Methody (); use Pod::Simple (); -our $VERSION = '3.47'; +our $VERSION = '3.48'; our @ISA = ('Pod::Simple::Methody'); BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG) ? \&Pod::Simple::DEBUG diff --git a/src/main/perl/lib/Pod/Simple/Debug.pm b/src/main/perl/lib/Pod/Simple/Debug.pm index 5be7b3002..c1f0e9665 100644 --- a/src/main/perl/lib/Pod/Simple/Debug.pm +++ b/src/main/perl/lib/Pod/Simple/Debug.pm @@ -1,6 +1,6 @@ package Pod::Simple::Debug; use strict; -our $VERSION = '3.47'; +our $VERSION = '3.48'; sub import { my($value,$variable); diff --git a/src/main/perl/lib/Pod/Simple/DumpAsText.pm b/src/main/perl/lib/Pod/Simple/DumpAsText.pm index d93ddd99c..20b77bd6d 100644 --- a/src/main/perl/lib/Pod/Simple/DumpAsText.pm +++ b/src/main/perl/lib/Pod/Simple/DumpAsText.pm @@ -1,6 +1,6 @@ package Pod::Simple::DumpAsText; use strict; -our $VERSION = '3.47'; +our $VERSION = '3.48'; use Pod::Simple (); BEGIN { our @ISA = ('Pod::Simple')} diff --git a/src/main/perl/lib/Pod/Simple/DumpAsXML.pm b/src/main/perl/lib/Pod/Simple/DumpAsXML.pm index 2df33b724..f3c42f21a 100644 --- a/src/main/perl/lib/Pod/Simple/DumpAsXML.pm +++ b/src/main/perl/lib/Pod/Simple/DumpAsXML.pm @@ -1,6 +1,6 @@ package Pod::Simple::DumpAsXML; use strict; -our $VERSION = '3.47'; +our $VERSION = '3.48'; use Pod::Simple (); BEGIN {our @ISA = ('Pod::Simple')} diff --git a/src/main/perl/lib/Pod/Simple/HTML.pm b/src/main/perl/lib/Pod/Simple/HTML.pm index 97cb1d2c4..58d390c9d 100644 --- a/src/main/perl/lib/Pod/Simple/HTML.pm +++ b/src/main/perl/lib/Pod/Simple/HTML.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Pod::Simple::PullParser (); our @ISA = ('Pod::Simple::PullParser'); -our $VERSION = '3.47'; +our $VERSION = '3.48'; BEGIN { if(defined &DEBUG) { } # no-op elsif( defined &Pod::Simple::DEBUG ) { *DEBUG = \&Pod::Simple::DEBUG } @@ -798,7 +798,8 @@ sub resolve_man_page_link { return $self->man_url_prefix . "$section/" . $self->manpage_url_escape($page) . ".$section" - . $self->man_url_postfix; + . $self->man_url_postfix + . (defined $frag ? '#' . $frag : ''); } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/main/perl/lib/Pod/Simple/HTMLBatch.pm b/src/main/perl/lib/Pod/Simple/HTMLBatch.pm index 8b66fcfb2..e278d4aab 100644 --- a/src/main/perl/lib/Pod/Simple/HTMLBatch.pm +++ b/src/main/perl/lib/Pod/Simple/HTMLBatch.pm @@ -1,6 +1,6 @@ package Pod::Simple::HTMLBatch; use strict; -our $VERSION = '3.47'; +our $VERSION = '3.48'; our @ISA = (); # Yup, we're NOT a subclass of Pod::Simple::HTML! # TODO: nocontents stylesheets. Strike some of the color variations? @@ -717,12 +717,13 @@ sub _gen_css_wad { } # Now a few indexless variations: - for (my ($outfile, $variation) = each %{{ + my %variations = ( blkbluw => 'black_with_blue_on_white', whtpurk => 'white_with_purple_on_black', whtgrng => 'white_with_green_on_grey', grygrnw => 'grey_with_green_on_white', - }}) { + ); + for (my ($outfile, $variation) = each %variations) { my $this_css = join "\n", "/* This file is autogenerated. Do not edit. $outfile */\n", "\@import url(\"./_$variation.css\");", diff --git a/src/main/perl/lib/Pod/Simple/LinkSection.pm b/src/main/perl/lib/Pod/Simple/LinkSection.pm index f7631965e..46ab2a10e 100644 --- a/src/main/perl/lib/Pod/Simple/LinkSection.pm +++ b/src/main/perl/lib/Pod/Simple/LinkSection.pm @@ -4,7 +4,7 @@ package Pod::Simple::LinkSection; use strict; use warnings; use Pod::Simple::BlackBox; -our $VERSION = '3.47'; +our $VERSION = '3.48'; use overload( # So it'll stringify nice '""' => \&Pod::Simple::BlackBox::stringify_lol, diff --git a/src/main/perl/lib/Pod/Simple/Methody.pm b/src/main/perl/lib/Pod/Simple/Methody.pm index 7ee0cecb0..01fbc19fc 100644 --- a/src/main/perl/lib/Pod/Simple/Methody.pm +++ b/src/main/perl/lib/Pod/Simple/Methody.pm @@ -2,7 +2,7 @@ package Pod::Simple::Methody; use strict; use warnings; use Pod::Simple (); -our $VERSION = '3.47'; +our $VERSION = '3.48'; our @ISA = ('Pod::Simple'); # Yes, we could use named variables, but I want this to be impose diff --git a/src/main/perl/lib/Pod/Simple/Progress.pm b/src/main/perl/lib/Pod/Simple/Progress.pm index d47604465..dc9264d22 100644 --- a/src/main/perl/lib/Pod/Simple/Progress.pm +++ b/src/main/perl/lib/Pod/Simple/Progress.pm @@ -2,7 +2,7 @@ package Pod::Simple::Progress; use strict; use warnings; -our $VERSION = '3.47'; +our $VERSION = '3.48'; # Objects of this class are used for noting progress of an # operation every so often. Messages delivered more often than that diff --git a/src/main/perl/lib/Pod/Simple/PullParser.pm b/src/main/perl/lib/Pod/Simple/PullParser.pm index fed5da75e..c8f2a03ed 100644 --- a/src/main/perl/lib/Pod/Simple/PullParser.pm +++ b/src/main/perl/lib/Pod/Simple/PullParser.pm @@ -1,6 +1,6 @@ package Pod::Simple::PullParser; use strict; -our $VERSION = '3.47'; +our $VERSION = '3.48'; use Pod::Simple (); BEGIN {our @ISA = ('Pod::Simple')} diff --git a/src/main/perl/lib/Pod/Simple/PullParserEndToken.pm b/src/main/perl/lib/Pod/Simple/PullParserEndToken.pm index 62b448f06..a276f3c8a 100644 --- a/src/main/perl/lib/Pod/Simple/PullParserEndToken.pm +++ b/src/main/perl/lib/Pod/Simple/PullParserEndToken.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Pod::Simple::PullParserToken (); our @ISA = ('Pod::Simple::PullParserToken'); -our $VERSION = '3.47'; +our $VERSION = '3.48'; sub new { # Class->new(tagname); my $class = shift; diff --git a/src/main/perl/lib/Pod/Simple/PullParserStartToken.pm b/src/main/perl/lib/Pod/Simple/PullParserStartToken.pm index f7c016e4c..1dca6014e 100644 --- a/src/main/perl/lib/Pod/Simple/PullParserStartToken.pm +++ b/src/main/perl/lib/Pod/Simple/PullParserStartToken.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Pod::Simple::PullParserToken (); our @ISA = ('Pod::Simple::PullParserToken'); -our $VERSION = '3.47'; +our $VERSION = '3.48'; sub new { # Class->new(tagname, optional_attrhash); my $class = shift; diff --git a/src/main/perl/lib/Pod/Simple/PullParserTextToken.pm b/src/main/perl/lib/Pod/Simple/PullParserTextToken.pm index 7edc34fb9..33d46c6ab 100644 --- a/src/main/perl/lib/Pod/Simple/PullParserTextToken.pm +++ b/src/main/perl/lib/Pod/Simple/PullParserTextToken.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Pod::Simple::PullParserToken (); our @ISA = ('Pod::Simple::PullParserToken'); -our $VERSION = '3.47'; +our $VERSION = '3.48'; sub new { # Class->new(text); my $class = shift; diff --git a/src/main/perl/lib/Pod/Simple/PullParserToken.pm b/src/main/perl/lib/Pod/Simple/PullParserToken.pm index 865445d9a..61e646cfb 100644 --- a/src/main/perl/lib/Pod/Simple/PullParserToken.pm +++ b/src/main/perl/lib/Pod/Simple/PullParserToken.pm @@ -1,7 +1,7 @@ package Pod::Simple::PullParserToken; # Base class for tokens gotten from Pod::Simple::PullParser's $parser->get_token our @ISA = (); -our $VERSION = '3.47'; +our $VERSION = '3.48'; use strict; sub new { # Class->new('type', stuff...); ## Overridden in derived classes anyway diff --git a/src/main/perl/lib/Pod/Simple/RTF.pm b/src/main/perl/lib/Pod/Simple/RTF.pm index dbdcfd016..9b438530b 100644 --- a/src/main/perl/lib/Pod/Simple/RTF.pm +++ b/src/main/perl/lib/Pod/Simple/RTF.pm @@ -6,7 +6,7 @@ use warnings; #sub Pod::Simple::DEBUG () {4}; #sub Pod::Simple::PullParser::DEBUG () {4}; -our $VERSION = '3.47'; +our $VERSION = '3.48'; use Pod::Simple::PullParser (); our @ISA; BEGIN {@ISA = ('Pod::Simple::PullParser')} diff --git a/src/main/perl/lib/Pod/Simple/Search.pm b/src/main/perl/lib/Pod/Simple/Search.pm index 4ef3be810..b0a4f7cb9 100644 --- a/src/main/perl/lib/Pod/Simple/Search.pm +++ b/src/main/perl/lib/Pod/Simple/Search.pm @@ -2,7 +2,7 @@ package Pod::Simple::Search; use strict; use warnings; -our $VERSION = '3.47'; ## Current version of this package +our $VERSION = '3.48'; ## Current version of this package BEGIN { *DEBUG = sub () {0} unless defined &DEBUG; } # set DEBUG level use Carp (); diff --git a/src/main/perl/lib/Pod/Simple/SimpleTree.pm b/src/main/perl/lib/Pod/Simple/SimpleTree.pm index a50152250..148716963 100644 --- a/src/main/perl/lib/Pod/Simple/SimpleTree.pm +++ b/src/main/perl/lib/Pod/Simple/SimpleTree.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Carp (); use Pod::Simple (); -our $VERSION = '3.47'; +our $VERSION = '3.48'; BEGIN { our @ISA = ('Pod::Simple'); *DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG; diff --git a/src/main/perl/lib/Pod/Simple/Text.pm b/src/main/perl/lib/Pod/Simple/Text.pm index 12c608507..163a5457d 100644 --- a/src/main/perl/lib/Pod/Simple/Text.pm +++ b/src/main/perl/lib/Pod/Simple/Text.pm @@ -4,7 +4,7 @@ use warnings; use Carp (); use Pod::Simple::Methody (); use Pod::Simple (); -our $VERSION = '3.47'; +our $VERSION = '3.48'; our @ISA = ('Pod::Simple::Methody'); BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG) ? \&Pod::Simple::DEBUG diff --git a/src/main/perl/lib/Pod/Simple/TextContent.pm b/src/main/perl/lib/Pod/Simple/TextContent.pm index 260a64585..c4cf9230f 100644 --- a/src/main/perl/lib/Pod/Simple/TextContent.pm +++ b/src/main/perl/lib/Pod/Simple/TextContent.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Carp (); use Pod::Simple (); -our $VERSION = '3.47'; +our $VERSION = '3.48'; our @ISA = ('Pod::Simple'); sub new { diff --git a/src/main/perl/lib/Pod/Simple/TiedOutFH.pm b/src/main/perl/lib/Pod/Simple/TiedOutFH.pm index 6b691ce1f..c49b1055c 100644 --- a/src/main/perl/lib/Pod/Simple/TiedOutFH.pm +++ b/src/main/perl/lib/Pod/Simple/TiedOutFH.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Symbol ('gensym'); use Carp (); -our $VERSION = '3.47'; +our $VERSION = '3.48'; #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/src/main/perl/lib/Pod/Simple/Transcode.pm b/src/main/perl/lib/Pod/Simple/Transcode.pm index c2785333e..e8a00b2ac 100644 --- a/src/main/perl/lib/Pod/Simple/Transcode.pm +++ b/src/main/perl/lib/Pod/Simple/Transcode.pm @@ -1,6 +1,6 @@ package Pod::Simple::Transcode; use strict; -our $VERSION = '3.47'; +our $VERSION = '3.48'; BEGIN { if(defined &DEBUG) {;} # Okay diff --git a/src/main/perl/lib/Pod/Simple/TranscodeDumb.pm b/src/main/perl/lib/Pod/Simple/TranscodeDumb.pm index 06dd42bb7..c54183716 100644 --- a/src/main/perl/lib/Pod/Simple/TranscodeDumb.pm +++ b/src/main/perl/lib/Pod/Simple/TranscodeDumb.pm @@ -1,6 +1,6 @@ package Pod::Simple::TranscodeDumb; use strict; -our $VERSION = '3.47'; +our $VERSION = '3.48'; # This module basically pretends it knows how to transcode, except # only for null-transcodings! We use this when Encode isn't # available. diff --git a/src/main/perl/lib/Pod/Simple/TranscodeSmart.pm b/src/main/perl/lib/Pod/Simple/TranscodeSmart.pm index d2bd0ff43..8d56d6606 100644 --- a/src/main/perl/lib/Pod/Simple/TranscodeSmart.pm +++ b/src/main/perl/lib/Pod/Simple/TranscodeSmart.pm @@ -7,7 +7,7 @@ use strict; use warnings; use Pod::Simple; use Encode; -our $VERSION = '3.47'; +our $VERSION = '3.48'; sub is_dumb {0} sub is_smart {1} diff --git a/src/main/perl/lib/Pod/Simple/XHTML.pm b/src/main/perl/lib/Pod/Simple/XHTML.pm index 07cee5da3..6598b42ce 100644 --- a/src/main/perl/lib/Pod/Simple/XHTML.pm +++ b/src/main/perl/lib/Pod/Simple/XHTML.pm @@ -45,7 +45,7 @@ use warnings; package Pod::Simple::XHTML; use strict; -our $VERSION = '3.47'; +our $VERSION = '3.48'; use Pod::Simple::Methody (); our @ISA = ('Pod::Simple::Methody'); @@ -70,10 +70,11 @@ sub encode_entities { $ents =~ s,(? sprintf('%%%02X', $_) ), 0 .. 255; + sub encode_url { my ($self, $string) = @_; - $string =~ s{([^-_.!~*()abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZZ0123456789])}{ - sprintf('%%%02X', ord($1)) - }eg; + utf8::encode($string) if HAVE_UTF8_ENCODE; + $string =~ s{([^-_.!~*()a-zA-Z0-9])}{$percent_enc{$1}}g; return $string; } @@ -792,10 +798,18 @@ sub resolve_man_page_link { my ($page, $part) = $to =~ /^([^(]+)(?:[(](\d+)[)])?$/; return undef unless $page; + if (defined $section) { + $section =~ s/\s+/_/g; + my $id = $self->idify($section, 1); + $section = '#' . $self->encode_url($id); + } else { + $section = '' + } + return ($self->man_url_prefix || '') . ($part || 1) . "/" . $self->encode_entities($page) - . "." . ($part || 1) . ($self->man_url_postfix || ''); - + . "." . ($part || 1) . ($self->man_url_postfix || '') + . $section; } =head2 idify diff --git a/src/main/perl/lib/Pod/Simple/XMLOutStream.pm b/src/main/perl/lib/Pod/Simple/XMLOutStream.pm index 2a86ce61d..0be949227 100644 --- a/src/main/perl/lib/Pod/Simple/XMLOutStream.pm +++ b/src/main/perl/lib/Pod/Simple/XMLOutStream.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Carp (); use Pod::Simple (); -our $VERSION = '3.47'; +our $VERSION = '3.48'; BEGIN { our @ISA = ('Pod::Simple'); *DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG; diff --git a/src/main/perl/lib/Pod/perlhack.pod b/src/main/perl/lib/Pod/perlhack.pod index 639eb6ae7..0bbae4c4b 100644 --- a/src/main/perl/lib/Pod/perlhack.pod +++ b/src/main/perl/lib/Pod/perlhack.pod @@ -68,7 +68,38 @@ Committing your work will save the change I: Make sure the commit message describes your change in a single sentence. For example, "Fixed spelling errors in perlhack.pod". -=item * Send your change to the Perl issue tracker +=item * Add your name to the Perl contributors list + +We keep a list of all people who have contributed to Perl, as well as +the Git commit history. The default is to show our gratitude by +publicly listing their names and email addresses in the file named +AUTHORS, which is part of the perl distribution. But some people choose +to instead remain anonymous. + +If you have already contributed, you can skip this step, unless you want +to update your records with, say, a new email address. Run + + perldoc Porting/updateAUTHORS.pl + +to see the possibilities. + +If you've never contributed, run one of the following: + +=over + +=item * If you want to be publicly credited + + perl Porting/updateAUTHORS.pl + +=item * If you want to remain anonymous + + perl Porting/updateAUTHORS.pl --exclude-me + +=back + +Then commit the change. + +=item * Send your changes to the Perl issue tracker The next step is to submit your patch to the Perl core ticket system. @@ -85,7 +116,8 @@ HTTPS URLs"|https://docs.github.com/en/free-pro-team@latest/github/using-git/whi % git remote add fork https://github.com/MyUser/perl5.git -Then, push your new branch to your fork. +Now, you are ready to submit your work. To do this, push your new +branch to your fork. % git push -u fork mychange @@ -98,16 +130,6 @@ L. The porters appreciate the time you spent helping to make Perl better. Thank you! -=item * Acknowledgement - -All contributors are credited (by name and email address) in the -AUTHORS file, which is part of the perl distribution, as well as the -Git commit history. - -If you don’t want to be included in the AUTHORS file, just let us -know. Otherwise we will take your submission of a patch as permission -to credit you in the AUTHORS file. - =item * Next time The next time you wish to make a patch, you need to start from the diff --git a/src/main/perl/lib/Pod/perlsyn.pod b/src/main/perl/lib/Pod/perlsyn.pod index 598e1097e..411940424 100644 --- a/src/main/perl/lib/Pod/perlsyn.pod +++ b/src/main/perl/lib/Pod/perlsyn.pod @@ -542,10 +542,22 @@ the C loop index variable is an implicit alias for each item in the list that you're looping over. X -If any part of LIST is an array, C will get very confused if +If the LIST is just a single array, C will get very confused if you add or remove elements within the loop body, for example with -C. So don't do that. -X +C or C. So don't do that. +XX + + my @arr1 = 1 .. 2; + for my $x (@arr1, ()) { + push @arr1, 'a' if $x =~ /[0-9]/; + print $x; + } # Outputs 12 + + my @arr2 = 1 .. 2; + for my $x (@arr2) { + push @arr2, 'b' if $x =~ /[0-9]/; + print $x; + } # Outputs 12bb C probably won't do what you expect if VAR is a tied or other special variable. Don't do that either. From 41281f4a8b1e821dbd6d67bc3f71661bbdd062aa Mon Sep 17 00:00:00 2001 From: Flavio Soibelmann Glock Date: Wed, 8 Apr 2026 09:47:35 +0200 Subject: [PATCH 3/3] chore: upgrade sqlite-jdbc 3.49.1.0 -> 3.51.3.0 Run Configure.pl --upgrade to update dependencies. Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- pom.xml | 2 +- src/main/java/org/perlonjava/core/Configuration.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index da3999446..72df373f2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ fastjson2 = "2.0.61" icu4j = "78.3" junit-jupiter = "6.1.0-M1" snakeyaml-engine = "3.0.1" -sqlite-jdbc = "3.49.1.0" +sqlite-jdbc = "3.51.3.0" tomlj = "1.1.1" [libraries] diff --git a/pom.xml b/pom.xml index 30c61935d..7b650ed9d 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ org.xerial sqlite-jdbc - 3.49.1.0 + 3.51.3.0 diff --git a/src/main/java/org/perlonjava/core/Configuration.java b/src/main/java/org/perlonjava/core/Configuration.java index 1343e8aa8..074716a33 100644 --- a/src/main/java/org/perlonjava/core/Configuration.java +++ b/src/main/java/org/perlonjava/core/Configuration.java @@ -33,7 +33,7 @@ public final class Configuration { * Automatically populated by Gradle/Maven during build. * DO NOT EDIT MANUALLY - this value is replaced at build time. */ - public static final String gitCommitId = "01c3c165b"; + public static final String gitCommitId = "cc2df66a9"; /** * Git commit date of the build (ISO format: YYYY-MM-DD). @@ -48,7 +48,7 @@ public final class Configuration { * Parsed by App::perlbrew and other tools via: perl -V | grep "Compiled at" * DO NOT EDIT MANUALLY - this value is replaced at build time. */ - public static final String buildTimestamp = "Apr 8 2026 09:45:37"; + public static final String buildTimestamp = "Apr 8 2026 09:46:56"; // Prevent instantiation private Configuration() {