summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes140
-rw-r--r--dosish.h2
-rw-r--r--embedvar.h2
-rwxr-xr-xinstallperl1
-rw-r--r--lib/Pod/InputObjects.pm10
-rw-r--r--makedef.pl1
-rw-r--r--op.c13
-rw-r--r--op.h17
-rw-r--r--perl.c6
-rw-r--r--[-rwxr-xr-x]perlapi.c0
-rw-r--r--[-rwxr-xr-x]perlapi.h2
-rw-r--r--perlvars.h4
-rw-r--r--sv.c4
-rwxr-xr-x[-rw-r--r--]t/op/filetest.t0
-rwxr-xr-x[-rw-r--r--]t/op/subst_amp.t0
-rw-r--r--unixish.h2
-rw-r--r--vms/vmsish.h2
17 files changed, 181 insertions, 25 deletions
diff --git a/Changes b/Changes
index 0f0cf7349a..3eb6f9ef18 100644
--- a/Changes
+++ b/Changes
@@ -95,6 +95,146 @@ Version v5.6.0
--------------
____________________________________________________________________________
+[ 5610] By: gsar on 2000/03/08 12:08:17
+ Log: add missing locks for op refcounts
+ Branch: perl
+ ! dosish.h embedvar.h makedef.pl op.c op.h perl.c perlapi.h
+ ! perlvars.h sv.c unixish.h vms/vmsish.h
+____________________________________________________________________________
+[ 5609] By: gsar on 2000/03/08 11:30:32
+ Log: Pod::InputObjects tweak (from Brad Appleton)
+ Branch: perl
+ ! lib/Pod/InputObjects.pm
+____________________________________________________________________________
+[ 5608] By: jhi on 2000/03/08 05:08:59
+ Log: Integrate with Sarathy.
+ Branch: cfgperl
+ !> (integrate 27 files)
+____________________________________________________________________________
+[ 5607] By: jhi on 2000/03/08 05:07:06
+ Log: Make the stringification more customizable.
+ A potentially backward incompatible change.
+ Based on a suggestion by Roman Kosenko <ra@amk.al.lg.ua>.
+ Branch: cfgperl
+ ! lib/Math/Complex.pm pod/perldelta.pod t/lib/complex.t
+____________________________________________________________________________
+[ 5606] By: jhi on 2000/03/08 00:49:14
+ Log: s/lfs/largefiles/
+ Branch: metaconfig
+ ! U/mksample
+____________________________________________________________________________
+[ 5605] By: gsar on 2000/03/07 23:37:48
+ Log: VMS build patch (from Peter Prymmer)
+ Branch: perl
+ ! configure.com installhtml lib/lib.pm vms/descrip_mms.template
+ ! vms/subconfigure.com vms/vms.c
+____________________________________________________________________________
+[ 5604] By: gsar on 2000/03/07 23:25:46
+ Log: CopFILEGV(&PL_compiling) must be reset properly (from Doug MacEachern)
+ Branch: perl
+ ! perl.c
+____________________________________________________________________________
+[ 5603] By: gsar on 2000/03/07 23:05:16
+ Log: type mismatch
+ Branch: perl
+ ! sv.c
+____________________________________________________________________________
+[ 5602] By: gsar on 2000/03/07 22:40:55
+ Log: add note to INSTALL about C++ compilers (from M J T Guy)
+ Branch: perl
+ ! INSTALL
+____________________________________________________________________________
+[ 5601] By: gsar on 2000/03/07 22:30:35
+ Log: separate options to incpush() for adding version directories and
+ architecture directories (from Andy Dougherty)
+ Branch: perl
+ ! embed.h embed.pl perl.c proto.h t/lib/fatal.t
+____________________________________________________________________________
+[ 5600] By: gsar on 2000/03/07 20:18:54
+ Log: support :void to enable croaking only in void context (from
+ Simon Cozens <simon@othersideofthe.earth.li>)
+ Branch: perl
+ ! lib/Fatal.pm t/lib/fatal.t
+____________________________________________________________________________
+[ 5599] By: gsar on 2000/03/07 18:35:21
+ Log: Pod::Html tweak to avoid false falses
+ Branch: perl
+ ! lib/Pod/Html.pm
+____________________________________________________________________________
+[ 5598] By: gsar on 2000/03/07 18:21:58
+ Log: skip null siblings encountered by goto out of loopish block
+ (from Doug Lankshear)
+ Branch: perl
+ ! pp_ctl.c
+____________________________________________________________________________
+[ 5597] By: gsar on 2000/03/07 16:33:29
+ Log: omit XSLoader from bytecode dumps
+ Branch: perl
+ ! ext/B/B/Bytecode.pm ext/B/B/Stash.pm ext/B/B/Xref.pm
+____________________________________________________________________________
+[ 5596] By: gsar on 2000/03/07 10:58:17
+ Log: avoid coredump on C<printf "%vd">
+ Branch: perl
+ ! sv.c
+____________________________________________________________________________
+[ 5595] By: gsar on 2000/03/07 10:26:03
+ Log: add missing HTML escapes that can be displayed in xterm (from
+ Tim Jenness <timj@jach.hawaii.edu>)
+ Branch: perl
+ ! lib/Pod/Text.pm
+____________________________________________________________________________
+[ 5594] By: gsar on 2000/03/07 10:24:55
+ Log: Fatal.pm pod tweak (from Matt Sergeant <matt@sergeant.org>)
+ Branch: perl
+ ! lib/Fatal.pm
+____________________________________________________________________________
+[ 5593] By: gsar on 2000/03/07 09:57:24
+ Log: get ByteLoader working again
+ Branch: perl
+ ! bytecode.pl ext/B/B/Asmdata.pm ext/B/B/Bytecode.pm
+ ! ext/B/B/C.pm ext/ByteLoader/bytecode.h
+ ! ext/ByteLoader/byterun.c
+____________________________________________________________________________
+[ 5592] By: gsar on 2000/03/07 05:14:49
+ Log: typo in makedef.pl
+ Branch: perl
+ ! lib/File/Path.pm makedef.pl
+____________________________________________________________________________
+[ 5591] By: jhi on 2000/03/06 22:56:24
+ Log: Integrate with Sarathy.
+ Branch: cfgperl
+ !> Changes ext/File/Glob/Glob.xs lib/Pod/Html.pm
+____________________________________________________________________________
+[ 5590] By: gsar on 2000/03/06 22:32:44
+ Log: fix incorrect prototypes in File::Glob
+ Branch: perl
+ ! ext/File/Glob/Glob.xs
+____________________________________________________________________________
+[ 5589] By: gsar on 2000/03/06 22:07:38
+ Log: update Changes
+ Branch: perl
+ ! Changes
+____________________________________________________________________________
+[ 5588] By: jhi on 2000/03/06 21:46:18
+ Log: From: "Craig A. Berry" <craig.berry@metamorgs.com>
+ To: vmsperl@perl.org, perl5-porters@perl.org
+ Cc: jhi@iki.fi, Charles Bailey <BAILEY@newman.upenn.edu>, gsar@activestate.com
+ Subject: [PATCH 5.5.670] circumvent VMS fileno bug in old DEC C version
+ Date: Mon, 06 Mar 2000 15:36:13 -0600
+ Message-Id: <4.2.2.20000306153539.00ca6420@exchi01.midwest.metamorgs.com>
+ Branch: cfgperl
+ ! vms/vmsish.h
+____________________________________________________________________________
+[ 5587] By: jhi on 2000/03/06 21:23:27
+ Log: Use $^O.
+ Branch: cfgperl
+ ! installperl
+____________________________________________________________________________
+[ 5586] By: jhi on 2000/03/06 21:19:15
+ Log: Undo drift from the mainline.
+ Branch: cfgperl
+ !> (integrate 1607 files)
+____________________________________________________________________________
[ 5585] By: gsar on 2000/03/06 20:23:37
Log: change#5513 accidentally undid change#5373, put it back
Branch: perl
diff --git a/dosish.h b/dosish.h
index 7b2a1bdfa5..be7020d121 100644
--- a/dosish.h
+++ b/dosish.h
@@ -30,7 +30,7 @@
# endif
#endif /* DJGPP */
-#define PERL_SYS_TERM() MALLOC_TERM
+#define PERL_SYS_TERM() OP_REFCNT_TERM; MALLOC_TERM
#define dXSUB_SYS
/*
diff --git a/embedvar.h b/embedvar.h
index f7549406ea..f8387c519d 100644
--- a/embedvar.h
+++ b/embedvar.h
@@ -1648,6 +1648,7 @@
#define PL_do_undump (PL_Vars.Gdo_undump)
#define PL_hexdigit (PL_Vars.Ghexdigit)
#define PL_malloc_mutex (PL_Vars.Gmalloc_mutex)
+#define PL_op_mutex (PL_Vars.Gop_mutex)
#define PL_patleave (PL_Vars.Gpatleave)
#define PL_thr_key (PL_Vars.Gthr_key)
@@ -1659,6 +1660,7 @@
#define PL_Gdo_undump PL_do_undump
#define PL_Ghexdigit PL_hexdigit
#define PL_Gmalloc_mutex PL_malloc_mutex
+#define PL_Gop_mutex PL_op_mutex
#define PL_Gpatleave PL_patleave
#define PL_Gthr_key PL_thr_key
diff --git a/installperl b/installperl
index cd3e0a3743..b2ddc84c24 100755
--- a/installperl
+++ b/installperl
@@ -377,7 +377,6 @@ if (! $versiononly) {
safe_unlink("$installscript/pstruct$scr_ext");
if ($^O eq 'dos' or $Is_VMS or $^O eq 'transit') {
copy("$installscript/c2ph$scr_ext", "$installscript/pstruct$scr_ext");
- chmod(0755, "$installscript/pstruct$scr_ext");
} else {
link("$installscript/c2ph$scr_ext", "$installscript/pstruct$scr_ext");
}
diff --git a/lib/Pod/InputObjects.pm b/lib/Pod/InputObjects.pm
index 9029f8ccf3..646c00862a 100644
--- a/lib/Pod/InputObjects.pm
+++ b/lib/Pod/InputObjects.pm
@@ -523,7 +523,9 @@ sub _set_child2parent_links {
## Make sure any sequences know who their parent is
for (@children) {
next if (!ref || ref eq 'SCALAR');
- if ($_->isa('Pod::InteriorSequence') or $_->can('nested')) {
+ if (UNIVERSAL::isa($_, 'Pod::InteriorSequence') or
+ UNIVERSAL::can($_, 'nested'))
+ {
$_->nested($self);
}
}
@@ -537,7 +539,8 @@ sub _unset_child2parent_links {
my $ptree = $self->{'-ptree'};
for (@$ptree) {
next unless (length and ref and ref ne 'SCALAR');
- $_->_unset_child2parent_links() if $_->isa('Pod::InteriorSequence');
+ $_->_unset_child2parent_links()
+ if UNIVERSAL::isa($_, 'Pod::InteriorSequence');
}
}
@@ -890,7 +893,8 @@ sub _unset_child2parent_links {
local *ptree = $self;
for (@ptree) {
next unless (length and ref and ref ne 'SCALAR');
- $_->_unset_child2parent_links() if $_->isa('Pod::InteriorSequence');
+ $_->_unset_child2parent_links()
+ if UNIVERSAL::isa($_, 'Pod::InteriorSequence');
}
}
diff --git a/makedef.pl b/makedef.pl
index 1170ba5912..0aec81e31a 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -413,6 +413,7 @@ unless ($define{'USE_5005THREADS'}) {
unless ($define{'USE_ITHREADS'}) {
skip_symbols [qw(
PL_ptr_table
+ PL_op_mutex
Perl_dirp_dup
Perl_cx_dup
Perl_si_dup
diff --git a/op.c b/op.c
index 11ff181c83..d6a16db0aa 100644
--- a/op.c
+++ b/op.c
@@ -22,19 +22,6 @@
/* #define PL_OP_SLAB_ALLOC */
-/* XXXXXX testing */
-#ifdef USE_ITHREADS
-# define OP_REFCNT_LOCK NOOP
-# define OP_REFCNT_UNLOCK NOOP
-# define OpREFCNT_set(o,n) ((o)->op_targ = (n))
-# define OpREFCNT_dec(o) (--(o)->op_targ)
-#else
-# define OP_REFCNT_LOCK NOOP
-# define OP_REFCNT_UNLOCK NOOP
-# define OpREFCNT_set(o,n) NOOP
-# define OpREFCNT_dec(o) 0
-#endif
-
#ifdef PL_OP_SLAB_ALLOC
#define SLAB_SIZE 8192
static char *PL_OpPtr = NULL;
diff --git a/op.h b/op.h
index c9ec2df6f0..da03aa46db 100644
--- a/op.h
+++ b/op.h
@@ -401,3 +401,20 @@ struct loop {
#define OA_SCALARREF 7
#define OA_OPTIONAL 8
+#ifdef USE_ITHREADS
+# define OP_REFCNT_INIT MUTEX_INIT(&PL_op_mutex)
+# define OP_REFCNT_LOCK MUTEX_LOCK(&PL_op_mutex)
+# define OP_REFCNT_UNLOCK MUTEX_UNLOCK(&PL_op_mutex)
+# define OP_REFCNT_TERM MUTEX_DESTROY(&PL_op_mutex)
+# define OpREFCNT_set(o,n) ((o)->op_targ = (n))
+# define OpREFCNT_inc(o) ((o) ? (++(o)->op_targ, (o)) : Nullop)
+# define OpREFCNT_dec(o) (--(o)->op_targ)
+#else
+# define OP_REFCNT_INIT NOOP
+# define OP_REFCNT_LOCK NOOP
+# define OP_REFCNT_UNLOCK NOOP
+# define OP_REFCNT_TERM NOOP
+# define OpREFCNT_set(o,n) NOOP
+# define OpREFCNT_inc(o) (o)
+# define OpREFCNT_dec(o) 0
+#endif
diff --git a/perl.c b/perl.c
index 2dbfc8e193..715f4da4ae 100644
--- a/perl.c
+++ b/perl.c
@@ -64,8 +64,12 @@ static I32 read_e_script(pTHXo_ int idx, SV *buf_sv, int maxlen);
PERL_SET_INTERP(my_perl); \
INIT_THREADS; \
ALLOC_THREAD_KEY; \
+ PERL_SET_THX(my_perl); \
+ OP_REFCNT_INIT; \
+ } \
+ else { \
+ PERL_SET_THX(my_perl); \
} \
- PERL_SET_THX(my_perl); \
} STMT_END
# else
# define INIT_TLS_AND_INTERP \
diff --git a/perlapi.c b/perlapi.c
index 1d619ef81e..1d619ef81e 100755..100644
--- a/perlapi.c
+++ b/perlapi.c
diff --git a/perlapi.h b/perlapi.h
index 70a2187389..5e5ac2825b 100755..100644
--- a/perlapi.h
+++ b/perlapi.h
@@ -878,6 +878,8 @@ START_EXTERN_C
#define PL_hexdigit (*Perl_Ghexdigit_ptr(NULL))
#undef PL_malloc_mutex
#define PL_malloc_mutex (*Perl_Gmalloc_mutex_ptr(NULL))
+#undef PL_op_mutex
+#define PL_op_mutex (*Perl_Gop_mutex_ptr(NULL))
#undef PL_patleave
#define PL_patleave (*Perl_Gpatleave_ptr(NULL))
#undef PL_thr_key
diff --git a/perlvars.h b/perlvars.h
index 4df31bb4a0..bd07adc59f 100644
--- a/perlvars.h
+++ b/perlvars.h
@@ -34,3 +34,7 @@ PERLVARI(Gdo_undump, bool, FALSE) /* -u or dump seen? */
#if defined(MYMALLOC) && (defined(USE_THREADS) || defined(USE_ITHREADS))
PERLVAR(Gmalloc_mutex, perl_mutex) /* Mutex for malloc */
#endif
+
+#if defined(USE_ITHREADS)
+PERLVAR(Gop_mutex, perl_mutex) /* Mutex for op refcounting */
+#endif
diff --git a/sv.c b/sv.c
index 6f40d6fa92..ff21757777 100644
--- a/sv.c
+++ b/sv.c
@@ -6382,10 +6382,6 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
# include "error: USE_THREADS and USE_ITHREADS are incompatible"
#endif
-#ifndef OpREFCNT_inc
-# define OpREFCNT_inc(o) ((o) ? (++(o)->op_targ, (o)) : Nullop)
-#endif
-
#ifndef GpREFCNT_inc
# define GpREFCNT_inc(gp) ((gp) ? (++(gp)->gp_refcnt, (gp)) : (GP*)NULL)
#endif
diff --git a/t/op/filetest.t b/t/op/filetest.t
index e00d5fb7b0..e00d5fb7b0 100644..100755
--- a/t/op/filetest.t
+++ b/t/op/filetest.t
diff --git a/t/op/subst_amp.t b/t/op/subst_amp.t
index e2e7c0e542..e2e7c0e542 100644..100755
--- a/t/op/subst_amp.t
+++ b/t/op/subst_amp.t
diff --git a/unixish.h b/unixish.h
index 24da4296fb..1168d297b6 100644
--- a/unixish.h
+++ b/unixish.h
@@ -135,7 +135,7 @@
#endif
#ifndef PERL_SYS_TERM
-#define PERL_SYS_TERM() MALLOC_TERM
+#define PERL_SYS_TERM() OP_REFCNT_TERM; MALLOC_TERM
#endif
#define BIT_BUCKET "/dev/null"
diff --git a/vms/vmsish.h b/vms/vmsish.h
index 34efcb6ed4..55401f7f6b 100644
--- a/vms/vmsish.h
+++ b/vms/vmsish.h
@@ -257,7 +257,7 @@
#define BIT_BUCKET "_NLA0:"
#define PERL_SYS_INIT(c,v) vms_image_init((c),(v)); MALLOC_INIT
-#define PERL_SYS_TERM() MALLOC_TERM
+#define PERL_SYS_TERM() OP_REFCNT_TERM; MALLOC_TERM
#define dXSUB_SYS
#define HAS_KILL
#define HAS_WAIT