Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BBC: Branch Reset Change Likely Broke Plugin Regex Engines. #20710

Open
demerphq opened this issue Jan 15, 2023 · 37 comments
Open

BBC: Branch Reset Change Likely Broke Plugin Regex Engines. #20710

demerphq opened this issue Jan 15, 2023 · 37 comments
Labels
BBC Blead Breaks CPAN - changes in blead broke a cpan module(s) Not a Release Blocker type-regex

Comments

@demerphq
Copy link
Collaborator

demerphq commented Jan 15, 2023

Description
In fe5492d ((v5.37.7-120-gfe5492d916) we likely broke plug-in regex engines if there are any still being maintained. This ticket is to collect any bugs related to this, although none have been reported as yet.

Steps to Reproduce
N/A

Expected behavior
N/A

Perl configuration
N/A really.

This is perl 5, version 37, subversion 8 (v5.37.8 (v5.37.7-152-g1773398724*)) built for x86_64-linux-thread-multi
(with 2 registered patches, see perl -V for more detail)
@jkeenan
Copy link
Contributor

jkeenan commented Jan 15, 2023

If we wanted to grep CPAN for libraries affected by this change, would there be any strings to grep on?

@demerphq
Copy link
Collaborator Author

If we wanted to grep CPAN for libraries affected by this change, would there be any strings to grep on?

re-engine-{RE2,TRE,GNU,Lua} is the place to start.

@jkeenan
Copy link
Contributor

jkeenan commented Jan 15, 2023

If we wanted to grep CPAN for libraries affected by this change, would there be any strings to grep on?

re-engine-{RE2,TRE,GNU,Lua} is the place to start.

Using this pattern/URL: https://grep.metacpan.org/search?size=20&q=re-engine-%28RE2%7CTRE%7CGNU%7CLua%29&qd=&qft=

I identified 5 CPAN distributions likely to be affected by this change.

MarpaX-Languages-M4
re-engine-RE2
re-engine-TRE
re-engine-GNU
re-engine-Lua

I then tested them on a very recent threaded build on FreeBSD: v5.37.7-134-g25948dfb24.

The 4 're-engine' distros all FAILed. The MarpaX distro depends (I think) on re-engine-GNU and so was classified as DISCARD.

Relevant CPANtesters reports:

[fail] [PERRAD/re-engine-Lua-0.19.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.37.8] [bc897e06-9529-11ed-96a9-c4aca9ff8ba7] [2023-01-15T23:10:00Z]
http://www.cpantesters.org/cpan/report/bc897e06-9529-11ed-96a9-c4aca9ff8ba7

[fail] [SYP/re-engine-TRE-0.09.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.37.8] [b6c523e4-9529-11ed-b82d-1841aaff8ba7] [2023-01-15T23:09:51Z]
http://www.cpantesters.org/cpan/report/b6c523e4-9529-11ed-b82d-1841aaff8ba7

[fail] [DGL/re-engine-RE2-0.14.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.37.8] [b0855044-9529-11ed-aec9-c528a9ff8ba7] [2023-01-15T23:09:40Z]
http://www.cpantesters.org/cpan/report/b0855044-9529-11ed-aec9-c528a9ff8ba7

[fail] [JDDPAUSE/re-engine-GNU-0.024.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.37.8] [8313edfa-9529-11ed-85de-e76caaff8ba7] [2023-01-15T23:08:24Z]
http://www.cpantesters.org/cpan/report/8313edfa-9529-11ed-85de-e76caaff8ba7

@jkeenan jkeenan added BBC Blead Breaks CPAN - changes in blead broke a cpan module(s) and removed Needs Triage labels Jan 15, 2023
@demerphq
Copy link
Collaborator Author

demerphq commented Jan 16, 2023 via email

@jkeenan
Copy link
Contributor

jkeenan commented Jan 16, 2023

James, can you test them against the last minor release? Eg, before the
branch reset patch? I have a feeling some or all of them will fail anyway, and it would be nice to rule it out. cheers, Yves

Preliminary results (from my ~/.cpanreporter/reports-sent.db:

test PASS re-engine-RE2-0.14 (perl-5.37.7) amd64-freebsd-thread-multi 12.3-release-p1
test PASS re-engine-TRE-0.09 (perl-5.37.7) amd64-freebsd-thread-multi 12.3-release-p1
test PASS Config-AutoConf-0.320 (perl-5.37.7) amd64-freebsd-thread-multi 12.3-release-p1
test PASS re-engine-GNU-0.024 (perl-5.37.7) amd64-freebsd-thread-multi 12.3-release-p1
test PASS re-engine-Lua-0.19 (perl-5.37.7) amd64-freebsd-thread-multi 12.3-release-p1

You can get more detailed resorts by going to each distro's page at fast-matrix.cpantesters.org and clicking on the freebsd column.

@jkeenan
Copy link
Contributor

jkeenan commented Jan 16, 2023

Preliminary results (from my ~/.cpanreporter/reports-sent.db:

More results:
[pass] [PERRAD/re-engine-Lua-0.19.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.37.7] [d334a80e-95b7-11ed-b694-7284aaff8ba7] [2023-01-16T16:07:07Z]
http://www.cpantesters.org/cpan/report/d334a80e-95b7-11ed-b694-7284aaff8ba7

[pass] [JDDPAUSE/re-engine-GNU-0.024.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.37.7] [ce30961a-95b7-11ed-84cb-ce76aaff8ba7] [2023-01-16T16:06:58Z]
http://www.cpantesters.org/cpan/report/ce30961a-95b7-11ed-84cb-ce76aaff8ba7

[pass] [SYP/re-engine-TRE-0.09.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.37.7] [a4efc532-95b7-11ed-ae91-1c8ca9ff8ba7] [2023-01-16T16:05:49Z]
http://www.cpantesters.org/cpan/report/a4efc532-95b7-11ed-ae91-1c8ca9ff8ba7

pass] [DGL/re-engine-RE2-0.14.tar.gz] [amd64-freebsd-thread-multi] [perl-v5.37.7] [9ed38e5e-95b7-11ed-a06f-8df7a9ff8ba7] [2023-01-16T16:05:39Z]
http://www.cpantesters.org/cpan/report/9ed38e5e-95b7-11ed-a06f-8df7a9ff8ba7

@jkeenan
Copy link
Contributor

jkeenan commented Jan 16, 2023

Finally, my run of MarpaX-Languages-M4 is hanging on that distro's t/m4.t, so I won't be able to generate a CPANtesters report. I'm getting a lot of test-time warnings, so I suspect this distro has larger problems than those related to the problems mentioned in this ticket.

@andk
Copy link
Contributor

andk commented Jan 17, 2023

@demerphq : you asked for it. Four pass reports with v5.37.7-119-g17419a8810 and four fail reports with v5.37.7-120-gfe5492d916. Imho no reason to delay further reporting.

@andk
Copy link
Contributor

andk commented Jan 17, 2023

@dgl , @creaktive , @jddurand please take note!

@jddurand
Copy link

jddurand commented Jan 17, 2023

@andk It is not clear if there is an action we should we take, and which action, or does it mean that external re engines are not supported anymore (?).

@andk
Copy link
Contributor

andk commented Jan 17, 2023

A far as I understood Yves, he is in the middle of fixing things in the regex engine. Currently the breakage is a side effect that should be fixable in the now broken pluggable re engines. There is no guarantee though that this was the last breakage in the current patch frenzy. My take on it is that the sooner the affected parties know, the better are the chances to find the best way forward (or backward). So please keep paying the proper amount of attention.

@jddurand
Copy link

Will do - thank you very much for the notification and for the wonderful work you all do with perl btw ;)
Thanks.

@demerphq
Copy link
Collaborator Author

@jddurand: the scope of changes for an engine basically come down to whether the engine supports branch reset or not. If it does not then all that has to be done is to set the new struct member total_logical_parens ( saying this from a faulty memory and this name varies depending on which struct its in -- so check the patch to be sure) to the same value as total_parens. Maybe I can make the internals deal with 0 properly and fallback to the total_parens value automatically, but if it's nonzero and wrong there is nothing I can do. Best to set it to match total_parens.

If your engine does support branch reset you need to populate some additional fields with an array of I32 which allows perl to map logical buffers to physical buffers properly, (they can be null if branch reset is not used).

The key point is that as of this patch it is possible to set things up so that logical buffers like $1 map to more than one physical buffer at the regex engine. For instance:

/(?|(a)|(b)|(c))(d)/

Should cause $1 to check buffer 1 then 2 then 3. And $2 should map to buffer 4.

It is arguable that using the offs[] array in the internals to expose capture buffer data is broken, and the perl internals should be calling an engine api to resolve the logical capture buffer however the engine likes, and that perl shouldn't need this data in the struct directly, and I think we will move that way long term. Imo if the api did not have abstraction leakage then a change like this shouldn't have broken any engine, and that it did is strongly suggestive we need to refine the api.

Fwiw, I added the plug-in engine in the first place, I certainly don't want to do anything that would remove support for it, on the contrary I want to improve it more so that when I improve perls engine I don't break yours. 😀

@demerphq
Copy link
Collaborator Author

The field is logical_nparens.

demerphq added a commit to demerphq/re-engine-GNU that referenced this issue Jan 18, 2023
This should fix this module under Perl 5.37.7 and later.

See Perl/perl5#20710
@demerphq
Copy link
Collaborator Author

I have pushed a patch to re::engine::GNU - jddurand/re-engine-GNU#6

@demerphq
Copy link
Collaborator Author

I have pushed a patch for re::engine::TRE: creaktive/re-engine-tre#5

And found yet another Dist::Zilla bug at the same time: #20726

@demerphq
Copy link
Collaborator Author

I tried to fix re-engine-PCRE2 but it depends on Alien::PCRE2 which does not build. I am stuck on that until i get help on

wbraswell/alien-pcre2#16

@demerphq
Copy link
Collaborator Author

Currently re-engine-PCRE2 cant build because it is cheekily using unexported variables and functions. Even if I add the defines to let it see PL_core_reg_engine it wants to call Perl_re_op_compile which is not marked API, and as such is not visible in an extension these days. I am not sure if I should change that so it builds or what.

demerphq added a commit that referenced this issue Jan 19, 2023
We can default a 0 rx->logical_nparens to rx->nparens. If rx->logical_nparens
is zero then either rx->nparens is also zero, or it can be defaulted. This
will fix most re::engine::XXX modules that do not know about the new field,
provided they zero the rx structure during construction. If they don't then
this patch won't hurt anything and we will have to patch them directly.

Also mark re_op_compile() as available to extensions. Marking it as hidden
means that re::engine::PCRE2 and others cannot build.

This patch should go a long way towards fixing issue #20710.
demerphq added a commit that referenced this issue Jan 19, 2023
We can default a 0 rx->logical_nparens to rx->nparens. If rx->logical_nparens
is zero then either rx->nparens is also zero, or it can be defaulted. This
will fix most re::engine::XXX modules that do not know about the new field,
provided they zero the rx structure during construction. If they don't then
this patch won't hurt anything and we will have to patch them directly.

Also mark re_op_compile() as available to extensions. Marking it as hidden
means that re::engine::PCRE2 and others cannot build.

This patch should go a long way towards fixing issue #20710.
@jddurand
Copy link

re-engine-GNU 0.025 has been released, tested successfully using perl 5, version 37, subversion 8 (v5.37.8 (c224bbd)) .

I want to explicitly say big thanks here to @demerphq for all the time spent on doing the support on this package.

@demerphq
Copy link
Collaborator Author

demerphq commented Jan 19, 2023 via email

demerphq added a commit that referenced this issue Jan 20, 2023
We can default a 0 rx->logical_nparens to rx->nparens. If rx->logical_nparens
is zero then either rx->nparens is also zero, or it can be defaulted. This
will fix most re::engine::XXX modules that do not know about the new field,
provided they zero the rx structure during construction. If they don't then
this patch won't hurt anything and we will have to patch them directly.

Also mark re_op_compile() as available to extensions. Marking it as hidden
means that re::engine::PCRE2 and others cannot build.

This patch should go a long way towards fixing issue #20710.
@demerphq
Copy link
Collaborator Author

I have pushed a patch for re::engine::PCRE2. I think my patch wasnt the reason it was broken though, but its done.

rurban/re-engine-PCRE2#40

@iabyn
Copy link
Contributor

iabyn commented Jan 24, 2023 via email

@demerphq
Copy link
Collaborator Author

demerphq commented Jan 25, 2023 via email

@andk
Copy link
Contributor

andk commented Jan 26, 2023

Also affected: PFEIFFER/App-pl-0.91.0.tgz

@demerphq
Copy link
Collaborator Author

@jkeenan you can also grep for (?| which is "branch reset is spelled).

@demerphq
Copy link
Collaborator Author

@andk out of curiosity have you checked against latest blead? There was a fence post error I fixed just after 5.37.8 was released. (Sigh.) I'll check myself shortly, but I'd wouldn't be surprised if this is already fixed.

@demerphq
Copy link
Collaborator Author

@andk fwiw, it is still in bleadperl. totally different issue. this is a very useful report, thanks!

@demerphq
Copy link
Collaborator Author

demerphq commented Jan 26, 2023

@andk thanks for the report, I pushed a fix for App::pl as #20741

@jkeenan
Copy link
Contributor

jkeenan commented Jan 26, 2023

@jkeenan you can also grep for (?| which is "branch reset is spelled).

Try this search pattern:
https://grep.metacpan.org/search?p=1&q=%5CQ%28%3F%7C%5CE&qls=on

Result: found 96 distributions and 188 files matching your query ! 

... after a couple of refreshes

@jkeenan
Copy link
Contributor

jkeenan commented Jan 27, 2023

@jkeenan you can also grep for (?| which is "branch reset is spelled).

Try this search pattern: https://grep.metacpan.org/search?p=1&q=%5CQ%28%3F%7C%5CE&qls=on

Result: found 96 distributions and 188 files matching your query ! 

... after a couple of refreshes

I then built a threaded blead at v5.37.8-16-g4ef62b4258 and attempted to install most, but not all, of the 96 distributions found above. (I skipped distros m/^(App|Bundle|Task|Alien)/.) Here is an excerpt from the .cpantesters/reports-sent.db for those distros (or prereqs) which were not graded PASS. Note that some of these distros may have been failing for years and hence are not strictly BBC.

test FAIL Ecma48-Util-0.01 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL Git-Raw-0.90 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL Graph-Dijkstra-0.70 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL Mojo-Webqq-2.2.7 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL Net-ISC-DHCPd-0.1709 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
PL UNKNOWN Perl6-Pugs-6.2.13 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL Regexp-Common-debian-v0.2.14 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL Devel-Caller-2.06 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test DISCARD MooseX-Params-Validate-0.21 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL MooseX-Timestamp-0.07 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test DISCARD PRANG-0.20 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test DISCARD XML-SRS-0.09 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test DISCARD SRS-EPP-Proxy-0.22 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL Kavorka-0.039 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test DISCARD Moops-0.038 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test DISCARD Syntax-Highlight-WithEmacs-0.2 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL Text-Glob-DWIW-0.01 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL Algorithm-CurveFit-1.05 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
make DISCARD Text-Summarizer-2.01 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL re-engine-Oniguruma-0.05 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
test FAIL re-engine-PCRE-0.17 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6
make UNKNOWN re-engine-PCRE2-0.16 (perl-5.37.9) amd64-freebsd-thread-multi 12.3-release-p6

@demerphq
Copy link
Collaborator Author

@jkeenan given the list context bug, I could imagine some stuff is failing. Amazing that wasn't caught by the tests when I wrote the original patch. I plan to beef up list context tests in the future. Ill take a look at a random sample later.

@demerphq
Copy link
Collaborator Author

@jkeenan if you wanted you could run your tests again against the branch yves/fix_branch_reset_list_context_assignment

That would weed out stuff that is broken by the list assignment bug.

@jkeenan
Copy link
Contributor

jkeenan commented Jan 27, 2023

@demerphq
Copy link
Collaborator Author

@jkeenan that has all the fingerprints of the bug i just mentioned. I will check in a bit, i have to do some chores first.

@jkeenan
Copy link
Contributor

jkeenan commented Jan 27, 2023

@jkeenan if you wanted you could run your tests again against the branch yves/fix_branch_reset_list_context_assignment

That would weed out stuff that is broken by the list assignment bug.

I've got other work that needs my attention. You can build a perl from your branch and call:

./bin/cpan Benchmark::Perl::Formance::Cargo Bifcode CPU::Z80::Assembler Data::Show Ecma48::Util Encode Getopt::EX Git::Raw Graph::Dijkstra ICC::Profile IO::Prompter JE JavaScript::Embedded MarpaX::ESLIF MarpaX::Hoonlint Module::Release Mojo::Webqq Mojolicious::Plugin::Responsinator Net::Gemini Net::ISC::DHCPd POD2::ES POD2::RU PPIx::Regexp Perl6::Pugs Regexp::Common::Apache2 Regexp::Common::debian Regexp::Common Regexp::Optimizer Regexp::Parsertron SRS::EPP::Proxy Syntax::Highlight::WithEmacs Template::LiquidX::Tidy Test::Regexp Text::Frundis Text::Glob::DWIW Text::Summarizer Text::Table Text::TokenStream UI::KeyboardLayout Unicode::Tussle VCS::SCCS XS::libboost::mini re::engine::Oniguruma re::engine::PCRE re::engine::PCRE2 sanity

@demerphq
Copy link
Collaborator Author

I've got other work that needs my attention. You can build a perl from your branch and call:

Thanks, that was helpful. With cpanm I get this from my branch:

HARNESS_OPTIONS=j16 cpanm Benchmark::Perl::Formance::Cargo Bifcode CPU::Z80::Assembler Data::Show Ecma48::Util Encode Getopt::EX Git::Raw Graph::Dijkstra ICC::Profile IO::Prompter JE JavaScript::Embedded MarpaX::ESLIF MarpaX::Hoonlint Module::Release Mojo::Webqq Mojolicious::Plugin::Responsinator Net::Gemini Net::ISC::DHCPd POD2::ES POD2::RU PPIx::Regexp Perl6::Pugs Regexp::Common::Apache2 Regexp::Common::debian Regexp::Common Regexp::Optimizer Regexp::Parsertron SRS::EPP::Proxy Syntax::Highlight::WithEmacs Template::LiquidX::Tidy Test::Regexp Text::Frundis Text::Glob::DWIW Text::Summarizer Text::Table Text::TokenStream UI::KeyboardLayout Unicode::Tussle VCS::SCCS XS::libboost::mini re::engine::Oniguruma re::engine::PCRE re::engine::PCRE2 sanity 2>&1 | grep failed
Building and testing Ecma48-Util-0.01 ... ! Installing Ecma48::Util failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
Building and testing Graph-Dijkstra-0.70 ... ! Installing Graph::Dijkstra failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
Building and testing JavaScript-Embedded-v2.7.2 ... ! Installing JavaScript::Embedded failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
Building and testing Mojo-Webqq-v2.2.7 ... ! Installing Mojo::Webqq failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
! Finding Mojolicious::Plugin::Responsinator on cpanmetadb failed.
! Finding Mojolicious::Plugin::Responsinator () on mirror http://www.cpan.org failed.
Configuring Perl6-Pugs-6.2.13 ... ! Configure failed for Perl6-Pugs-6.2.13. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details.
Building and testing Devel-Caller-2.06 ... ! Installing Devel::Caller failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'Devel::Caller' is not installed
Configuring PRANG-0.20 ... ! Installing the dependencies failed: Module 'MooseX::Params::Validate' is not installed
Building and testing MooseX-Timestamp-0.02 ... ! Installing MooseX::Timestamp failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'MooseX::Timestamp' is not installed, Module 'PRANG' is not installed, Module 'MooseX::Params::Validate' is not installed
! Finding XML::EPP on cpanmetadb failed.
! Finding XML::EPP (0.05) on mirror http://www.cpan.org failed.
! Installing the dependencies failed: Module 'XML::SRS' is not installed, Module 'MooseX::Params::Validate' is not installed, Module 'XML::EPP' is not installed
Building and testing Kavorka-0.039 ... ! Installing Kavorka failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'Kavorka' is not installed
! Installing the dependencies failed: Module 'Moops' is not installed
Building and testing Text-Glob-DWIW-0.01 ... ! Installing Text::Glob::DWIW failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Installed version (0.4232) of Module::Build is not in range '2.01'
Building and testing re-engine-Oniguruma-0.05 ... ! Installing re::engine::Oniguruma failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
Building and testing re-engine-PCRE-0.17 ... ! Installing re::engine::PCRE failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.
Building and testing re-engine-PCRE2-0.16 ... ! Installing re::engine::PCRE2 failed. See /home/yorton/.cpanm/work/1674794835.1337512/build.log for details. Retry with --force to force install it.

same command on 5.36.0:

HARNESS_OPTIONS=j16 cpanm Benchmark::Perl::Formance::Cargo Bifcode CPU::Z80::Assembler Data::Show Ecma48::Util Encode Getopt::EX Git::Raw Graph::Dijkstra ICC::Profile IO::Prompter JE JavaScript::Embedded MarpaX::ESLIF MarpaX::Hoonlint Module::Release Mojo::Webqq Mojolicious::Plugin::Responsinator Net::Gemini Net::ISC::DHCPd POD2::ES POD2::RU PPIx::Regexp Perl6::Pugs Regexp::Common::Apache2 Regexp::Common::debian Regexp::Common Regexp::Optimizer Regexp::Parsertron SRS::EPP::Proxy Syntax::Highlight::WithEmacs Template::LiquidX::Tidy Test::Regexp Text::Frundis Text::Glob::DWIW Text::Summarizer Text::Table Text::TokenStream UI::KeyboardLayout Unicode::Tussle VCS::SCCS XS::libboost::mini re::engine::Oniguruma re::engine::PCRE re::engine::PCRE2 sanity 2>&1 | grep failed
Building and testing Ecma48-Util-0.01 ... ! Installing Ecma48::Util failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.
Building and testing Graph-Dijkstra-0.70 ... ! Installing Graph::Dijkstra failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.
Building and testing JavaScript-Embedded-v2.7.2 ... ! Installing JavaScript::Embedded failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.
Building and testing Mojo-Webqq-v2.2.7 ... ! Installing Mojo::Webqq failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.
! Finding Mojolicious::Plugin::Responsinator on cpanmetadb failed.
! Finding Mojolicious::Plugin::Responsinator () on mirror http://www.cpan.org failed.
Configuring Perl6-Pugs-6.2.13 ... ! Configure failed for Perl6-Pugs-6.2.13. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details.
Configuring SRS-EPP-Proxy-0.22 ... ! Finding XML::EPP on cpanmetadb failed.
! Finding XML::EPP (0.05) on mirror http://www.cpan.org failed.
Building and testing PRANG-0.20 ... ! Installing PRANG failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.
Building and testing MooseX-Timestamp-0.02 ... ! Installing MooseX::Timestamp failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'MooseX::Timestamp' is not installed, Module 'PRANG' is not installed
! Installing the dependencies failed: Module 'XML::EPP' is not installed, Module 'XML::SRS' is not installed
Building and testing Text-Glob-DWIW-0.01 ... ! Installing Text::Glob::DWIW failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Installed version (0.4232) of Module::Build is not in range '2.01'
Building and testing re-engine-Oniguruma-0.05 ... ! Installing re::engine::Oniguruma failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.
Building and testing re-engine-PCRE-0.17 ... ! Installing re::engine::PCRE failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.
Building and testing re-engine-PCRE2-0.16 ... ! Installing re::engine::PCRE2 failed. See /home/yorton/.cpanm/work/1674797196.1421959/build.log for details. Retry with --force to force install it.

Looks to me to be about the same. There are a few additional fails on 5.37.x but as far as I can tell they are unrelated to branch reset patch. I will file reports on at least one, if not more of them.

@demerphq
Copy link
Collaborator Author

re-engine-GNU passes test on blead now.

pjacklam pushed a commit to pjacklam/perl5 that referenced this issue May 20, 2023
We can default a 0 rx->logical_nparens to rx->nparens. If rx->logical_nparens
is zero then either rx->nparens is also zero, or it can be defaulted. This
will fix most re::engine::XXX modules that do not know about the new field,
provided they zero the rx structure during construction. If they don't then
this patch won't hurt anything and we will have to patch them directly.

Also mark re_op_compile() as available to extensions. Marking it as hidden
means that re::engine::PCRE2 and others cannot build.

This patch should go a long way towards fixing issue Perl#20710.
pjacklam pushed a commit to pjacklam/perl5 that referenced this issue May 20, 2023
We can default a 0 rx->logical_nparens to rx->nparens. If rx->logical_nparens
is zero then either rx->nparens is also zero, or it can be defaulted. This
will fix most re::engine::XXX modules that do not know about the new field,
provided they zero the rx structure during construction. If they don't then
this patch won't hurt anything and we will have to patch them directly.

Also mark re_op_compile() as available to extensions. Marking it as hidden
means that re::engine::PCRE2 and others cannot build.

This patch should go a long way towards fixing issue Perl#20710.
khwilliamson pushed a commit to khwilliamson/perl5 that referenced this issue Jul 10, 2023
We can default a 0 rx->logical_nparens to rx->nparens. If rx->logical_nparens
is zero then either rx->nparens is also zero, or it can be defaulted. This
will fix most re::engine::XXX modules that do not know about the new field,
provided they zero the rx structure during construction. If they don't then
this patch won't hurt anything and we will have to patch them directly.

Also mark re_op_compile() as available to extensions. Marking it as hidden
means that re::engine::PCRE2 and others cannot build.

This patch should go a long way towards fixing issue Perl#20710.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BBC Blead Breaks CPAN - changes in blead broke a cpan module(s) Not a Release Blocker type-regex
Projects
None yet
Development

No branches or pull requests

6 participants