Grokbase
x

Kevin Wolf (perlbug-fol...@perl.org)

Profile | Posts (3472)

User Information

Display Name:Kevin Wolf
Partial Email Address:perlbug-fol...@perl.org
Posts:
3472 total
3472 in Perl 5 Porters

5 Most Recent

All Posts
1) Kevin Wolf [perl #72982] B::Deparse does not deparse PACKAGE NAME VERSION syntax
| +1 vote
# New Ticket Created by Frank Wiegand # Please include the string: [perl #72982] # in the subject...
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
# New Ticket Created by  Frank Wiegand 
# Please include the string:  [perl #72982]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=72982 >


This is a bug report for perl from [email protected: frank.wi...@gmail.com],
generated with the help of perlbug 1.39 running under perl 5.11.5.


-----------------------------------------------------------------

B::Deparse does not deparse the new PACKAGE NAME VERSION syntax:

  % perl-5.11.5 -wE 'package main 2; say $::VERSION'
  2
  
  % perl-5.11.5 -MO=Deparse -wE 'package main 2; say $::VERSION'
  BEGIN { $^W = 1; }
  BEGIN {
      $^H{'feature_unicode'} = q(1);
      $^H{'feature_say'} = q(1);
      $^H{'feature_state'} = q(1);
      $^H{'feature_switch'} = q(1);
  }
  say $VERSION;
  -e syntax OK

% perl-5.11.5 -MO=Deparse -wE 'package main 2; say $::VERSION' | perl-5.11.5 -
  -e syntax OK
  Use of uninitialized value $VERSION in say at - line 8.


Thanks, Frank

-----------------------------------------------------------------
---
Flags:
    category=core
    severity=low
---
Site configuration information for perl 5.11.5:

Configured by fw at Sun Feb 21 11:31:15 CET 2010.

Summary of my perl5 (revision 5 version 11 subversion 5) configuration:
   
  Platform:
    osname=linux, osvers=2.6.32-trunk-amd64, archname=x86_64-linux
uname='linux hal2 2.6.32-trunk-amd64 #1 smp sun jan 10 22:40:40 utc 2010 x86_64 gnulinux '
config_args='-de -Dusedevel -DDEBUGGING=both -Doptimize=-g -Dcc=ccache gcc -Dld=gcc -Dprefix=/opt/perl/perl-5.11.5/ -Dmad'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
cc='ccache gcc', ccflags ='-DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-g',
cppflags='-DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.4.3 20100108 (prerelease)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.10.2.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.10.2'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -g -L/usr/local/lib -fstack-protector'

Locally applied patches:
    

---
@INC for perl 5.11.5:
    /opt/perl/perl-5.11.5/lib/site_perl/5.11.5/x86_64-linux
    /opt/perl/perl-5.11.5/lib/site_perl/5.11.5
    /opt/perl/perl-5.11.5/lib/5.11.5/x86_64-linux
    /opt/perl/perl-5.11.5/lib/5.11.5
    .

---
Environment for perl 5.11.5:
    HOME=/home/fw
    LANG=de_DE.UTF-8
    LANGUAGE=
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
PATH=/sbin:/usr/sbin:/home/fw/bin:/home/fw/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
    PERL_AUTOINSTALL=--defaultdeps
    PERL_BADLANG (unset)
    PERL_EXTUTILS_AUTOINSTALL=--defaultdeps
    PERL_MM_USE_DEFAULT=1
    SHELL=/bin/zsh
2) Kevin Wolf [perl #72942] Can't perform unicode operations in Safe compartment
| +1 vote
# New Ticket Created by Tim Bunce # Please include the string: [perl #72942] # in the subject line...
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
# New Ticket Created by  Tim Bunce 
# Please include the string:  [perl #72942]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=72942 >


This is a bug report for perl from [email protected: Tim...@pobox.com]
generated with the help of perlbug 1.39 running under perl 5.10.1.


-----------------------------------------------------------------
[Please describe your issue here]

Basic operations on unicode strings don't work inside a Safe compartment:

perl -MSafe -MOpcode=full_opset -e '$a=Safe->new; $a->permit(full_opset()); $a->reval(q{ pack("U",0xC4) =~ /\\xE4/i; 1 }) or die $@ '
Undefined subroutine Safe::Root0::utf8::SWASHNEW called at (eval 5) line 1

Recent (unrelated) changes to Safe have exposed this problem in PostgreSQL
PL/Perl (a high-profile user of Safe). See the pgsql-bugs message
http://archives.postgresql.org/pgsql-bugs/2010-02/msg00163.php
and the following thread.

The thread includes an outline of what I've learnt from my investigation into
the issue.

I developed a patch to Safe that works around the issue by only sharing
utf8::SWASHNEW *iff* utf8 is loaded (unconditional sharing doesn't work,
see thread).

On reflection though, I think it would be better for Safe to simply *always*
require utf8 (and ensure utf8_heavy.pl is run) so it can always share
utf8::SWASHNEW. That's not only cleaner because it hides the implementation
details of perl unicode, but it also fixes the PostgreSQL problem.

I'll followup this post with a patch that does that.

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=library
    severity=high
---
Site configuration information for perl 5.10.1:

Configured by timbo at Fri Feb  5 17:36:03 GMT 2010.

Summary of my perl5 (revision 5 version 10 subversion 1) configuration:
  Commit id: 5348debf9fd57fc15c26529386769684fab96e57
  Platform:
    osname=darwin, osvers=10.2.0, archname=darwin-thread-multi-2level
uname='darwin timac.local 10.2.0 darwin kernel version 10.2.0: tue nov 3 10:37:10 pst 2009; root:xnu-1486.2.11~1release_i386 i386 '
config_args='-des -Doptimize=-g -DEBUGGING=both -Accflags=-DDEBUG_LEAKING_SCALARS -Dusethreads -Dusemultiplicity -Duseshrplib -Dusedevel -Uversiononly -Dprefix=/Users/timbo/pg/perl5101'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
cc='cc', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp -DDEBUG_LEAKING_SCALARS -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include',
    optimize='-g',
cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -DDEBUG_LEAKING_SCALARS -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include'
    ccversion='', gccversion='4.2.1 (Apple Inc. build 5646)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib -L/opt/local/lib'
    libpth=/usr/local/lib /opt/local/lib /usr/lib
    libs=-lgdbm -ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector'

Locally applied patches:
    

---
@INC for perl 5.10.1:
    /Users/timbo/pg/perl5101/lib/5.10.1/darwin-thread-multi-2level
    /Users/timbo/pg/perl5101/lib/5.10.1
    /Users/timbo/pg/perl5101/lib/site_perl/5.10.1/darwin-thread-multi-2level
    /Users/timbo/pg/perl5101/lib/site_perl/5.10.1
    .

---
Environment for perl 5.10.1:
DYLD_LIBRARY_PATH=/usr/local/jogl-2.0-macosx-universal/lib::/opt/local/lib/mysql5/mysql:/Users/timbo/perl6/parrot/blib/lib
    HOME=/Users/timbo
    LANG=en_IE.UTF-8
    LANGUAGE (unset)
    LC_ALL=en_IE.UTF-8
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
PATH=/usr/local/pgsql/bin:/Users/timbo/pg/perl5101/bin:/Users/timbo/pg/perl5100/bin:/Users/timbo/pg/perl598/bin:/Users/timbo/pg/perl5088/bin:/usr/local/bin:/opt/local/bin:/usr/bin:/bin:/opt/local/sbin:/usr/sbin:/sbin:/Users/timbo/bin
    PERLCRITIC=/Users/timbo/.setdev/perlcriticrc
    PERLTIDY=/Users/timbo/.setdev/perltidyrc
    PERL_BADLANG (unset)
    SHELL=/bin/bash
3) Kevin Wolf [perl #72670] "Deprecated from core" module warnings are intensely painful for downstream vendors
| +1 vote
Those both sound like reasonably plausible solutions. I'm resolving this with a patch to...
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
On Sat Feb 13 11:02:05 2010, nicholas wrote:
> On Tue, Feb 09, 2010 at 08:06:18PM -0800, Jesse wrote:
> > # New Ticket Created by  Jesse
> > # Please include the string:  [perl #72670]
> > # in the subject line of all future correspondence about this issue.
> > # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=72670 >
>
> One solution is for a vendor to configure their perl with
>
> -Dusevendorprefix -Dvendorprefix=...
>
> where the path in ... is under the control of their package manager
> (so in
> /usr), but differs from the core's install location. If they then
> offer a
> package for Switch that installs to "vendor" rather than "site" (or
> "perl")
> then the warning *will not happen* when the user installs that
> package:
>
> $ /Users/nick/Sandpit/snap5.9.x-v5.11.4-72-gb9ad13a/bin/perl5.11.4 -w
> -MSwitch -e0
> Switch will be removed from the Perl core distribution in the next
> major release. Please install it from CPAN. It is being used at -e,
> line 0.
> $ tar xfz /Volumes/Stuff/Mirrors/cpan/authors/id/R/RG/RGARCIA/Switch-
> 2.16.tar.gz
> $
> $ cd Switch-2.16/
> $ /Users/nick/Sandpit/snap5.9.x-v5.11.4-72-gb9ad13a/bin/perl5.11.4
> Makefile.PL INSTALLDIRS=vendor
> Writing Makefile for Switch
> $ make all test install
> cp Switch.pm blib/lib/Switch.pm
> Manifying blib/man3/Switch.3
> PERL_DL_NONLAZY=1 /Users/nick/Sandpit/snap5.9.x-v5.11.4-72-
> gb9ad13a/bin/perl5.11.4 "-MExtUtils::Command::MM" "-e"
> "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
> t/given.t ... ok
> t/nested.t .. ok
> t/switch.t .. ok
> All tests successful.
> Files=3, Tests=590, 2 wallclock secs ( 0.19 usr 0.02 sys + 1.39
> cusr  0.03 csys =  1.63 CPU)
> Result: PASS
> Installing
> /Users/nick/Sandpit/vendor/lib/perl5/vendor_perl/5.11.4/Switch.pm
> Installing /Users/nick/Sandpit/vendor/man/man3/Switch.3
> Appending installation info to /Users/nick/Sandpit/snap5.9.x-v5.11.4-
> 72-gb9ad13a/lib/perl5/5.11.4/darwin-thread-multi-2level/perllocal.pod
> $ cd ..
> $ /Users/nick/Sandpit/snap5.9.x-v5.11.4-72-gb9ad13a/bin/perl5.11.4 -w
> -MSwitch -e0
> $
>
> The vendor could also patch lib/deprecate.pm in their core perl
> distribution
> to convert the Perl package name to the package name (or command line)
> for
> their packaging system (eg apt or yum), so that the end user
> immediately
> knows what they need to do to remove the warning.
>
> Nicholas Clark

Those both sound like reasonably plausible solutions.

I'm resolving this with a patch to perl5120delta consisting of the following text:

If you ship a packaged version of Perl, either alone or as part of a larger
system, then you should carefully consider the reprecussions of core module
deprecations.  You may want to consider shipping your default build of
Perl with packages for some or all deprecated modules which install into
C<vendor> or C<site> perl library directories. This will inhibit the
deprecation warnings.

Alternatively, you may want to consider patching F<lib/deprecate.pm>
to provide deprecation warnings specific to your packaging system or
distribution of Perl.
4) Kevin Wolf [perl #72934] Documentation of the builtin 'length'.
| +1 vote
# New Ticket Created by Bernhard Schmalhofer # Please include the string: [perl #72934] # in the...
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
# New Ticket Created by  Bernhard Schmalhofer 
# Please include the string:  [perl #72934]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=72934 >


This is a bug report for perl from [email protected: Bernhard.Schmal...@gmx.de]
generated with the help of perlbug 1.39 running under perl 5.10.1.


-----------------------------------------------------------------
[Please describe your issue here]

The documentation of the builtin function states:

    To get the number of bytes that the string would have when encoded 
as UTF-8, use
    "length(Encoding::encode_utf8(EXPR))".

I think that should be:

     To get the number of bytes that the string would have when encoded 
as UTF-8, use
     "length(Encode::encode_utf8(EXPR))".

There is no core module called Encoding.

Regards,
  Bernhard


[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=docs
    severity=medium
---
Site configuration information for perl 5.10.1:

Configured by bernhard at Sat Feb 13 12:32:45 CET 2010.

Summary of my perl5 (revision 5 version 10 subversion 1) configuration:
  
  Platform:
    osname=linux, osvers=2.6.31-19-generic, archname=i686-linux
    uname='linux heist 2.6.31-19-generic #56-ubuntu smp thu jan 28 
01:26:53 utc 2010 i686 gnulinux '
    config_args='-des -Dprefix=/home/bernhard/devel/Perl/5.10.1'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector 
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-fno-strict-aliasing -pipe -fstack-protector 
-I/usr/local/include'
    ccversion='', gccversion='4.4.1', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib /usr/lib64
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.10.1.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.10.1'
  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'

Locally applied patches:
   

---
@INC for perl 5.10.1:
    /home/bernhard/devel/Perl/5.10.1/lib/perl5/5.10.1/i686-linux
    /home/bernhard/devel/Perl/5.10.1/lib/perl5/5.10.1
    /home/bernhard/devel/Perl/5.10.1/lib/perl5/site_perl/5.10.1/i686-linux
    /home/bernhard/devel/Perl/5.10.1/lib/perl5/site_perl/5.10.1
    .

---
Environment for perl 5.10.1:
    HOME=/home/bernhard
    LANG=de_DE.UTF-8
    LANGUAGE=
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    
PATH=/home/bernhard/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    PERL_BADLANG (unset)
    SHELL=/bin/bash
5) Kevin Wolf [perl #72866] Clearing @ISA via it's typeglob breaks in 5.10.1 and 5.11.4
| +1 vote
Thanks. Applied. Resolving.
Perl 5 Porters
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
On Thu Feb 18 02:04:53 2010, tonyc wrote:
> On Thu, Feb 18, 2010 at 10:07:30AM +1100, Tony Cook wrote:
> > Actually, I don't like this patch, or rather the action at a distance
> > introduced in my older patch.
> >
> > I'll make another one tonight.
>
> The attached removes the action at a distance and adds the isa magic
> to the new @ISA.


Thanks. Applied. Resolving.

spacer
Profile | Posts (3472)
Home > People > Kevin Wolf