This queue is for tickets about the Method-Signatures CPAN distribution.

Report information
The Basics
Id:
132865
Status:
open
Priority:
Low/Low

People
Owner:
Nobody in particular
Requestors:
KES [...] cpan.org
Cc:
AdminCc:

BugTracker
Severity:
(no value)
Broken in:
(no value)
Fixed in:
(no value)



Subject: Devel::Declare - (DEPRECATED)
Hi. Is it possible to remove deprecated Devel::Declare dependency? that module is deprecated and is not build on perl 5.32.0 ``` "/home/kes/perl5/perlbrew/perls/perl-5.32.0/bin/perl" "/home/kes/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/ExtUtils/xsubpp" -typemap '/home/kes/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/ExtUtils/typemap' Declare.xs > Declare.xsc mv Declare.xsc Declare.c cc -c -I/home/kes/work/projects/tucha/monkeyman/local/lib/perl5/x86_64-linux/B/Hooks/OP/Check/Install -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"0.006019\" -DXS_VERSION=\"0.006019\" -fPIC "-I/home/kes/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/x86_64-linux/CORE" Declare.c In file included from Declare.xs:7:0: stolen_chunk_of_toke.c: In function ‘S_scan_word’: stolen_chunk_of_toke.c:440:42: warning: implicit declaration of function ‘isIDFIRST_lazy_if’; did you mean ‘isIDFIRST_lazy_if_safe’? [-Wimplicit-function-declaration] else if (*s == '\'' && allow_package && isIDFIRST_lazy_if(s+1,UTF)) { ^~~~~~~~~~~~~~~~~ isIDFIRST_lazy_if_safe stolen_chunk_of_toke.c:449:58: error: macro "isALNUM_utf8" requires 2 arguments, but only 1 given else if (UTF && UTF8_IS_START(*s) && isALNUM_utf8((U8*)s)) { ^ stolen_chunk_of_toke.c:449:39: error: ‘isALNUM_utf8’ undeclared (first use in this function) else if (UTF && UTF8_IS_START(*s) && isALNUM_utf8((U8*)s)) { ^~~~~~~~~~~~ stolen_chunk_of_toke.c:449:39: note: each undeclared identifier is reported only once for each function it appears in stolen_chunk_of_toke.c:194:23: warning: implicit declaration of function ‘is_utf8_mark’; did you mean ‘_is_utf8_mark’? [-Wimplicit-function-declaration] #define _is_utf8_mark is_utf8_mark ^ stolen_chunk_of_toke.c:194:23: note: in definition of macro ‘_is_utf8_mark’ #define _is_utf8_mark is_utf8_mark ^~~~~~~~~~~~ stolen_chunk_of_toke.c: In function ‘S_scan_ident’: stolen_chunk_of_toke.c:935:62: error: macro "isALNUM_utf8" requires 2 arguments, but only 1 given else if (UTF && UTF8_IS_START(*s) && isALNUM_utf8((U8*)s)) { ^ stolen_chunk_of_toke.c:935:43: error: ‘isALNUM_utf8’ undeclared (first use in this function) else if (UTF && UTF8_IS_START(*s) && isALNUM_utf8((U8*)s)) { ^~~~~~~~~~~~ stolen_chunk_of_toke.c:957:3: warning: implicit declaration of function ‘isALNUM_lazy_if’; did you mean ‘isALNUM_lazy_if_safe’? [-Wimplicit-function-declaration] (isALNUM_lazy_if(s+1,UTF) || s[1] == '$' || s[1] == '{' || strnEQ(s+1,"::",2)) ) ^~~~~~~~~~~~~~~ isALNUM_lazy_if_safe Makefile:341: recipe for target 'Declare.o' failed make: *** [Declare.o] Error 1 -> FAIL Installing Devel::Declare failed. See /home/kes/.cpanm/work/1592840669.28778/build.log for details. Retry with --force to force install it. ```
Subject: build.log
cpanm (Menlo) 1.9019 on perl 5.032000 built for x86_64-linux Work directory is /home/kes/.cpanm/work/1592840669.28778 You have make /usr/bin/make You have LWP: 6.45 You have LWP::Protocol::https: 6.07 You have /bin/tar: tar (GNU tar) 1.29 Copyright (C) 2015 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by John Gilmore and Jay Fenlason. You have /usr/bin/unzip --> Working on /home/kes/work/projects/tucha/monkeyman/ Entering /home/kes/work/projects/tucha/monkeyman Configuring /home/kes/work/projects/tucha/monkeyman -> OK Checking if you have Log::Log4perl 0 ... Yes (1.49) Checking if you have Data::Compare 0 ... Yes (1.27) Checking if you have Mojolicious::Plugin::Status 0 ... Yes (1.12) Checking if you have Data::Clone 0 ... Yes (0.004) Checking if you have Spreadsheet::XLSX 0 ... Yes (0.15) Checking if you have Any::Moose == 0.26 ... Yes (0.26) Checking if you have LWP::UserAgent 0 ... Yes (6.45) Checking if you have DBIx::Class::InflateColumn::Serializer 0 ... Yes (0.09) Checking if you have Authen::SASL 0 ... Yes (2.16) Checking if you have Method::Signatures 0 ... Yes (20170211) Checking if you have JSON::XS 0 ... Yes (4.02) Checking if you have Carton 0 ... Yes (v1.0.34) Checking if you have Hash::Merge::Simple 0 ... Yes (0.051) Checking if you have Mojolicious::Plugin::Scrypt 0 ... Yes (0.01) Checking if you have Data::Diff 0 ... Yes (0.01) Checking if you have Parse::RecDescent 0 ... Yes (1.967015) Checking if you have Data::Difference 0 ... Yes (0.112850) Checking if you have Email::Stuffer 0 ... Yes (0.017) Checking if you have Data::Alias 0 ... Yes (1.21) Checking if you have PDF::WebKit 0 ... Yes (1.2) Checking if you have XLS::Simple 0 ... Yes (0.02) Checking if you have DBIx::Class::Helper::Row::SelfResultSet 0 ... Yes (2.036000) Checking if you have Test::Differences 0 ... Yes (0.67) Checking if you have UUID::FFI 0 ... Yes (0.07) Checking if you have Test2::V0 0 ... Yes (0.000130) Checking if you have WWW::Mechanize::Chrome 0 ... Yes (0.58) Checking if you have Net::Domain::TLD 0 ... Yes (1.75) Checking if you have String::CamelCase 0 ... Yes (0.04) Checking if you have Mojolicious 7.85 ... Yes (8.55) Checking if you have Devel::Declare == 0.006019 ... No (0.006022 doesn't satisfy == 0.006019) Checking if you have DBIx::Class::EncodedColumn 0 ... Yes (0.00020) Checking if you have Text::Template 0 ... Yes (1.58) Checking if you have Mojo::Pg 0 ... Yes (4.19) Checking if you have MooseX::NonMoose 0 ... Yes (0.26) Checking if you have Config::General 0 ... Yes (2.63) Checking if you have LWP::Protocol::https 0 ... Yes (6.07) Checking if you have HTTP::CookieMonster 0 ... Yes (0.11) Checking if you have Email::Valid 0 ... Yes (1.202) Checking if you have DBIx::Class::Migration 0 ... Yes (0.075) Checking if you have Term::ReadKey 0 ... Yes (2.38) Checking if you have autovivification 0 ... Yes (0.18) Checking if you have Log::Dispatch::FileRotate 0 ... Yes (1.36) Checking if you have MooseX::Singleton 0 ... Yes (0.30) Checking if you have XBase 0 ... Yes (1.02) Checking if you have DBIx::Class::Report 0 ... Yes (0.03) Checking if you have Capture::Tiny 0 ... Yes (0.48) Checking if you have Cache::Memcached 0 ... Yes (1.30) Checking if you have POSIX::strptime 0 ... Yes (0.13) Checking if you have JSON::Validator 0 ... Yes (4.00) Checking if you have Net::DNS 0 ... Yes (1.24) Checking if you have Algorithm::Diff 0 ... Yes (1.1903) Checking if you have Number::Phone 0 ... Yes (3.6005) Checking if you have Readonly 0 ... Yes (2.05) Checking if you have DDP 0 ... Yes (undef) Checking if you have Module::List 0 ... Yes (0.004) Checking if you have Moose 0 ... Yes (2.2012) Checking if you have Time::Limit 0 ... Yes (0.003) Checking if you have MooseX::MarkAsMethods 0 ... Yes (0.15) Checking if you have DBD::Pg 0 ... Yes (3.13.0) Checking if you have HTTP::Request 0 ... Yes (6.24) Checking if you have Email::MIME 0 ... Yes (1.949) Checking if you have File::Slurp 0 ... Yes (9999.30) Checking if you have Text::CSV_XS 0 ... Yes (1.43) Checking if you have DateTime::Format::Epoch::Unix 0 ... Yes (0.13) Checking if you have Spreadsheet::ParseExcel 0 ... Yes (0.65) Checking if you have YAML::XS 0 ... Yes (0.82) Checking if you have DateTime 0 ... Yes (1.52) Checking if you have URI::Encode 0 ... Yes (1.1.1) Checking if you have TAP::Parser::SourceHandler::pgTAP 0 ... Yes (3.35) Checking if you have Email::Sender::Simple 0 ... Yes (1.300034) Checking if you have DBIx::Class == 0.082841 ... Yes (0.082841) Checking if you have Mojolicious::Plugin::OpenAPI 0 ... Yes (3.33) Checking if you have Modern::Perl 0 ... Yes (1.20200211) Checking if you have Switch 0 ... Yes (2.17) Checking if you have XML::LibXML 0 ... Yes (2.0205) Checking if you have DBIx::Dump 0 ... Yes (0.04) Checking if you have Lingua::EN::Inflect::Phrase 0 ... Yes (0.20) Checking if you have App::Genpass 0 ... Yes (2.401) Checking if you have TryCatch 0 ... Yes (1.003002) ==> Found dependencies: Devel::Declare Searching Devel::Declare on mirror index /home/kes/work/projects/tucha/monkeyman/local/cache/modules/02packages.details.txt ... Searching Devel::Declare (== 0.006019) on cpanmetadb ... --> Working on Devel::Declare Fetching http://backpan.perl.org/authors/id/E/ET/ETHER/Devel-Declare-0.006019.tar.gz -> OK Unpacking Devel-Declare-0.006019.tar.gz Copying Devel-Declare-0.006019.tar.gz to /home/kes/work/projects/tucha/monkeyman/local/cache/authors/id/E/ET/ETHER/Devel-Declare-0.006019.tar.gz Entering Devel-Declare-0.006019 Checking configure dependencies from META.json Checking if you have ExtUtils::Depends 0.302 ... Yes (0.8000) Checking if you have B::Hooks::OP::Check 0.19 ... Yes (0.22) Configuring Devel-Declare-0.006019 Running Makefile.PL Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for Devel::Declare Writing MYMETA.yml and MYMETA.json -> OK Checking dependencies from MYMETA.json ... Checking if you have Scalar::Util 1.11 ... Yes (1.55) Checking if you have Test::More 0.88 ... Yes (1.302175) Checking if you have B::Hooks::EndOfScope 0.05 ... Yes (0.24) Checking if you have Test::Requires 0 ... Yes (0.11) Checking if you have Sub::Name 0 ... Yes (0.26) Checking if you have B::Hooks::OP::Check 0.19 ... Yes (0.22) Building Devel-Declare-0.006019 cp lib/Devel/Declare.pm blib/lib/Devel/Declare.pm cp lib/Devel/Declare/MethodInstaller/Simple.pm blib/lib/Devel/Declare/MethodInstaller/Simple.pm cp lib/Devel/Declare/Context/Simple.pm blib/lib/Devel/Declare/Context/Simple.pm Running Mkbootstrap for Declare () chmod 644 "Declare.bs" "/home/kes/perl5/perlbrew/perls/perl-5.32.0/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Declare.bs blib/arch/auto/Devel/Declare/Declare.bs 644 "/home/kes/perl5/perlbrew/perls/perl-5.32.0/bin/perl" "/home/kes/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/ExtUtils/xsubpp" -typemap '/home/kes/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/ExtUtils/typemap' Declare.xs > Declare.xsc mv Declare.xsc Declare.c cc -c -I/home/kes/work/projects/tucha/monkeyman/local/lib/perl5/x86_64-linux/B/Hooks/OP/Check/Install -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"0.006019\" -DXS_VERSION=\"0.006019\" -fPIC "-I/home/kes/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/x86_64-linux/CORE" Declare.c In file included from Declare.xs:7:0: stolen_chunk_of_toke.c: In function ‘S_scan_word’: stolen_chunk_of_toke.c:440:42: warning: implicit declaration of function ‘isIDFIRST_lazy_if’; did you mean ‘isIDFIRST_lazy_if_safe’? [-Wimplicit-function-declaration] else if (*s == '\'' && allow_package && isIDFIRST_lazy_if(s+1,UTF)) { ^~~~~~~~~~~~~~~~~ isIDFIRST_lazy_if_safe stolen_chunk_of_toke.c:449:58: error: macro "isALNUM_utf8" requires 2 arguments, but only 1 given else if (UTF && UTF8_IS_START(*s) && isALNUM_utf8((U8*)s)) { ^ stolen_chunk_of_toke.c:449:39: error: ‘isALNUM_utf8’ undeclared (first use in this function) else if (UTF && UTF8_IS_START(*s) && isALNUM_utf8((U8*)s)) { ^~~~~~~~~~~~ stolen_chunk_of_toke.c:449:39: note: each undeclared identifier is reported only once for each function it appears in stolen_chunk_of_toke.c:194:23: warning: implicit declaration of function ‘is_utf8_mark’; did you mean ‘_is_utf8_mark’? [-Wimplicit-function-declaration] #define _is_utf8_mark is_utf8_mark ^ stolen_chunk_of_toke.c:194:23: note: in definition of macro ‘_is_utf8_mark’ #define _is_utf8_mark is_utf8_mark ^~~~~~~~~~~~ stolen_chunk_of_toke.c: In function ‘S_scan_ident’: stolen_chunk_of_toke.c:935:62: error: macro "isALNUM_utf8" requires 2 arguments, but only 1 given else if (UTF && UTF8_IS_START(*s) && isALNUM_utf8((U8*)s)) { ^ stolen_chunk_of_toke.c:935:43: error: ‘isALNUM_utf8’ undeclared (first use in this function) else if (UTF && UTF8_IS_START(*s) && isALNUM_utf8((U8*)s)) { ^~~~~~~~~~~~ stolen_chunk_of_toke.c:957:3: warning: implicit declaration of function ‘isALNUM_lazy_if’; did you mean ‘isALNUM_lazy_if_safe’? [-Wimplicit-function-declaration] (isALNUM_lazy_if(s+1,UTF) || s[1] == '$' || s[1] == '{' || strnEQ(s+1,"::",2)) ) ^~~~~~~~~~~~~~~ isALNUM_lazy_if_safe Makefile:341: recipe for target 'Declare.o' failed make: *** [Declare.o] Error 1 -> FAIL Installing Devel::Declare failed. See /home/kes/.cpanm/work/1592840669.28778/build.log for details. Retry with --force to force install it.
On Mon Jun 22 11:49:22 2020, KES wrote:
Show quoted text
> Hi. Is it possible to remove deprecated Devel::Declare dependency? > > that module is deprecated and is not build on perl 5.32.0
Anything is possible, but no that is quite unlikely to happen, the entire Method::Signatures is written based on Devel::Declare. Consider moving to something like Function::Parameters if the core signatures feature is not sufficient for your needs yet, or there are assorted other options based on more supported APIs. -Dan
On Mon Jun 22 11:49:22 2020, KES wrote:
Show quoted text
> that module is deprecated and is not build on perl 5.32.0
You are forcing an older version of Devel::Declare. The latest version does build on perl 5.32.0.
On Tue Jun 23 06:39:44 2020, haarg wrote:
Show quoted text
> On Mon Jun 22 11:49:22 2020, KES wrote:
> > that module is deprecated and is not build on perl 5.32.0
> > You are forcing an older version of Devel::Declare. The latest > version does build on perl 5.32.0.
You are right. I force because only that version was working. Building last version is successful, but it does not work: Mojo::Exception Couldn't find declarator 'method' at /home/kes/work/projects/tucha/monkeyman/local/lib/perl5/x86_64-linux/Devel/Declare/Context/Simple.pm line 47. Devel::Declare::Context::Simple::skip_declarator(Method::Signatures=HASH(0x559202ad2928)) called at /home/kes/work/projects/tucha/monkeyman/local/lib/perl5/Method/Signatures.pm line 877 Method::Signatures::parser(Method::Signatures=HASH(0x559202ad2928), "method", 0, 1) called at /home/kes/work/projects/tucha/monkeyman/local/lib/perl5/x86_64-linux/Devel/Declare/MethodInstaller/Simple.pm line 25 Devel::Declare::MethodInstaller::Simple::__ANON__[/home/kes/work/projects/tucha/monkeyman/local/lib/perl5/x86_64-linux/Devel/Declare/MethodInstaller/Simple.pm:25]("method", 0) called at /home/kes/work/projects/tucha/monkeyman/local/lib/perl5/x86_64-linux/Devel/Declare.pm line 282 Devel::Declare::linestr_callback("const", "method", 0) called at /home/kes/work/projects/tucha/monkeyman/lib/HyperMouse.pm line 34 require HyperMouse.pm called at /home/kes/work/projects/tucha/monkeyman/lib/MonkeyMan/Plug.pm line 309 eval {...} called at /home/kes/work/projects/tucha/monkeyman/lib/MonkeyMan/Plug.pm line 308 MonkeyMan::Plug::load_package("HyperMouse") called at /home/kes/work/projects/tucha/monkeyman/lib/MonkeyMan/Plug.pm line 289 MonkeyMan::Plug::plug("MonkeyMan::Plug", "plug_handle", "hypermouse_plug", "actor_handle", "hypermouse", "actor_default", "PRIMARY", "actor_parent", ...) called at /home/kes/work/projects/tucha/monkeyman/lib/MonkeyMan.pm line 450 ... Currently I decide just not upgrade modules.
We ran into this also, and the short answer is that the last version of Perl that Method::Signatures will currently work reliably with is 5.30. My understanding from the related tickets here in other modules is that they ripped out some stuff from Perl core that Devel::Declare needed in 5.31. Karl Williamson graciously made a patch to Devel::Declare which works around some of the these things, but the remaining issues are non-trivial to solve. See: https://rt.cpan.org/Public/Bug/Display.html?id=131226 See: https://github.com/p5sagit/Devel-Declare/pull/1 So for stable Perl with Method::Signatures, in the current state of things, we need to stick with 5.30 and Devel::Declare v0.006019. Newer versions of either perl or Devel::Declare are broken. This simple test case fails with latest Devel::Declare + Method::Signatures (under any perl version) use Method::Signatures; use utf8; func hello() { print "hello world\n"; } And this is because of the UTF8 changes in core that cannot easily be solved in Devel::Declare from my understanding. Devel::Declare was always highly fragile and its amazing that it worked for this long, but it is time to give up on it probably and migrate to a more modern alternative. To be clear, I'm not saying anyone is at fault or placing any blame here. But its not going to be trivial to fix Devel::Declare any longer so its time to move on from it. Probably best option for me is Function::Parameters currently. -- Regards, Michael Schout


This service runs on Request Tracker, is sponsored by The Perl Foundation, and maintained by Best Practical Solutions.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.