Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0_ gives double warning #9989

Open
p5pRT opened this issue Nov 27, 2009 · 4 comments

Comments

@p5pRT
Copy link

commented Nov 27, 2009

Migrated from rt.perl.org#70878 (status was 'open')

Searchable as RT70878$

@p5pRT

This comment has been minimized.

Copy link
Author

commented Nov 27, 2009

From frank.wiegand@gmail.com

This is a bug report for perl from frank.wiegand@​gmail.com,
generated with the help of perlbug 1.39 running under perl 5.10.1.


  % perl -we 0_
  Misplaced _ in number at -e line 1.
  Misplaced _ in number at -e line 1.

Occurs only with 0_, not 1_ or else.

The doubled warning still resides in 5.11.2.

Frank



Flags​:
  category=core
  severity=low


Site configuration information for perl 5.10.1​:

Configured by Debian Project at Sat Nov 7 22​:18​:45 UTC 2009.

Summary of my perl5 (revision 5 version 10 subversion 1) configuration​:
 
  Platform​:
  osname=linux, osvers=2.6.31.5-dsa-amd64, archname=x86_64-linux-gnu-thread-multi
  uname='linux brahms 2.6.31.5-dsa-amd64 #1 smp fri oct 23 12​:25​:24 cest 2009 x86_64 gnulinux '
  config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.10 -Darchlib=/usr/lib/perl/5.10 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.10.1 -Dsitearch=/usr/local/lib/perl/5.10.1 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.10.1 -Dd_dosuid -des'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=define, usemultiplicity=define
  useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
  use64bitint=define, use64bitall=define, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
  optimize='-O2 -g',
  cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
  ccversion='', gccversion='4.3.4', 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='cc', ldflags =' -fstack-protector -L/usr/local/lib'
  libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64
  libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
  perllibs=-ldl -lm -lpthread -lc -lcrypt
  libc=/lib/libc-2.10.1.so, so=so, useshrplib=true, libperl=libperl.so.5.10.1
  gnulibc_version='2.10.1'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
  cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector'

Locally applied patches​:
 


@​INC for perl 5.10.1​:
  /etc/perl
  /usr/local/lib/perl/5.10.1
  /usr/local/share/perl/5.10.1
  /usr/lib/perl5
  /usr/share/perl5
  /usr/lib/perl/5.10
  /usr/share/perl/5.10
  /usr/local/lib/site_perl
  .


Environment for perl 5.10.1​:
  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

@p5pRT

This comment has been minimized.

Copy link
Author

commented Jan 15, 2010

From p5p@spam.wizbit.be

On Fri Nov 27 06​:26​:16 2009, frank.wiegand wrote​:

This is a bug report for perl from frank.wiegand@​gmail.com,
generated with the help of perlbug 1.39 running under perl 5.10.1.

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

% perl -we 0_
Misplaced _ in number at -e line 1.
Misplaced _ in number at -e line 1.

Occurs only with 0_, not 1_ or else.

The doubled warning still resides in 5.11.2.

Frank

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

What is happening in the code​:

a) first it checks if the (octal) number begins with '_'
b) then it checks the next charachters to see if they are valid (not
the case so the parsing ends)
c) then it checks if the last character was '_'.

In this case there is only one character and this produces the warning
(because '_' is not valid at the start of a number nor at the end of a
number).

The double warning also happens in the following cases​:
  print 0x_;
  print 0b_;
  print 5._;

The double warning does not happen for​:
  print 5e_;

The reason for this is that the parsing of the exponent is a bit
different​:

a) it checks if the first character is '_'
b) it checks if the second character is '+' or '-'
c) it checks if the third character is _

This also means that​: print 5e__-3 is parsed as​: 5 - 3 (= 2) and not as
5e-3 (0.005).

The only fix I can currently see is to add another var which contains
the 'real start' of the number...

Best regards,

Bram

@p5pRT

This comment has been minimized.

Copy link
Author

commented Jan 15, 2010

The RT System itself - Status changed from 'new' to 'open'

@p5pRT

This comment has been minimized.

Copy link
Author

commented Jan 17, 2017

From zefram@fysh.org

Fixed in 72c80c7.

-zefram

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.