This queue is for tickets about the Devel-LeakTrace-Fast CPAN distribution.

Report information
The Basics

Nobody in particular
SREZIC [...]

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

Subject: Can't compile under 5.12.0 (OP_SETSTATE undeclared)
See subject. Regards, Slaven
On Mon Mar 29 16:35:10 2010, SREZIC wrote:
Show quoted text
> See subject. > > Regards, > Slaven
This issue is not specific to 5.12.0. cpanm (App::cpanminus) 1.5018 on perl 5.016002 built for x86_64-linux-thread-multi Work directory is /home/nmsroot/.cpanm/work/1366825514.25798 You have make /usr/bin/make You have LWP 6.04 You have /bin/tar: tar (GNU tar) 1.15.1 You have /usr/bin/unzip Searching Devel::LeakTrace::Fast on cpanmetadb ... -> FAIL Finding Devel::LeakTrace::Fast on cpanmetadb failed. Searching Devel::LeakTrace::Fast on ... --> Working on Devel::LeakTrace::Fast Fetching -> OK Unpacking Devel-LeakTrace-Fast-0.11.tar.gz Entering Devel-LeakTrace-Fast-0.11 Checking configure dependencies from META.yml Configuring Devel-LeakTrace-Fast-0.11 Running Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Devel::LeakTrace::Fast Writing MYMETA.yml and MYMETA.json -> OK Checking dependencies from MYMETA.json ... Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.63_02) Checking if you have Test::More 0 ... Yes (0.98) Building and testing Devel-LeakTrace-Fast-0.11 cp lib/Devel/LeakTrace/ blib/lib/Devel/LeakTrace/ cc -c -I. -Isupport -Wall -O2 -DVERSION=\"0.11\" -DXS_VERSION=\"0.11\" -fPIC "-I/opt/perl/lib/5.16.2/x86_64-linux-thread-multi/CORE" buffer.c cc -c -I. -Isupport -Wall -O2 -DVERSION=\"0.11\" -DXS_VERSION=\"0.11\" -fPIC "-I/opt/perl/lib/5.16.2/x86_64-linux-thread-multi/CORE" hash.c cc -c -I. -Isupport -Wall -O2 -DVERSION=\"0.11\" -DXS_VERSION=\"0.11\" -fPIC "-I/opt/perl/lib/5.16.2/x86_64-linux-thread-multi/CORE" list.c cc -c -I. -Isupport -Wall -O2 -DVERSION=\"0.11\" -DXS_VERSION=\"0.11\" -fPIC "-I/opt/perl/lib/5.16.2/x86_64-linux-thread-multi/CORE" tools.c tools.c: In function ‘runops_leakcheck’: tools.c:341: error: ‘OP_SETSTATE’ undeclared (first use in this function) tools.c:341: error: (Each undeclared identifier is reported only once tools.c:341: error: for each function it appears in.) make: *** [tools.o] Error 1
This should be "broken in 0.11", not "fixed in 0.11".
On Mon Mar 29 16:35:10 2010, SREZIC wrote:
Show quoted text
> See subject.
Patch attached. It's quite safe just to ignore OP_SETSTATE even on Perls which have it. It was removed by this commit: commit 5edb5b2abb5db9e134cbde1a4d43fd61fa2b229d Author: Nicholas Clark <> Date: Sat Jan 26 10:46:12 2008 +0000 Eliminate the OP_SETSTATE, which had been disabled by change 4309. p4raw-id: //depot/perl@33072 but had been unused since before 5.6.0: commit 38a230cb455fb1aca316039ba1d4aed58c0c60d5 Author: Gurusamy Sarathy <> Date: Thu Oct 7 22:57:52 1999 +0000 change#3728 was flawed (loop contexts saw the wrong statement info, causing loop control constructs to not find the label); disable OP_SETSTATE entirely and add a fix that is specifically targetted at disabling the OP_LINESEQ optimization in else BLOCK, which was what the original patch was supposed to fix TODO: remove the remainder of the setstate logic if it can't be used anywhere else (it isn't used anywhere now) p4raw-link: @3728 on //depot/perl: 7399586d384137f7ae66bcc82a83b0df7dd429e5 p4raw-id: //depot/perl@4309 Nicholas Clark
Subject: 56079.patch
--- tools.c~ 2007-11-22 20:30:43.000000000 +0100 +++ tools.c 2014-03-19 16:17:04.130811990 +0100 @@ -33,8 +33,7 @@ /* Perl opcodes which trigger a memory scan */ #define interesting_op(o) \ ((o) == OP_NEXTSTATE || \ - (o) == OP_DBSTATE || \ - (o) == OP_SETSTATE) + (o) == OP_DBSTATE) static void nomem( void ) { fprintf( stderr, "Devel::LeakTrace::Fast: Out of memory\n" );

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

Please report any issues with to