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

Parse::RecDescent and perl 5.8.0 vs perl 5.8.2 and 5.8.3 #7290

Closed
p5pRT opened this issue May 14, 2004 · 12 comments
Closed

Parse::RecDescent and perl 5.8.0 vs perl 5.8.2 and 5.8.3 #7290

p5pRT opened this issue May 14, 2004 · 12 comments

Comments

@p5pRT
Copy link

p5pRT commented May 14, 2004

Migrated from rt.perl.org#29576 (status was 'rejected')

Searchable as RT29576$

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

From Alexander.Farber@Nokia.com

Hi,

with perl 5.8.0 on RedHat Linux 7.2 and HP-UX 11.11
the attached simple script correctly produces​:

$hash of lists = {
  'KEY2' => [
  'val2',
  'val3'
  ],
  'KEY1' => [
  'val1'
  ]
  };

Same script fails with perl 5.8.2 on RedHat and HP-UX,
and also with perl 5.8.3 with OpenBSD -current
and with perl 5.8.0 with OpenBSD 3.4 -stable​:

$hash of lists = {
  'KEY2' => [
  undef
  ],
  'KEY1' => [
  undef
  ]
  };

The "perl -V" output for the both perl's on Linux is
attached. Please contact me if you have more questions.

Regards
Alex

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

From Alexander.Farber@Nokia.com

  Parse​::RecDescent​: Treating "mmpfile​:" as a rule declaration
  Parse​::RecDescent​: Treating "line(s)" as a one-or-more subrule match
  Parse​::RecDescent​: Treating "/^\Z/" as a /../ pattern terminal
  Parse​::RecDescent​: Treating "line​:" as a rule declaration
  Parse​::RecDescent​: Treating "assignment" as a subrule match
  Parse​::RecDescent​: Treating "| <error" as a new (error) production
  Parse​::RecDescent​: Treating "<error>" as an error marker
  Parse​::RecDescent​: Treating "assignment​:" as a rule declaration
  Parse​::RecDescent​: Treating "keyword" as a subrule match
  Parse​::RecDescent​: Treating "value(s)" as a one-or-more subrule match
  Parse​::RecDescent​: Treating "/\n/" as a /../ pattern terminal
  Parse​::RecDescent​: Treating "{ # add 1 or more values to the hash of lists
  push @​{$​::hol{uc $item{keyword}}}, ref $item{value} ?
  @​{$item{value}} : $item{value}; }" as an action
  Parse​::RecDescent​: Treating "keyword​:" as a rule declaration
  Parse​::RecDescent​: Treating "/key\d+/" as a /../ pattern terminal
  Parse​::RecDescent​: Treating "value​:" as a rule declaration
  Parse​::RecDescent​: Treating "/val\d+/" as a /../ pattern terminal
