Skip to content

Commit

Permalink
[inseparable changes from patch from perl5.003_17 to perl5.003_18]
Browse files Browse the repository at this point in the history
 CORE LANGUAGE CHANGES

Subject: Inherited overloading
Date: Sun, 29 Dec 1996 08:12:54 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: gv.c lib/overload.pm perl.h sv.c sv.h t/op/overload.t

    Chip Salzenberg writes:
    > 
    > Patch now, tarchive later:
    
    Below is the fixed overloading patch.
    
    Note that in between AMG_names got const on it (a good thing!), but as
    a corollary I needed to cast away const-ness to actually use it
    (since, say, newSVpv does not have const args).
    
    Enjoy,
    
    p5p-msgid: <199612291312.IAA02134@monk.mps.ohio-state.edu>

Subject: Closures at file scope must be anonymous
From: Chip Salzenberg <chip@atlantic.net>
Files: op.c

Subject: Warn on '{if,while} ($x = X)' where X is glob, readdir, or <FH>
From: Chip Salzenberg <chip@atlantic.net>
Files: op.c pod/perldiag.pod

 DOCUMENTATION

Subject: Re: perldiag.pod entry for "Scalar value @%s{%s} ..."
Date: Tue, 31 Dec 1996 11:50:19 -0500
From: Roderick Schertler <roderick@gate.net>
Files: pod/perldiag.pod
Msg-ID: <2043.852051019@eeyore.ibcinc.com>

    (applied based on p5p patch as commit c885792)

 OTHER CORE CHANGES

Subject: Get rid of 'Leaked scalars'
From: Chip Salzenberg <chip@atlantic.net>
Files: cop.h gv.c op.c

 TESTS

Subject: Expanded locale.t and misc.t
From: Jarkko Hietaniemi <jhi@cc.hut.fi>
Files: t/lib/locale.t t/lib/misc.t

Subject: Expanded my.t
From: Chip Salzenberg <chip@atlantic.net>
Files: t/lib/my.t
  • Loading branch information
Perl 5 Porters authored and Chip Salzenberg committed Dec 31, 1996
1 parent a034a98 commit a600677
Show file tree
Hide file tree
Showing 35 changed files with 954 additions and 279 deletions.
110 changes: 110 additions & 0 deletions Changes
Expand Up @@ -8,6 +8,116 @@ or in the .../src/5/0/unsupported directory for sub-version
releases.)


----------------
Version 5.003_18
----------------

Yet further down the road to 5.004....

CORE LANGUAGE CHANGES

Title: "Inherited overloading"
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Msg-ID: <199612291312.IAA02134@monk.mps.ohio-state.edu>
Date: Sun, 29 Dec 1996 08:12:54 -0500 (EST)
Files: gv.c lib/overload.pm perl.h sv.c sv.h t/op/overload.t

Title: "Hide lexicals from C<use>d or C<require>d module (!)"
From: Chip Salzenberg <chip@atlantic.net>
Files: pp_ctl.c

Title: "Closures at file scope must be anonymous"
From: Chip Salzenberg <chip@atlantic.net>
Files: op.c

Title: "Warn on '{if,while} ($x = X)' where X is glob, readdir, or <FH>"
From: Chip Salzenberg <chip@atlantic.net>
Files: op.c pod/perldiag.pod

Title: "Warn on 'undef $x; $x OP 1' where OP is *=, /=, %=, or **="
From: Chip Salzenberg <chip@atlantic.net>
Files: pp.c

CORE PORTABILITY

Title: "Ultrix setlocale() workaround"
From: Chip Salzenberg <chip@atlantic.net>
Files: hints/ultrix_4.sh util.c

OTHER CORE CHANGES

Title: "Get rid of 'Leaked scalars'"
From: Chip Salzenberg <chip@atlantic.net>
Files: cop.h gv.c op.c

Title: "Don't forget $c in C<(($a,$b,$c)=(1,2))=(3,4,5)>"
From: Chip Salzenberg <chip@atlantic.net>
Files: pp_hot.c

Title: "Fix core dump on perl_construct()/perl_destruct() loop"
From: Chip Salzenberg <chip@atlantic.net>
Files: perl.c

Title: "Add missing syms to global.sym; update magic doc"
From: Chip Salzenberg <chip@atlantic.net>
Files: global.sym pod/perlguts.pod

TESTS

Title: "Expanded locale.t and misc.t"
From: Jarkko Hietaniemi <jhi@cc.hut.fi>
Files: t/lib/locale.t t/lib/misc.t

Title: "Expanded my.t"
From: Chip Salzenberg <chip@atlantic.net>
Files: t/lib/my.t

Title: "test harness for C<use x.xxxx>"
From: Graham Barr <bodg@tiuk.ti.com>
Msg-ID: <32C76882.3F3C7999@tiuk.ti.com>
Date: Mon, 30 Dec 1996 07:00:18 +0000
Files: MANIFEST t/op/use.t

Title: "More tests"
From: Tom Phoenix <rootbeer@teleport.com>
Msg-ID: <Pine.GSO.3.95.961229170736.15213M-100000@solaris.teleport.co
Date: Sun, 29 Dec 1996 17:46:21 -0800 (PST)
Files: t/op/each.t t/op/oct.t t/op/quotemeta.t t/op/rand.t

LIBRARY AND EXTENSIONS

Title: "Improving Config.pm"
From: Tom Phoenix <rootbeer@teleport.com>
Msg-ID: <Pine.GSO.3.95.961230091244.13467L-100000@solaris.teleport.co
Date: Mon, 30 Dec 1996 09:24:16 -0800 (PST)
Files: configpm

Title: "File::Copy under OS/2"
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Msg-ID: <199612280347.WAA00293@monk.mps.ohio-state.edu>
Date: Fri, 27 Dec 1996 22:47:24 -0500 (EST)
Files: lib/File/Copy.pm t/lib/filecopy.t

DOCUMENTATION

Title: "Updates to perllocale.pod"
From: Dominic Dunlop <domo@slipper.ip.lu>
Files: pod/perllocale.pod

Title: "Locale-related pod patches, take 2"
From: Dominic Dunlop <domo@slipper.ip.lu>
Msg-ID: <v03007800aeea9e488b36@[194.51.248.77]>
Date: Sat, 28 Dec 1996 10:56:41 +0100
Files: pod/perl.pod pod/perlform.pod pod/perlfunc.pod pod/perlop.pod
pod/perlre.pod pod/perlsec.pod

Title: "Re: perldiag.pod entry for "Scalar value @%s{%s} ...""
From: Roderick Schertler <roderick@gate.net>
Msg-ID: <2043.852051019@eeyore.ibcinc.com>
Date: Tue, 31 Dec 1996 11:50:19 -0500
Files: pod/perldiag.pod


----------------
Version 5.003_17
----------------
Expand Down
10 changes: 6 additions & 4 deletions Configure
Expand Up @@ -5133,11 +5133,13 @@ case "$myhostname" in
echo "(Attempting domain name extraction from $tans)"
: Why was there an Egrep here, when Sed works?
: Look for either a search or a domain directive.
dflt=.`$sed -n -e 's/^search[ ]*\(.*\)/\1/p' $tans \
| ./tr '[A-Z]' '[a-z]' 2>/dev/null`
dflt=.`$sed -n -e 's/ / /g' \
-e 's/^search.* \([^ ]*\) *$/\1/p' $tans \
| ./tr '[A-Z]' '[a-z]' 2>/dev/null`
case "$dflt" in
.) dflt=.`$sed -n -e 's/^domain[ ]*\(.*\)/\1/p' $tans \
| ./tr '[A-Z]' '[a-z]' 2>/dev/null`
.) dflt=.`$sed -n -e 's/ / /g' \
-e 's/^domain.* \([^ ]*\) *$/\1/p' $tans \
| ./tr '[A-Z]' '[a-z]' 2>/dev/null`
;;
esac
fi
Expand Down
26 changes: 13 additions & 13 deletions INSTALL
Expand Up @@ -315,11 +315,11 @@ just put their local extensions in with the standard distribution.
In order to support using things like #!/usr/local/bin/perl5.002 after
a later version is released, architecture-dependent libraries are
stored in a version-specific directory, such as
/usr/local/lib/perl5/archname/5.002/. In 5.000 and 5.001, these files
were just stored in /usr/local/lib/perl5/archname/. If you will not be
using 5.001 binaries, you can delete the standard extensions from the
/usr/local/lib/perl5/archname/ directory. Locally-added extensions can
be moved to the site_perl and site_perl/archname directories.
/usr/local/lib/perl5/archname/5.002/. In Perl 5.000 and 5.001, these
files were just stored in /usr/local/lib/perl5/archname/. If you will
not be using 5.001 binaries, you can delete the standard extensions from
the /usr/local/lib/perl5/archname/ directory. Locally-added extensions
can be moved to the site_perl and site_perl/archname directories.

Again, these are just the defaults, and can be changed as you run
Configure.
Expand Down Expand Up @@ -406,7 +406,7 @@ Your system and typical applications may well give quite different
results.

The default name for the shared library is typically something like
libperl.so.3.2 (for perl5.003_02) or libperl.so.302 or simply
libperl.so.3.2 (for Perl 5.003_02) or libperl.so.302 or simply
libperl.so. Configure tries to guess a sensible naming convention
based on your C library name. Since the library gets installed in a
version-specific architecture-dependent directory, the exact name
Expand Down Expand Up @@ -436,8 +436,8 @@ LD_LIBRARY_PATH above.
There is also an potential problem with the shared perl library if you
want to have more than one "flavor" of the same version of perl (e.g.
with and without -DDEBUGGING). For example, suppose you build and
install a standard perl5.004 with a shared library. Then, suppose you
try to build perl5.004 with -DDEBUGGING enabled, but everything else
install a standard Perl 5.004 with a shared library. Then, suppose you
try to build Perl 5.004 with -DDEBUGGING enabled, but everything else
the same, including all the installation directories. How can you
ensure that your newly built perl will link with your newly built
libperl.so.4 rather with the installed libperl.so.4? The answer is
Expand Down Expand Up @@ -645,7 +645,7 @@ various other operating systems.

=back

=head1 Binary Compatibility With 5.003
=head1 Binary Compatibility With Perl 5.003

Perl 5.003 turned on the EMBED feature by default, which tries to
avoid possible symbol name conflict by prefixing all global symbols
Expand Down Expand Up @@ -1012,14 +1012,14 @@ You can safely install the current version of perl5 and still run scripts
under the old binaries for versions 5.003 and later ONLY. Instead of
starting your script with #!/usr/local/bin/perl, just start it with
#!/usr/local/bin/perl5.003 (or whatever version you want to run.)
If you want to retain a version of perl5 prior to perl5.003, you'll
If you want to retain a version of Perl 5 prior to 5.003, you'll
need to install the current version in a separate directory tree,
since some of the architecture-independent library files have changed
in incompatible ways.

The architecture-dependent files are stored in a version-specific
directory (such as F</usr/local/lib/perl5/sun4-sunos/5.002>) so that
they are still accessible. I<Note:> perl5.000 and perl5.001 did not
they are still accessible. I<Note:> Perl 5.000 and 5.001 did not
put their architecture-dependent libraries in a version-specific
directory. They are simply in F</usr/local/lib/perl5/$archname>. If
you will not be using 5.000 or 5.001, you may safely remove those
Expand All @@ -1032,7 +1032,7 @@ Most extensions will probably not need to be recompiled to use with a newer
version of perl. If you do run into problems, and you want to continue
to use the old version of perl along with your extension, simply move
those extension files to the appropriate version directory, such as
F</usr/local/lib/perl/archname/5.002>. Then perl5.002 will find your
F</usr/local/lib/perl/archname/5.002>. Then Perl 5.002 will find your
files in the 5.002 directory, and newer versions of perl will find your
newer extension in the site_perl directory.

Expand All @@ -1046,7 +1046,7 @@ and adding /opt/perl5.002/bin to the shell PATH variable. Such users
may also wish to add a symbolic link /usr/local/bin/perl so that
scripts can still start with #!/usr/local/bin/perl.

B<NOTE>: Starting with 5.002_01, all functions in the perl C source
B<NOTE>: Starting with Perl 5.002_01, all functions in the perl C source
code are protected by default by the prefix Perl_ (or perl_) so that
you may link with third-party libraries without fear of namespace
collisons. This breaks compatability with
Expand Down
7 changes: 2 additions & 5 deletions cop.h
Expand Up @@ -48,15 +48,12 @@ struct block_sub {

#define POPSUB(cx) \
if (cx->blk_sub.hasargs) { /* put back old @_ */ \
SvREFCNT_dec(GvAV(defgv)); \
GvAV(defgv) = cx->blk_sub.savearray; \
} \
if (cx->blk_sub.cv) { \
if (!(CvDEPTH(cx->blk_sub.cv) = cx->blk_sub.olddepth)) { \
if (cx->blk_sub.hasargs) { \
SvREFCNT_inc((SV*)cx->blk_sub.argarray); \
} \
if (!(CvDEPTH(cx->blk_sub.cv) = cx->blk_sub.olddepth)) \
SvREFCNT_dec((SV*)cx->blk_sub.cv); \
} \
}

#define POPFORMAT(cx) \
Expand Down
3 changes: 3 additions & 0 deletions embed.h
Expand Up @@ -67,12 +67,14 @@
#define check_uni Perl_check_uni
#define checkcomma Perl_checkcomma
#define ck_aelem Perl_ck_aelem
#define ck_anoncode Perl_ck_anoncode
#define ck_bitop Perl_ck_bitop
#define ck_concat Perl_ck_concat
#define ck_delete Perl_ck_delete
#define ck_eof Perl_ck_eof
#define ck_eval Perl_ck_eval
#define ck_exec Perl_ck_exec
#define ck_exists Perl_ck_exists
#define ck_ftst Perl_ck_ftst
#define ck_fun Perl_ck_fun
#define ck_fun_locale Perl_ck_fun_locale
Expand Down Expand Up @@ -1073,6 +1075,7 @@
#define vtbl_glob Perl_vtbl_glob
#define vtbl_isa Perl_vtbl_isa
#define vtbl_isaelem Perl_vtbl_isaelem
#define vtbl_itervar Perl_vtbl_itervar
#define vtbl_mglob Perl_vtbl_mglob
#define vtbl_nkeys Perl_vtbl_nkeys
#define vtbl_pack Perl_vtbl_pack
Expand Down
2 changes: 1 addition & 1 deletion ext/IO/lib/IO/Handle.pm
Expand Up @@ -76,7 +76,7 @@ result!
See L<perlfunc> for complete descriptions of each of the following
supported C<IO::Handle> methods, which are just front ends for the
corresponding built-in functions:
close
fileno
getc
Expand Down
2 changes: 1 addition & 1 deletion ext/IO/lib/IO/Seekable.pm
Expand Up @@ -26,7 +26,7 @@ that value to return to a previously visited position.
See L<perlfunc> for complete descriptions of each of the following
supported C<IO::Seekable> methods, which are just front ends for the
corresponding built-in functions:
clearerr
seek
tell
Expand Down

0 comments on commit a600677

Please sign in to comment.