[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]

Bytecode player fails on @_ slice



(note: I attempted to send this report via perlbug but it never made
it to the p5p list)

The bytecode compiler can compile the following DBI program:

use DBI;
print "ok\n";
__END__

...but attempting to run it results in the error message 'Modification
of a read-only value attempted at t.plc line 2.'

I have noticed that the bytecode runner failed while executing
bytecodes that were emitted for line 324 in DBI.pm:


sub connect_cached {
	# XXX we expect Apache::DBI users to still call connect()
    return shift->connect(@_[0..4], 'connect_cached');
}

...and I was able to reproduce the problem with this program:

sub connect_cached { @_[0..4] }
print "ok\n"; # t.pl line 2
__END__


Making Bytecode(t.plc) for t.pl!
perl -I/home/jll/perl/dev/lib/5.00563/i586-linux -I/home/jll/perl/dev/lib/5.00563 -I/home/jll/perl/dev/lib/site_perl/5.00563/i586-linux -I/home/jll/perl/dev/lib/site_perl -I. -MB::Stash -c  t.pl
perl -I/home/jll/perl/dev/lib/5.00563/i586-linux -I/home/jll/perl/dev/lib/5.00563 -I/home/jll/perl/dev/lib/site_perl/5.00563/i586-linux -I/home/jll/perl/dev/lib/site_perl -I. -MO=Bytecode,-umain,-uattributes,-uDB t.pl
t.pl syntax OK

[jll@enterprise /tmp]$ perl t.plc
Modification of a read-only value attempted at t.plc line 2.

[jll@enterprise /tmp]$ perl -V
Summary of my perl5 (revision 5.0 version 5 subversion 63) configuration:
  Platform:
    osname=linux, osvers=2.2.5-15, archname=i586-linux
    uname='linux enterprise.newedgeconcept 2.2.5-15 #1 mon apr 19 22:21:09 edt 1999 i586 unknown '
    config_args='-d'
    hint=previous, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
    use64bits=undef usemultiplicity=undef
  Compiler:
    cc='cc', optimize='-O2', gccversion=2.95 19990728 (release)
    cppflags='-Dbool=char -DHAS_BOOL -fno-strict-aliasing -I/usr/local/include'
    ccflags ='-Dbool=char -DHAS_BOOL -fno-strict-aliasing -I/usr/local/include'
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lposix -lcrypt
    libc=/lib/libc-2.1.1.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Compile-time options:
  Built under linux
  Compiled at Dec 26 1999 22:11:57
  @INC:
    /home/jll/perl/dev/lib/5.00563/i586-linux
    /home/jll/perl/dev/lib/5.00563
    /home/jll/perl/dev/lib/site_perl/5.00563/i586-linux
    /home/jll/perl/dev/lib/site_perl
    .
[jll@enterprise /tmp]$ 


-- 

 V
VLR		Jean-Louis Leroy
 F		http://users.skynet.be/jll




[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]