List Info

Thread: filetests sometimes do not set _




filetests sometimes do not set _
user name
2007-10-16 09:04:02
# New Ticket Created by  Mark Overmeer 
# Please include the string:  [perl #46463]
# in the subject line of all future correspondence about
this issue. 
# <URL: h
ttp://rt.perl.org/rt3/Ticket/Display.html?id=46463 >



This is a bug report for perl from markovermeer.net,
generated with the help of perlbug 1.36 running under perl
5.8.7.


------------------------------------------------------------
-----
[Please enter your report here]

On the Perl5.10.0 of today (patch 32115), I see filetest
errors which
are probably in bleadperl for quite some time... as the
cpan-testers
show me.

Somewhere in a large program, I do something like this:

 sub ... {
   foreach ...
   {   -w "/etc/passwd";
       warn (-f _ ? "filen" :
"directoryn");
   }
 }

And the result is "directory"!!
After -r w x R W X and t, the password file is reported as
directory.

with -o e z s f d u g k b c l T B M A C, it is reported as
file.

I have tried, but was not successful in reproducing the
error in a
small code example.  But maybe above is already sufficiently
clear
to someone.  Or, maybe someone knows a way to investigate
this further.

  Greetings, MarkOv

[Please do not change anything below this line]
------------------------------------------------------------
-----
---
Flags:
    category=core
    severity=medium
---
This perlbug was built using Perl 5.10.0 - Tue Oct 16
15:34:41 CEST 2007

Summary of my perl5 (revision 5 version 10 subversion 0
patch 32115) configuration:
  Platform:
    osname=linux, osvers=2.6.13-15.16-bigsmp,
archname=i686-linux
    uname='linux earth 2.6.13-15.16-bigsmp #1 smp fri jun 8
15:35:39 utc 2007 i686 i686 i386 gnulinux '
    config_args='-de'
    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
-I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-fno-strict-aliasing -pipe
-I/usr/local/include'
    ccversion='', gccversion='4.0.2 20050901 (prerelease)
(SUSE Linux)', 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 =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.3.5.so, so=so, useshrplib=false,
libperl=libperl.a
    gnulibc_version='2.3.5'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef,
ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2
-L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Compile-time options: PERL_DONT_CREATE_GVSV
PERL_MALLOC_WRAP
                        USE_LARGE_FILES USE_PERLIO
  Locally applied patches:
	DEVEL
  Built under linux
  Compiled at Oct 16 2007 15:36:41
  INC:
    /usr/local/lib/perl5/5.10.0/i686-linux
    /usr/local/lib/perl5/5.10.0
    /usr/local/lib/perl5/site_perl/5.10.0/i686-linux
    /usr/local/lib/perl5/site_perl/5.10.0
    .
---
Environment for perl 5.8.7:
    HOME=/home/markov
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
   
PATH=/home/markov/shared/bin:~/shared/bin:/home/markov/share
d/bin:~/shared/bin:/home/markov/shared/bin:~/shared/bin:/hom
e/markov/shared/bin:/home/markov/bin:/usr/local/bin:/usr/bin
:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin
:/usr/lib/mit/bin:/usr/lib/mit/sbin:./bin:./bin:./bin:./bin
    PERL_BADLANG (unset)
    SHELL=/bin/bash


Re: filetests sometimes do not set _
user name
2007-10-17 03:22:58
* Mark Overmeer (perlbug-followupperl.org) [071016 14:04]:
> # Please include the string:  [perl #46463]
> # <URL: h
ttp://rt.perl.org/rt3/Ticket/Display.html?id=46463 >

> On the Perl5.10.0 of today (patch 32115), I see
filetest errors which
> are probably in bleadperl for quite some time... as the
cpan-testers
> show me.
> 
>  sub ... {
>    foreach ...
>    {   -w "/etc/passwd";
>        warn (-f _ ? "filen" :
"directoryn");
>    }
>  }

Hum... the error report was even more right than I expected
it to be...
After a long bug-hunt, I figured out that it is not '-w'
itself which
is misbehaving (the file test flags), but it is the module
'filetest'.

The following script reports 'directory' twice:

   #!/usr/local/bin/perl5.10.0
   use filetest 'access';

   -d '/etc';
   -w '/etc/passwd';
   warn -f _ ? "filen" :
"directoryn";
   warn -d _ ? "directoryn" :
"filen";

Apparently, -r/-w/-x/-R/-W/-X implemented in filetest to
not
set '_' anymore, where they did so in perl5.8.8
-- 
               MarkOv

------------------------------------------------------------
------------
       Mark Overmeer MSc                               
MARKOV Solutions
       MarkOvermeer.net                          solutionsovermeer.net
http://Mark.Overmeer.net
                  http://solutions.overme
er.net


[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )