Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.98k stars 559 forks source link

BBC: Blead Breaks Tie::Hash::Indexed #22551

Closed cjg-cguevara closed 2 months ago

cjg-cguevara commented 2 months ago

This is a bug report for perl from "Carlos Guevara" carlos@carlosguevara.com, generated with the help of perlbug 1.43 running under perl 5.41.3.


BBC: Blead Breaks Tie::Hash::Indexed

Please see http://fast-matrix.cpantesters.org/?dist=Tie::Hash::Indexed


Flags

Configured by cpan at Thu Aug 29 03:49:54 EDT 2024.

Summary of my perl5 (revision 5 version 41 subversion 3) configuration: Commit id: 6c2bf33dc96a631e0d86e584bcce24f001e8a215 Platform: osname=linux osvers=5.14.0-427.33.1.el9_4.x86_64 archname=x86_64-linux uname='linux cjg-rhel9 5.14.0-427.33.1.el9_4.x86_64 #1 smp preempt_dynamic fri aug 16 10:56:24 edt 2024 x86_64 x86_64 x86_64 gnulinux ' config_args='-des -Dprefix=/home/cpan/bin/perl -Dscriptdir=/home/cpan/bin/perl/bin -Dusedevel -Duse64bitall' hint=recommended useposix=true d_sigaction=define useithreads=undef usemultiplicity=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define Compiler: cc='cc' ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2' optimize='-O2' cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include' ccversion='' gccversion='11.4.1 20231218 (Red Hat 11.4.1-3)' gccosandvers='' intsize=4 longsize=8 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=16 longdblkind=3 ivtype='long' ivsize=8 nvtype='double' nvsize=8 Off_t='off_t' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='cc' ldflags =' -fstack-protector-strong -L/usr/local/lib' libpth=/usr/local/lib /usr/lib /usr/lib64 /usr/local/lib64 libs=-lpthread -ldb -ldl -lm -lcrypt -lutil -lc perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc libc=/lib/../lib64/libc.so.6 so=so useshrplib=false libperl=libperl.a gnulibc_version='2.34' Dynamic Linking: dlsrc=dl_dlopen.xs dlext=so d_dlsymun=undef ccdlflags='-Wl,-E' cccdlflags='-fPIC' lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong'


@INC for perl 5.41.3: /home/cpan/bin/perl/lib/site_perl/5.41.3/x86_64-linux /home/cpan/bin/perl/lib/site_perl/5.41.3 /home/cpan/bin/perl/lib/5.41.3/x86_64-linux /home/cpan/bin/perl/lib/5.41.3


Environment for perl 5.41.3: HOME=/home/cpan LANG=en_US.UTF-8 LANGUAGE (unset) LC_ALL=C LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/home/cpan/bin/perl/bin:/home/cpan/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin PERL_BADLANG (unset) SHELL=/bin/bash

mauke commented 2 months ago

c9ef0c796424d557643d76b17502208ccfb60c76 introduced broken code in ExtUtils::ParseXS process_file (search for $}):

          print "\t" . $self->map_type("self->{xsub_$}class *");
          $self->{xsub_map_argname_to_type}->{"THIS"} = "self->{xsub_$}class *";

probably should be

          print "\t" . $self->map_type("self->{xsub_class} *");
          $self->{xsub_map_argname_to_type}->{"THIS"} = "self->{xsub_class} *";

Not sure what happened here. Search/replace gone wrong? @iabyn

jkeenan commented 2 months ago

Breaking commit confirmed as:

commit c9ef0c796424d557643d76b17502208ccfb60c76 (refs/bisect/bad)
Author:     David Mitchell <davem@iabyn.nospamdeletethisbit.com>
AuthorDate: Fri Aug 16 19:52:27 2024 +0100
Commit:     David Mitchell <davem@iabyn.nospamdeletethisbit.com>
CommitDate: Mon Aug 19 11:32:03 2024 +0100

    ParseXS: turn some lex vars into object fields
jkeenan commented 2 months ago

Locally I attempted to follow @mauke's suggestion above. I created a branch, modified code and installed it locally:

commit db62df9e97a3f67b2cfd9ae6955b50ffe3cb095c
Author:     James E Keenan <jkeenan@cpan.org>
AuthorDate: Fri Aug 30 07:18:39 2024 -0400
Commit:     James E Keenan <jkeenan@cpan.org>
CommitDate: Fri Aug 30 07:48:46 2024 -0400

    Correct mistyped code in GH #22551

    Per mauke's analysis.

    Version bump in all *pm files and perlxs

diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm
index c97757941f..6760d7f053 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm
@@ -59,7 +59,7 @@ use Symbol;

 our $VERSION;
 BEGIN {
-  $VERSION = '3.53';
+  $VERSION = '3.54';
   require ExtUtils::ParseXS::Constants; ExtUtils::ParseXS::Constants->VERSION($VERSION);
   require ExtUtils::ParseXS::CountLines; ExtUtils::ParseXS::CountLines->VERSION($VERSION);
   require ExtUtils::ParseXS::Utilities; ExtUtils::ParseXS::Utilities->VERSION($VERSION);
@@ -1353,8 +1353,8 @@ EOF
           } );
         }
         else {
-          print "\t" . $self->map_type("self->{xsub_$}class *");
-          $self->{xsub_map_argname_to_type}->{"THIS"} = "self->{xsub_$}class *";
+          print "\t" . $self->map_type("self->{xsub_class} *");
+          $self->{xsub_map_argname_to_type}->{"THIS"} = "self->{xsub_class} *";
           $self->generate_init( {
             type          => "$self->{xsub_class} *",
             num           => 1,
diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm
index 0c627eea66..1da9ae8ae4 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Constants.pm
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 use Symbol;

-our $VERSION = '3.53';
+our $VERSION = '3.54';

 =head1 NAME

diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm
index 4a313b8469..aa556cc873 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/CountLines.pm
@@ -1,7 +1,7 @@
 package ExtUtils::ParseXS::CountLines;
 use strict;

-our $VERSION = '3.53';
+our $VERSION = '3.54';

 our $SECTION_END_MARKER;

diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm
index 10f91d803a..dce4b4b19b 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Eval.pm
@@ -2,7 +2,7 @@ package ExtUtils::ParseXS::Eval;
 use strict;
 use warnings;

-our $VERSION = '3.53';
+our $VERSION = '3.54';

 =head1 NAME

diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
index 4ee2986594..f5a3a7472e 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
@@ -5,7 +5,7 @@ use Exporter;
 use File::Spec;
 use ExtUtils::ParseXS::Constants ();

-our $VERSION = '3.53';
+our $VERSION = '3.54';

 our (@ISA, @EXPORT_OK);
 @ISA = qw(Exporter);
diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm
index c1f51d410b..7046c491d9 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.53';
+our $VERSION = '3.54';

 require ExtUtils::ParseXS;
 require ExtUtils::ParseXS::Constants;
diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm
index 8d86bfddb6..dbf8e0a84f 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::Cmd;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.53';
+our $VERSION = '3.54';

 use ExtUtils::Typemaps;

diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm
index d0ee1aeec9..6801f253fc 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/InputMap.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::InputMap;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.53';
+our $VERSION = '3.54';

 =head1 NAME

diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm
index 8fee130e42..f389e7c254 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/OutputMap.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::OutputMap;
 use 5.006001;
 use strict;
 use warnings;
-our $VERSION = '3.53';
+our $VERSION = '3.54';

 =head1 NAME

diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm
index acf67cabad..e1cfa68e9f 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Type.pm
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 require ExtUtils::Typemaps;

-our $VERSION = '3.53';
+our $VERSION = '3.54';

 =head1 NAME

diff --git a/dist/ExtUtils-ParseXS/lib/perlxs.pod b/dist/ExtUtils-ParseXS/lib/perlxs.pod
index 3ac8c4783d..748608efe7 100644
--- a/dist/ExtUtils-ParseXS/lib/perlxs.pod
+++ b/dist/ExtUtils-ParseXS/lib/perlxs.pod
@@ -2209,7 +2209,7 @@ this model, the less likely conflicts will occur.
 =head1 XS VERSION

 This document covers features supported by C<ExtUtils::ParseXS>
-(also known as C<xsubpp>) 3.53
+(also known as C<xsubpp>) 3.54

 =head1 AUTHOR DIAGNOSTICS

However, when I attempted to install Tie-Hash-Indexed-0.08 against that perl, I got build-time errors similar to those reported in http://www.cpantesters.org/cpan/report/97abdb98-6592-11ef-93e9-cd137bb966e1, but without all the uninitialized value warnings.

cc -c  -I. -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"0.08\" -DXS_VERSION=\"0.08\" -fPIC "-I/home/jkeenan/testing/e69f0e4ba2/lib/perl5/5.41.4/x86_64-linux/CORE"  -DNDEBUG Indexed.c
Indexed.c: In function ‘XS_Tie__Hash__Indexed__Iterator_DESTROY’:
Indexed.c:518:9: error: ‘self’ undeclared (first use in this function)
  518 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:518:9: note: each undeclared identifier is reported only once for each function it appears in
Indexed.c:518:15: error: expected identifier before ‘{’ token
  518 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:523:11: error: ‘THIS’ undeclared (first use in this function)
  523 |           THIS = INT2PTR(Iterator *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed__Iterator_next’:
Indexed.c:552:9: error: ‘self’ undeclared (first use in this function)
  552 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:552:15: error: expected identifier before ‘{’ token
  552 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:557:11: error: ‘THIS’ undeclared (first use in this function)
  557 |           THIS = INT2PTR(Iterator *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed__Iterator_valid’:
Indexed.c:590:9: error: ‘self’ undeclared (first use in this function)
  590 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:590:15: error: expected identifier before ‘{’ token
  590 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:596:11: error: ‘THIS’ undeclared (first use in this function)
  596 |           THIS = INT2PTR(Iterator *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed__Iterator_key’:
Indexed.c:622:9: error: ‘self’ undeclared (first use in this function)
  622 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:622:15: error: expected identifier before ‘{’ token
  622 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:627:11: error: ‘THIS’ undeclared (first use in this function)
  627 |           THIS = INT2PTR(Iterator *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_DESTROY’:
Indexed.c:708:9: error: ‘self’ undeclared (first use in this function)
  708 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:708:15: error: expected identifier before ‘{’ token
  708 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:713:11: error: ‘THIS’ undeclared (first use in this function)
  713 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_FETCH’:
Indexed.c:770:9: error: ‘self’ undeclared (first use in this function)
  770 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:770:15: error: expected identifier before ‘{’ token
  770 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:775:11: error: ‘THIS’ undeclared (first use in this function)
  775 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_STORE’:
Indexed.c:815:9: error: ‘self’ undeclared (first use in this function)
  815 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:815:15: error: expected identifier before ‘{’ token
  815 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:820:11: error: ‘THIS’ undeclared (first use in this function)
  820 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_FIRSTKEY’:
Indexed.c:867:9: error: ‘self’ undeclared (first use in this function)
  867 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:867:15: error: expected identifier before ‘{’ token
  867 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:872:11: error: ‘THIS’ undeclared (first use in this function)
  872 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_NEXTKEY’:
Indexed.c:912:9: error: ‘self’ undeclared (first use in this function)
  912 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:912:15: error: expected identifier before ‘{’ token
  912 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:917:11: error: ‘THIS’ undeclared (first use in this function)
  917 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_EXISTS’:
Indexed.c:958:9: error: ‘self’ undeclared (first use in this function)
  958 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:958:15: error: expected identifier before ‘{’ token
  958 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:963:11: error: ‘THIS’ undeclared (first use in this function)
  963 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_DELETE’:
Indexed.c:1006:9: error: ‘self’ undeclared (first use in this function)
 1006 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1006:15: error: expected identifier before ‘{’ token
 1006 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1011:11: error: ‘THIS’ undeclared (first use in this function)
 1011 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_CLEAR’:
Indexed.c:1070:9: error: ‘self’ undeclared (first use in this function)
 1070 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1070:15: error: expected identifier before ‘{’ token
 1070 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1075:11: error: ‘THIS’ undeclared (first use in this function)
 1075 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_SCALAR’:
Indexed.c:1112:9: error: ‘self’ undeclared (first use in this function)
 1112 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1112:15: error: expected identifier before ‘{’ token
 1112 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1117:11: error: ‘THIS’ undeclared (first use in this function)
 1117 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_items’:
Indexed.c:1163:9: error: ‘self’ undeclared (first use in this function)
 1163 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1163:15: error: expected identifier before ‘{’ token
 1163 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1168:11: error: ‘THIS’ undeclared (first use in this function)
 1168 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_merge’:
Indexed.c:1260:9: error: ‘self’ undeclared (first use in this function)
 1260 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1260:15: error: expected identifier before ‘{’ token
 1260 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1265:11: error: ‘THIS’ undeclared (first use in this function)
 1265 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_pop’:
Indexed.c:1332:9: error: ‘self’ undeclared (first use in this function)
 1332 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1332:15: error: expected identifier before ‘{’ token
 1332 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1337:11: error: ‘THIS’ undeclared (first use in this function)
 1337 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_iterator’:
Indexed.c:1394:9: error: ‘self’ undeclared (first use in this function)
 1394 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1394:15: error: expected identifier before ‘{’ token
 1394 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1399:11: error: ‘THIS’ undeclared (first use in this function)
 1399 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_preinc’:
Indexed.c:1444:9: error: ‘self’ undeclared (first use in this function)
 1444 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1444:15: error: expected identifier before ‘{’ token
 1444 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1449:11: error: ‘THIS’ undeclared (first use in this function)
 1449 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_add’:
Indexed.c:1522:9: error: ‘self’ undeclared (first use in this function)
 1522 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1522:15: error: expected identifier before ‘{’ token
 1522 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1527:11: error: ‘THIS’ undeclared (first use in this function)
 1527 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
Indexed.c: In function ‘XS_Tie__Hash__Indexed_STORABLE_freeze’:
Indexed.c:1627:9: error: ‘self’ undeclared (first use in this function)
 1627 |         self->{xsub_class} *    THIS;
      |         ^~~~
Indexed.c:1627:15: error: expected identifier before ‘{’ token
 1627 |         self->{xsub_class} *    THIS;
      |               ^
Indexed.c:1632:11: error: ‘THIS’ undeclared (first use in this function)
 1632 |           THIS = INT2PTR(IXHV *, tmp);
      |           ^~~~
make: *** [Makefile:342: Indexed.o] Error 1
  MHX/Tie-Hash-Indexed-0.08.tar.gz
  /usr/bin/make -- NOT OK

And here I reach the limits of my C foo. @iabyn, can you take a look? Thanks.

Leont commented 2 months ago

There's a $ missing in the both changed lines, self should be $self