printing code (20634) to RD_TRACE
| mmpfile |Trying rule​: [mmpfile] |
| mmpfile | |"key1 val1\nkey2 val2 val3\n"
| mmpfile |Trying production​: [line /^\Z/] |
| mmpfile |Trying repeated subrule​: [line] |
| line |Trying rule​: [line] |
| line |Trying production​: [assignment] |
| line |Trying subrule​: [assignment] |
|assignment|Trying rule​: [assignment] |
|assignment|Trying production​: [keyword value |
| |/\n/] |
|assignment|Trying subrule​: [keyword] |
| keyword |Trying rule​: [keyword] |
| keyword |Trying production​: [/key\d+/] |
| keyword |Trying terminal​: [/key\d+/] |
| keyword |>>Matched terminal<< (return value​: |
| |[key1]) |
| keyword | |" val1\nkey2 val2 val3\n"
| keyword |>>Matched production​: [/key\d+/]<< |
| keyword |>>Matched rule<< (return value​: |
| |[key1]) |
| keyword |(consumed​: [key1]) |
|assignment|>>Matched subrule​: [keyword]<< (return|
| |value​: [key1] |
|assignment|Trying repeated subrule​: [value] |
| value |Trying rule​: [value] |
| value |Trying production​: [/val\d+/] |
| value |Trying terminal​: [/val\d+/] |
| value |>>Matched terminal<< (return value​: |
| |[val1]) |
| value | |"\nkey2 val2 val3\n"
| value |>>Matched production​: [/val\d+/]<< |
| value |>>Matched rule<< (return value​: |
| |[val1]) |
| value |(consumed​: [ val1]) |
| value |Trying rule​: [value] |
| value |Trying production​: [/val\d+/] |
| value |Trying terminal​: [/val\d+/] |
| value |<<Didn't match terminal>> |
| value |<<Didn't match rule>> |
|assignment|>>Matched repeated subrule​: [value]<< |
| |(1 times) |
|assignment|Trying terminal​: [/\n/] |
|assignment|>>Matched terminal<< (return value​: [ |
| |]) |
|assignment| |"key2 val2 val3\n"
|assignment|Trying action |
|assignment|>>Matched action<< (return value​: [1])|
|assignment|>>Matched production​: [keyword value |
| |/\n/]<< |
|assignment|>>Matched rule<< (return value​: [1]) |
|assignment|(consumed​: [key1 val1 ]) |
| line |>>Matched subrule​: [assignment]<< |
| |(return value​: [1] |
| line |>>Matched production​: [assignment]<< |
| line |>>Matched rule<< (return value​: [1]) |
| line |(consumed​: [key1 val1 ]) |
| line |Trying rule​: [line] |
| line |Trying production​: [assignment] |
| line |Trying subrule​: [assignment] |
|assignment|Trying rule​: [assignment] |
|assignment|Trying production​: [keyword value |
| |/\n/] |
|assignment|Trying subrule​: [keyword] |
| keyword |Trying rule​: [keyword] |
| keyword |Trying production​: [/key\d+/] |
| keyword |Trying terminal​: [/key\d+/] |
| keyword |>>Matched terminal<< (return value​: |
| |[key2]) |
| keyword | |" val2 val3\n"
| keyword |>>Matched production​: [/key\d+/]<< |
| keyword |>>Matched rule<< (return value​: |
| |[key2]) |
| keyword |(consumed​: [key2]) |
|assignment|>>Matched subrule​: [keyword]<< (return|
| |value​: [key2] |
|assignment|Trying repeated subrule​: [value] |
| value |Trying rule​: [value] |
| value |Trying production​: [/val\d+/] |
| value |Trying terminal​: [/val\d+/] |
| value |>>Matched terminal<< (return value​: |
| |[val2]) |
| value | |" val3\n"
| value |>>Matched production​: [/val\d+/]<< |
| value |>>Matched rule<< (return value​: |
| |[val2]) |
| value |(consumed​: [ val2]) |
| value |Trying rule​: [value] |
| value |Trying production​: [/val\d+/] |
| value |Trying terminal​: [/val\d+/] |
| value |>>Matched terminal<< (return value​: |
| |[val3]) |
| value | |"\n"
| value |>>Matched production​: [/val\d+/]<< |
| value |>>Matched rule<< (return value​: |
| |[val3]) |
| value |(consumed​: [ val3]) |
| value |Trying rule​: [value] |
| value |Trying production​: [/val\d+/] |
| value |Trying terminal​: [/val\d+/] |
| value |<<Didn't match terminal>> |
| value |<<Didn't match rule>> |
|assignment|>>Matched repeated subrule​: [value]<< |
| |(2 times) |
|assignment|Trying terminal​: [/\n/] |
|assignment|>>Matched terminal<< (return value​: [ |
| |]) |
|assignment|Trying action |
|assignment|>>Matched action<< (return value​: [2])|
|assignment|>>Matched production​: [keyword value |
| |/\n/]<< |
|assignment|>>Matched rule<< (return value​: [2]) |
|assignment|(consumed​: []) |
| line |>>Matched subrule​: [assignment]<< |
| |(return value​: [2] |
| line |>>Matched production​: [assignment]<< |
| line |>>Matched rule<< (return value​: [2]) |
| line |(consumed​: []) |
| line |Trying rule​: [line] |
| line |Trying production​: [assignment] |
| line |Trying subrule​: [assignment] |
|assignment|Trying rule​: [assignment] |
|assignment|Trying production​: [keyword value |
| |/\n/] |
|assignment|Trying subrule​: [keyword] |
| keyword |Trying rule​: [keyword] |
| keyword |Trying production​: [/key\d+/] |
| keyword |Trying terminal​: [/key\d+/] |
| keyword |<<Didn't match terminal>> |
| keyword |<<Didn't match rule>> |
|assignment|<<Didn't match subrule​: [keyword]>> |
|assignment|<<Didn't match rule>> |
| line |<<Didn't match subrule​: [assignment]>>|
| line |Trying production​: [<error...>] |
| line |Trying directive​: [<error...>] |
| line |<<Didn't match directive>> |
| line |<<Didn't match rule>> |
| mmpfile |>>Matched repeated subrule​: [line]<< |
| |(2 times) |
| mmpfile |Trying terminal​: [/^\Z/] |
| mmpfile |>>Matched terminal<< (return value​: |
| |[]) |
| mmpfile |>>Matched production​: [line /^\Z/]<< |
| mmpfile |>>Matched rule<< (return value​: []) |
| mmpfile |(consumed​: []) |
$hash of lists = {
  'KEY2' => [
  'val2',
  'val3'
  ],
  'KEY1' => [
  'val1'
  ]
  };

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

From Alexander.Farber@Nokia.com

  Parse​::RecDescent​: Treating "mmpfile​:" as a rule declaration
  Parse​::RecDescent​: Treating "line(s)" as a one-or-more subrule match
  Parse​::RecDescent​: Treating "/^\Z/" as a /../ pattern terminal
  Parse​::RecDescent​: Treating "line​:" as a rule declaration
  Parse​::RecDescent​: Treating "assignment" as a subrule match
  Parse​::RecDescent​: Treating "| <error" as a new (error) production
  Parse​::RecDescent​: Treating "<error>" as an error marker
  Parse​::RecDescent​: Treating "assignment​:" as a rule declaration
  Parse​::RecDescent​: Treating "keyword" as a subrule match
  Parse​::RecDescent​: Treating "value(s)" as a one-or-more subrule match
  Parse​::RecDescent​: Treating "/\n/" as a /../ pattern terminal
  Parse​::RecDescent​: Treating "{ # add 1 or more values to the hash of lists
  push @​{$​::hol{uc $item{keyword}}}, ref $item{value} ?
  @​{$item{value}} : $item{value}; }" as an action
  Parse​::RecDescent​: Treating "keyword​:" as a rule declaration
  Parse​::RecDescent​: Treating "/key\d+/" as a /../ pattern terminal
  Parse​::RecDescent​: Treating "value​:" as a rule declaration
  Parse​::RecDescent​: Treating "/val\d+/" as a /../ pattern terminal
printing code (22120) to RD_TRACE
1| mmpfile |Trying rule​: [mmpfile] |
1| mmpfile | |"key1 val1\nkey2 val2
  | | |val3\n"
1| mmpfile |Trying production​: [line /^\Z/] |
1| mmpfile |Trying repeated subrule​: [line] |
2| line |Trying rule​: [line] |
2| line |Trying production​: [assignment] |
2| line |Trying subrule​: [assignment] |
3|assignment|Trying rule​: [assignment] |
3|assignment|Trying production​: [keyword value |
  | |/\n/] |
3|assignment|Trying subrule​: [keyword] |
4| keyword |Trying rule​: [keyword] |
4| keyword |Trying production​: [/key\d+/] |
4| keyword |Trying terminal​: [/key\d+/] |
4| keyword |>>Matched terminal<< (return value​: |
  | |[key1]) |
4| keyword | |" val1\nkey2 val2 val3\n"
4| keyword |>>Matched production​: [/key\d+/]<< |
4| keyword |>>Matched rule<< (return value​: |
  | |[key1]) |
4| keyword |(consumed​: [key1]) |
3|assignment|>>Matched subrule​: [keyword]<< (return|
  | |value​: [key1] |
3|assignment|Trying repeated subrule​: [value] |
4| value |Trying rule​: [value] |
4| value |Trying production​: [/val\d+/] |
4| value |Trying terminal​: [/val\d+/] |
4| value |>>Matched terminal<< (return value​: |
  | |[val1]) |
4| value | |"\nkey2 val2 val3\n"
4| value |>>Matched production​: [/val\d+/]<< |
4| value |>>Matched rule<< (return value​: |
  | |[val1]) |
4| value |(consumed​: [ val1]) |
4| value |Trying rule​: [value] |
4| value |Trying production​: [/val\d+/] |
4| value |Trying terminal​: [/val\d+/] |
4| value |<<Didn't match terminal>> |
4| value |<<Didn't match rule>> |
3|assignment|>>Matched repeated subrule​: [value]<< |
  | |(1 times) |
3|assignment|Trying terminal​: [/\n/] |
3|assignment|>>Matched terminal<< (return value​: [ |
  | |]) |
3|assignment| |"key2 val2 val3\n"
3|assignment|Trying action |
3|assignment|>>Matched action<< (return value​: [1])|
3|assignment|>>Matched production​: [keyword value |
  | |/\n/]<< |
3|assignment|>>Matched rule<< (return value​: [1]) |
3|assignment|(consumed​: [key1 val1 ]) |
2| line |>>Matched subrule​: [assignment]<< |
  | |(return value​: [1] |
2| line |>>Matched production​: [assignment]<< |
2| line |>>Matched rule<< (return value​: [1]) |
2| line |(consumed​: [key1 val1 ]) |
2| line |Trying rule​: [line] |
2| line |Trying production​: [assignment] |
2| line |Trying subrule​: [assignment] |
3|assignment|Trying rule​: [assignment] |
3|assignment|Trying production​: [keyword value |
  | |/\n/] |
3|assignment|Trying subrule​: [keyword] |
4| keyword |Trying rule​: [keyword] |
4| keyword |Trying production​: [/key\d+/] |
4| keyword |Trying terminal​: [/key\d+/] |
4| keyword |>>Matched terminal<< (return value​: |
  | |[key2]) |
4| keyword | |" val2 val3\n"
4| keyword |>>Matched production​: [/key\d+/]<< |
4| keyword |>>Matched rule<< (return value​: |
  | |[key2]) |
4| keyword |(consumed​: [key2]) |
3|assignment|>>Matched subrule​: [keyword]<< (return|
  | |value​: [key2] |
3|assignment|Trying repeated subrule​: [value] |
4| value |Trying rule​: [value] |
4| value |Trying production​: [/val\d+/] |
4| value |Trying terminal​: [/val\d+/] |
4| value |>>Matched terminal<< (return value​: |
  | |[val2]) |
4| value | |" val3\n"
4| value |>>Matched production​: [/val\d+/]<< |
4| value |>>Matched rule<< (return value​: |
  | |[val2]) |
4| value |(consumed​: [ val2]) |
4| value |Trying rule​: [value] |
4| value |Trying production​: [/val\d+/] |
4| value |Trying terminal​: [/val\d+/] |
4| value |>>Matched terminal<< (return value​: |
  | |[val3]) |
4| value | |"\n"
4| value |>>Matched production​: [/val\d+/]<< |
4| value |>>Matched rule<< (return value​: |
  | |[val3]) |
4| value |(consumed​: [ val3]) |
4| value |Trying rule​: [value] |
4| value |Trying production​: [/val\d+/] |
4| value |Trying terminal​: [/val\d+/] |
4| value |<<Didn't match terminal>> |
4| value |<<Didn't match rule>> |
3|assignment|>>Matched repeated subrule​: [value]<< |
  | |(2 times) |
3|assignment|Trying terminal​: [/\n/] |
3|assignment|>>Matched terminal<< (return value​: [ |
  | |]) |
3|assignment|Trying action |
3|assignment|>>Matched action<< (return value​: [1])|
3|assignment|>>Matched production​: [keyword value |
  | |/\n/]<< |
3|assignment|>>Matched rule<< (return value​: [1]) |
3|assignment|(consumed​: []) |
2| line |>>Matched subrule​: [assignment]<< |
  | |(return value​: [1] |
2| line |>>Matched production​: [assignment]<< |
2| line |>>Matched rule<< (return value​: [1]) |
2| line |(consumed​: []) |
2| line |Trying rule​: [line] |
2| line |Trying production​: [assignment] |
2| line |Trying subrule​: [assignment] |
3|assignment|Trying rule​: [assignment] |
3|assignment|Trying production​: [keyword value |
  | |/\n/] |
3|assignment|Trying subrule​: [keyword] |
4| keyword |Trying rule​: [keyword] |
4| keyword |Trying production​: [/key\d+/] |
4| keyword |Trying terminal​: [/key\d+/] |
4| keyword |<<Didn't match terminal>> |
4| keyword |<<Didn't match rule>> |
3|assignment|<<Didn't match subrule​: [keyword]>> |
3|assignment|<<Didn't match rule>> |
2| line |<<Didn't match subrule​: [assignment]>>|
2| line |Trying production​: [<error...>] |
2| line |Trying directive​: [<error...>] |
2| line |<<Didn't match directive>> |
2| line |<<Didn't match rule>> |
1| mmpfile |>>Matched repeated subrule​: [line]<< |
  | |(2 times) |
1| mmpfile |Trying terminal​: [/^\Z/] |
1| mmpfile |>>Matched terminal<< (return value​: |
  | |[]) |
1| mmpfile |>>Matched production​: [line /^\Z/]<< |
1| mmpfile |>>Matched rule<< (return value​: []) |
1| mmpfile |(consumed​: []) |
$hash of lists = {
  'KEY2' => [
  undef
  ],
  'KEY1' => [
  undef
  ]
  };

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

From Alexander.Farber@Nokia.com

Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration​:
  Platform​:
  osname=linux, osvers=2.4.20-20.7, archname=i686-linux-thread-multi
  uname='linux conan.il.thewrittenword.com 2.4.20-20.7 #1 mon aug 18 14​:56​:30 edt 2003 i686 unknown '
  config_args='-Dcc=gcc -Dprefix=/nokia/apps/tww/@​sys/perl580 -Dlibpth=/lib /usr/lib -Ulocincpth= -Uloclibpth= -Dsitearch=/nokia/apps/tww/@​sys/perl580p/lib/5.8.0/i686-linux-thread-multi -Dsitebin=/nokia/apps/tww/@​sys/perl580p/bin -Dsitelib=/nokia/apps/tww/@​sys/perl580p/lib/5.8.0 -Dsiteprefix=/nokia/apps/tww/@​sys/perl580p -Dvendorarch=/nokia/apps/tww/@​sys/perl580p/vendor/lib/5.8.0/i686-linux-thread-multi -Dvendorbin=/nokia/apps/tww/@​sys/perl580p/vendor/bin -Dvendorlib=/nokia/apps/tww/@​sys/perl580p/vendor/lib/5.8.0 -Dvendorprefix=/nokia/apps/tww/@​sys/perl580p/vendor -Dccflags=-fno-strict-aliasing -DDEBUGGING -Doptimize=-O2 -Dd_dosuid=define -Dlibs=-lnsl -ldl -lm -lc -lcrypt -lutil -lpthread -Di_db=undef -Dcf_email=support@​thewrittenword.com -Dcf_by=The Written Word, Inc. -Dpager=/bin/more -Dinstallusrbinperl=undef -Duseshrplib=true -Duseithreads=define -Dthreads=define -des'
  hint=recommended, useposix=true, d_sigaction=define
  usethreads=define use5005threads=undef 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='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
  optimize='-O2',
  cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -DDEBUGGING -I/usr/include/gdbm'
  ccversion='', gccversion='3.3.1 (TWW)', 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='gcc', ldflags =''
  libpth=/lib /usr/lib
  libs=-lnsl -ldl -lm -lc -lcrypt -lutil -lpthread
  perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil -lpthread
  libc=/lib/libc-2.2.4.so, so=so, useshrplib=true, libperl=libperl.so
  gnulibc_version='2.2.4'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic -Wl,-rpath,/nokia/apps/tww/@​sys/perl580/lib/5.8.0/i686-linux-thread-multi/CORE'
  cccdlflags='-fpic', lddlflags='-shared'

Characteristics of this binary (from libperl)​:
  Compile-time options​: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
  Built under linux
  Compiled at Sep 1 2003 04​:16​:53
  @​INC​:
  /nokia/apps/tww/@​sys/perl580p/lib/5.8.0/i686-linux-thread-multi
  /nokia/apps/tww/@​sys/perl580p/lib/5.8.0
  /nokia/apps/tww/@​sys/perl580p/lib
  /nokia/apps/tww/@​sys/perl580/lib/5.8.0/i686-linux-thread-multi
  /nokia/apps/tww/@​sys/perl580/lib/5.8.0
  /nokia/apps/tww/@​sys/perl580p/vendor/lib/5.8.0/i686-linux-thread-multi
  /nokia/apps/tww/@​sys/perl580p/vendor/lib/5.8.0
  /nokia/apps/tww/@​sys/perl580p/vendor/lib
  .

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

From Alexander.Farber@Nokia.com

Summary of my perl5 (revision 5.0 version 8 subversion 2) configuration​:
  Platform​:
  osname=linux, osvers=2.4.20-20.7smp, archname=i686-linux-thread-multi
  uname='linux conan.il.thewrittenword.com 2.4.20-20.7smp #1 smp mon aug 18 14​:46​:14 edt 2003 i686 unknown '
  config_args='-Dcc=gcc -Dprefix=/nokia/apps/tww/@​sys/perl582 -Dlibpth=/lib /usr/lib -Ulocincpth= -Uloclibpth= -Dsitearch=/nokia/apps/tww/@​sys/perl582p/lib/5.8.2/i686-linux-thread-multi -Dsitebin=/nokia/apps/tww/@​sys/perl582p/bin -Dsiteetc=/nokia/apps/tww/@​sys/perl582/etc/perl582 -Dsitelib=/nokia/apps/tww/@​sys/perl582p/lib/5.8.2 -Dsiteprefix=/nokia/apps/tww/@​sys/perl582p -Dvendorarch=/nokia/apps/tww/@​sys/perl582p/vendor/lib/5.8.2/i686-linux-thread-multi -Dvendorbin=/nokia/apps/tww/@​sys/perl582p/vendor/bin -Dvendorlib=/nokia/apps/tww/@​sys/perl582p/vendor/lib/5.8.2 -Dvendorprefix=/nokia/apps/tww/@​sys/perl582p/vendor -Dcpprun=gcc -E -Dcppstdin=gcc -E -Dccflags=-fno-strict-aliasing -DDEBUGGING -Doptimize=-O2 -Dldflags=-L/nokia/apps/tww/@​sys/perl582/lib/support -Wl,-rpath,/nokia/apps/tww/@​sys/perl582/lib/support -Dd_dosuid=define -Dlibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -Di_db=undef -Dcf_email=support@​thewrittenword.com -Dcf_by=The Written Word, Inc. -Dpager=/bin/more -Dinstallusrbinperl=undef -Duseshrplib=true -Duseithreads=define -Dthreads=define -des'
  hint=recommended, useposix=true, d_sigaction=define
  usethreads=define use5005threads=undef 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='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
  optimize='-O2',
  cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -DDEBUGGING'
  ccversion='', gccversion='3.3.2 (TWW)', 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='gcc', ldflags ='-L/nokia/apps/tww/@​sys/perl582/lib/support -Wl,-rpath,/nokia/apps/tww/@​sys/perl582/lib/support'
  libpth=/lib /usr/lib
  libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
  perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
  libc=/lib/libc-2.2.4.so, so=so, useshrplib=true, libperl=libperl.so
  gnulibc_version='2.2.4'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic -Wl,-rpath,/nokia/apps/tww/@​sys/perl582/lib/5.8.2/i686-linux-thread-multi/CORE'
  cccdlflags='-fpic', lddlflags='-shared -L/nokia/apps/tww/@​sys/perl582/lib/support'

Characteristics of this binary (from libperl)​:
  Compile-time options​: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
  Built under linux
  Compiled at Mar 8 2004 12​:12​:31
  @​INC​:
  /nokia/apps/tww/@​sys/perl582/lib/5.8.2/i686-linux-thread-multi
  /nokia/apps/tww/@​sys/perl582/lib/5.8.2
  /nokia/apps/tww/@​sys/perl582p/lib/5.8.2/i686-linux-thread-multi
  /nokia/apps/tww/@​sys/perl582p/lib/5.8.2
  /nokia/apps/tww/@​sys/perl582p/lib
  /nokia/apps/tww/@​sys/perl582p/vendor/lib/5.8.2/i686-linux-thread-multi
  /nokia/apps/tww/@​sys/perl582p/vendor/lib/5.8.2
  /nokia/apps/tww/@​sys/perl582p/vendor/lib
  .

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

From Alexander.Farber@Nokia.com

Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration​:
  Platform​:
  osname=hpux, osvers=11.11, archname=PA-RISC1.1-thread-multi
  uname='hp-ux hulk b.11.11 u 9000785 2010914556 unlimited-user license '
  config_args='-Dcc=gcc -Dprefix=/nokia/apps/tww/@​sys/perl580 -Dlocincpth= -Dloclibpth= -Dsitearch=/nokia/apps/tww/@​sys/perl580p/lib/5.8.0/PA-RISC1.1-thread-multi -Dsitebin=/nokia/apps/tww/@​sys/perl580p/bin -Dsitelib=/nokia/apps/tww/@​sys/perl580p/lib/5.8.0 -Dsiteprefix=/nokia/apps/tww/@​sys/perl580p -Dvendorarch=/nokia/apps/tww/@​sys/perl580p/vendor/lib/5.8.0/PA-RISC1.1-thread-multi -Dvendorbin=/nokia/apps/tww/@​sys/perl580p/vendor/bin -Dvendorlib=/nokia/apps/tww/@​sys/perl580p/vendor/lib/5.8.0 -Dvendorprefix=/nokia/apps/tww/@​sys/perl580p/vendor -Dcf_email=support@​thewrittenword.com -Dcf_by=The Written Word, Inc. -Dccflags=-march=1.1 -DDEBUGGING -fPIC -Doptimize=-O2 -Dd_dosuid=define -Aprepend​:libswanted=cl $empty -Dpager=/usr/bin/more -Dinstallusrbinperl=undef -Duseshrplib=true -Duseithreads=define -Dthreads=define -des'
  hint=recommended, useposix=true, d_sigaction=define
  usethreads=define use5005threads=undef 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='gcc', ccflags ='-D_POSIX_C_SOURCE=199506L -D_REENTRANT -march=1.1 -DDEBUGGING -fPIC -D_HPUX_SOURCE -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
  optimize='-O2',
  cppflags='-march=1.1 -DDEBUGGING -fPIC -D_HPUX_SOURCE -D_POSIX_C_SOURCE=199506L -D_REENTRANT -march=1.1 -DDEBUGGING -fPIC -D_HPUX_SOURCE -fno-strict-aliasing'
  ccversion='', gccversion='3.2 (TWW)', gccosandvers='hpux11.11'
  intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
  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='/usr/bin/ld', ldflags =''
  libpth=/lib /usr/lib /usr/ccs/lib
  libs=-lcl -lnsl -lnm -lndbm -lmalloc -ldld -lm -lpthread -lc -lndir -lcrypt -lsec
  perllibs=-lcl -lnsl -lnm -lmalloc -ldld -lm -lpthread -lc -lndir -lcrypt -lsec
  libc=/lib/libc.sl, so=sl, useshrplib=true, libperl=libperl.sl
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
  cccdlflags='-fPIC', lddlflags='-b'

Characteristics of this binary (from libperl)​:
  Compile-time options​: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
  Built under hpux
  Compiled at Oct 3 2002 10​:30​:41
  @​INC​:
  /nokia/apps/tww/@​sys/perl580p/lib/5.8.0/PA-RISC1.1-thread-multi
  /nokia/apps/tww/@​sys/perl580p/lib/5.8.0
  /nokia/apps/tww/@​sys/perl580p/lib
  /nokia/apps/tww/@​sys/perl580/lib/5.8.0/PA-RISC1.1-thread-multi
  /nokia/apps/tww/@​sys/perl580/lib/5.8.0
  /nokia/apps/tww/@​sys/perl580p/vendor/lib/5.8.0/PA-RISC1.1-thread-multi
  /nokia/apps/tww/@​sys/perl580p/vendor/lib/5.8.0
  /nokia/apps/tww/@​sys/perl580p/vendor/lib
  .

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

From Alexander.Farber@Nokia.com

Summary of my perl5 (revision 5.0 version 8 subversion 2) configuration​:
  Platform​:
  osname=hpux, osvers=11.11, archname=PA-RISC1.1-thread-multi
  uname='hp-ux hulk b.11.11 u 9000785 2010914556 unlimited-user license '
  config_args='-Dcc=gcc -Dprefix=/nokia/apps/tww/@​sys/perl582 -Dlocincpth= -Dloclibpth= -Dsitearch=/nokia/apps/tww/@​sys/perl582p/lib/5.8.2/PA-RISC1.1-thread-multi -Dsitebin=/nokia/apps/tww/@​sys/perl582p/bin -Dsiteetc=/nokia/apps/tww/@​sys/perl582/etc/perl582 -Dsitelib=/nokia/apps/tww/@​sys/perl582p/lib/5.8.2 -Dsiteprefix=/nokia/apps/tww/@​sys/perl582p -Dvendorarch=/nokia/apps/tww/@​sys/perl582p/vendor/lib/5.8.2/PA-RISC1.1-thread-multi -Dvendorbin=/nokia/apps/tww/@​sys/perl582p/vendor/bin -Dvendorlib=/nokia/apps/tww/@​sys/perl582p/vendor/lib/5.8.2 -Dvendorprefix=/nokia/apps/tww/@​sys/perl582p/vendor -Dcf_email=support@​thewrittenword.com -Dcf_by=The Written Word, Inc. -Dccflags=-march=1.1 -DDEBUGGING -fPIC -Doptimize=-O2 -Dldflags=-L/nokia/apps/tww/@​sys/perl582/lib/support -Wl,+s,+b,/nokia/apps/tww/@​sys/perl582/lib/support -Dd_dosuid=define -Aprepend​:libswanted=cl $empty -Dpager=/usr/bin/more -Dinstallusrbinperl=undef -Duseshrplib=true -Duseithreads=define -Dthreads=define -des'
  hint=recommended, useposix=true, d_sigaction=define
  usethreads=define use5005threads=undef 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='gcc', ccflags ='-D_POSIX_C_SOURCE=199506L -D_REENTRANT -march=1.1 -DDEBUGGING -fPIC -D_HPUX_SOURCE -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
  optimize='-O2',
  cppflags='-march=1.1 -DDEBUGGING -fPIC -D_HPUX_SOURCE -D_POSIX_C_SOURCE=199506L -D_REENTRANT -march=1.1 -DDEBUGGING -fPIC -D_HPUX_SOURCE -fno-strict-aliasing'
  ccversion='', gccversion='3.3.2 (TWW)', gccosandvers='hpux11.11'
  intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
  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='/usr/bin/ld', ldflags ='-L/nokia/apps/tww/@​sys/perl582/lib/support -Wl,+s,+b,/nokia/apps/tww/@​sys/perl582/lib/support'
  libpth=/lib /usr/lib /usr/ccs/lib
  libs=-lcl -lnsl -lnm -lndbm -lmalloc -ldld -lm -lcrypt -lsec -lpthread -lc
  perllibs=-lcl -lnsl -lnm -lmalloc -ldld -lm -lcrypt -lsec -lpthread -lc
  libc=/lib/libc.sl, so=sl, useshrplib=true, libperl=libperl.sl
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
  cccdlflags='-fPIC', lddlflags='-b -L/nokia/apps/tww/@​sys/perl582/lib/support'

Characteristics of this binary (from libperl)​:
  Compile-time options​: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
  Built under hpux
  Compiled at Mar 8 2004 12​:14​:29
  @​INC​:
  /nokia/apps/tww/@​sys/perl582/lib/5.8.2/PA-RISC1.1-thread-multi
  /nokia/apps/tww/@​sys/perl582/lib/5.8.2
  /nokia/apps/tww/@​sys/perl582p/lib/5.8.2/PA-RISC1.1-thread-multi
  /nokia/apps/tww/@​sys/perl582p/lib/5.8.2
  /nokia/apps/tww/@​sys/perl582p/lib
  /nokia/apps/tww/@​sys/perl582p/vendor/lib/5.8.2/PA-RISC1.1-thread-multi
  /nokia/apps/tww/@​sys/perl582p/vendor/lib/5.8.2
  /nokia/apps/tww/@​sys/perl582p/vendor/lib
  .

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

From @nwc10

On Fri, May 14, 2004 at 09​:18​:31AM -0000, A. Farber wrote​:

# New Ticket Created by A. Farber
# Please include the string​: [perl #29576]
# in the subject line of all future correspondence about this issue.
# <URL​: http​://rt.perl.org​:80/rt3/Ticket/Display.html?id=29576 >

Hi,

with perl 5.8.0 on RedHat Linux 7.2 and HP-UX 11.11
the attached simple script correctly produces​:

$hash of lists = {
'KEY2' => [
'val2',
'val3'
],
'KEY1' => [
'val1'
]
};

Same script fails with perl 5.8.2 on RedHat and HP-UX,
and also with perl 5.8.3 with OpenBSD -current
and with perl 5.8.0 with OpenBSD 3.4 -stable​:

$hash of lists = {
'KEY2' => [
undef
],
'KEY1' => [
undef
]
};

The "perl -V" output for the both perl's on Linux is
attached. Please contact me if you have more questions.

Parse​::RecDescent isn't a core perl module, so this isn't the correct place
to report bugs in it. It's possible (but unlikely) that this it happens to
be triggering a bug in core perl, but this is unlikely.

You should check which versions of Parse​::RecDescent are on the two systems,
eg

$ perl -lwe 'require Parse​::RecDescent; print $Parse​::RecDescent​::VERSION'
1.94

I'm aware of a backwards incompatible change introduced in version 1.90 which
might be the cause of your problem. If one systems has an earlier version, and
the other a later than see the section detailing 1.90 in the Changes file.
( http​://search.cpan.org/src/DCONWAY/Parse-RecDescent-1.90/Changes )

Parse​::RecDescent's documentation suggests that bugs should be reported
direct to Damian Conway

Nicholas Clark

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

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

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

From Alexander.Farber@Nokia.com

Nicholas you are right! My problems were caused, by this change in P​::RD​:

- BACKWARDS INCOMPATIBLE CHANGE​: The key of an %item entry for
  a repeated subrule now includes the repetition specifier.
  For example, in​:

  sentence​: subject verb word(s)

  the various matched items will be stored in $item{'subject'},
  $item{'verb'},and $item{'word(s)'} (i.e. *not* in $item{'word'},
  as it would have been in previous versions of the module).

I have been used different version of the Parse​::RecDescent​:

boclu21​:afarber {153} perl5.8.2 -lwe 'require Parse​::RecDescent; print
$Parse​::RecDescent​::VERSION'
1.94
boclu21​:afarber {154} perl5.8.0 -lwe 'require Parse​::RecDescent; print
$Parse​::RecDescent​::VERSION'
1.80

And in my script I was using $item{value}.
After I changed that $item{'value(s)'}, the problem went away.

Sorry and I'm closing (rejecting) this bug ticket.

@p5pRT
Copy link
Author

p5pRT commented May 14, 2004

Alexander.Farber@Nokia.com - Status changed from 'open' to 'rejected'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant