http://qs321.pair.com?node_id=11118371


in reply to Re: Perl 5.32.0 Released
in thread Perl 5.32.0 Released

Devel::Declare is deprecated for many good reasons. If you are using perl 5.32 (or indeed any version of perl later than 5.20.0), you can just use core signatures (perldoc.pl/signatures) instead.

-ether@cpan.org

Replies are listed 'Best First'.
Re^3: Perl 5.32.0 Released
by 1nickt (Canon) on Jun 22, 2020 at 23:35 UTC

    Hi Karen, thank you! But I think that's not quite a full picture.

    Signatures have not lost the experimental tag in Perl 5.32. I recently asked dave_the_m what the sticking points were and he said that it remains undecided whether @_ will be populated or not. As I read the current doc, it is populated, so that would be an incompatible change.

    In my work environment, as is true for many developers, it's not prudent to use experimental Perl features (because they change), so we don't do so.We're anxious to switch to native signatures, especially as Method::Signatures is getting more difficult to use, but we're not going to switch until we don't have to disable 'experimental' warnings.


    The way forward always starts with a minimal test.
      Hi,

      Devel-Declare-0.006019 builds and tests fine for me on 5.32.0 (MSWindows), with the following hacks:
      1) Replace 0.006019's version of stolen_chunk_of_toke.c with the version that's in 0.006022;
      2) Copy ppport.h from 0.006022 across to 0.006019.

      Method-Signatures-20170211 then also built and installed cleanly - with some test suite noise about Any::Moose having been deprecated in favour of Moo.
      I had to force install Data::Alias, as it failed a couple of tests.

      Note that the following warnings did appear during the compilation of Devel-Declare-0.006019:
      In file included from Declare.xs:7: stolen_chunk_of_toke.c:145: warning: "PL_lex_stuff" redefined #define PL_lex_stuff (PL_parser->lex_stuff) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4928: note: this is the location of the previous definition # define PL_lex_stuff D_PPP_my_PL_parser_var(lex_stuff) In file included from Declare.xs:7: stolen_chunk_of_toke.c:152: warning: "PL_linestr" redefined #define PL_linestr (PL_parser->linestr) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4924: note: this is the location of the previous definition # define PL_linestr D_PPP_my_PL_parser_var(linestr) In file included from Declare.xs:7: stolen_chunk_of_toke.c:155: warning: "PL_expect" redefined #define PL_expect (PL_parser->expect) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4920: note: this is the location of the previous definition # define PL_expect D_PPP_my_PL_parser_var(expect) In file included from Declare.xs:7: stolen_chunk_of_toke.c:156: warning: "PL_copline" redefined #define PL_copline (PL_parser->copline) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4921: note: this is the location of the previous definition # define PL_copline D_PPP_my_PL_parser_var(copline) In file included from Declare.xs:7: stolen_chunk_of_toke.c:157: warning: "PL_bufptr" redefined #define PL_bufptr (PL_parser->bufptr) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4925: note: this is the location of the previous definition # define PL_bufptr D_PPP_my_PL_parser_var(bufptr) In file included from Declare.xs:7: stolen_chunk_of_toke.c:161: warning: "PL_bufend" redefined #define PL_bufend (PL_parser->bufend) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4926: note: this is the location of the previous definition # define PL_bufend D_PPP_my_PL_parser_var(bufend) In file included from Declare.xs:7: stolen_chunk_of_toke.c:165: warning: "PL_lex_state" redefined #define PL_lex_state (PL_parser->lex_state) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4927: note: this is the location of the previous definition # define PL_lex_state D_PPP_my_PL_parser_var(lex_state) In file included from Declare.xs:7: stolen_chunk_of_toke.c:166: warning: "PL_rsfp" redefined #define PL_rsfp (PL_parser->rsfp) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4922: note: this is the location of the previous definition # define PL_rsfp D_PPP_my_PL_parser_var(rsfp) In file included from Declare.xs:7: stolen_chunk_of_toke.c:167: warning: "PL_rsfp_filters" redefined #define PL_rsfp_filters (PL_parser->rsfp_filters) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4923: note: this is the location of the previous definition # define PL_rsfp_filters D_PPP_my_PL_parser_var(rsfp_filters) In file included from Declare.xs:7: stolen_chunk_of_toke.c:168: warning: "PL_in_my" redefined #define PL_in_my (PL_parser->in_my) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4930: note: this is the location of the previous definition # define PL_in_my D_PPP_my_PL_parser_var(in_my) In file included from Declare.xs:7: stolen_chunk_of_toke.c:169: warning: "PL_in_my_stash" redefined #define PL_in_my_stash (PL_parser->in_my_stash) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4931: note: this is the location of the previous definition # define PL_in_my_stash D_PPP_my_PL_parser_var(in_my_stash) In file included from Declare.xs:7: stolen_chunk_of_toke.c:170: warning: "PL_tokenbuf" redefined #define PL_tokenbuf (PL_parser->tokenbuf) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4929: note: this is the location of the previous definition # define PL_tokenbuf D_PPP_my_PL_parser_var(tokenbuf) In file included from Declare.xs:7: stolen_chunk_of_toke.c:172: warning: "PL_error_count" redefined #define PL_error_count (PL_parser->error_count) In file included from stolen_chunk_of_toke.c:20, from Declare.xs:7: ppport.h:4932: note: this is the location of the previous definition # define PL_error_count D_PPP_my_PL_parser_var(error_count) In file included from Declare.xs:7: stolen_chunk_of_toke.c:228:1: warning: 'Perl_filter_read' redeclared w +ithout dll import attribute: previous dllimport ignored [-Wattributes] Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen) ^~~~~~~~~~~~~~~~
      Cheers,
      Rob

        Awesome, thank you brother Syphilis! I'll give this a try in the morrow.


        The way forward always starts with a minimal test.