rpms/perl/devel 32891.patch,NONE,1.1 perl.spec,1.151,1.152
Tom Callaway (spot)
fedora-extras-commits at redhat.com
Fri Mar 7 22:12:29 UTC 2008
- Previous message (by thread): rpms/midori/F-7 midori.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/cinepaint/devel cinepaint-0.22-multilib.patch, 1.1, 1.2 cinepaint.spec, 1.9, 1.10
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: spot
Update of /cvs/pkgs/rpms/perl/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv22884
Modified Files:
perl.spec
Added Files:
32891.patch
Log Message:
change 32891, sitedir/sitearch in /usr/local
32891.patch:
--- NEW FILE 32891.patch ---
--- perl-5.10.0/op.c 2007-12-18 05:47:07.000000000 -0500
+++ perl-5.10.0/op.c 2007-12-31 11:15:57.000000000 -0500
@@ -3992,6 +3992,7 @@
static const char no_list_state[] = "Initialization of state variables"
" in list context currently forbidden";
OP *curop;
+ bool maybe_common_vars = TRUE;
PL_modcount = 0;
/* Grandfathering $[ assignment here. Bletch.*/
@@ -4009,6 +4010,65 @@
o = newBINOP(OP_AASSIGN, flags, list(force_list(right)), curop);
o->op_private = (U8)(0 | (flags >> 8));
+ if ((left->op_type == OP_LIST
+ || (left->op_type == OP_NULL && left->op_targ == OP_LIST)))
+ {
+ OP* lop = ((LISTOP*)left)->op_first;
+ maybe_common_vars = FALSE;
+ while (lop) {
+ if (lop->op_type == OP_PADSV ||
+ lop->op_type == OP_PADAV ||
+ lop->op_type == OP_PADHV ||
+ lop->op_type == OP_PADANY) {
+ if (!(lop->op_private & OPpLVAL_INTRO))
+ maybe_common_vars = TRUE;
+
+ if (lop->op_private & OPpPAD_STATE) {
+ if (left->op_private & OPpLVAL_INTRO) {
+ /* Each variable in state($a, $b, $c) = ... */
+ }
+ else {
+ /* Each state variable in
+ (state $a, my $b, our $c, $d, undef) = ... */
+ }
+ yyerror(no_list_state);
+ } else {
+ /* Each my variable in
+ (state $a, my $b, our $c, $d, undef) = ... */
+ }
+ } else if (lop->op_type == OP_UNDEF ||
+ lop->op_type == OP_PUSHMARK) {
+ /* undef may be interesting in
+ (state $a, undef, state $c) */
+ } else {
+ /* Other ops in the list. */
+ maybe_common_vars = TRUE;
+ }
+ lop = lop->op_sibling;
+ }
+ }
+ else if ((left->op_private & OPpLVAL_INTRO)
+ && ( left->op_type == OP_PADSV
+ || left->op_type == OP_PADAV
+ || left->op_type == OP_PADHV
+ || left->op_type == OP_PADANY))
+ {
+ maybe_common_vars = FALSE;
+ if (left->op_private & OPpPAD_STATE) {
+ /* All single variable list context state assignments, hence
+ state ($a) = ...
+ (state $a) = ...
+ state @a = ...
+ state (@a) = ...
+ (state @a) = ...
+ state %a = ...
+ state (%a) = ...
+ (state %a) = ...
+ */
+ yyerror(no_list_state);
+ }
+ }
+
/* PL_generation sorcery:
* an assignment like ($a,$b) = ($c,$d) is easier than
* ($a,$b) = ($c,$a), since there is no need for temporary vars.
@@ -4023,7 +4083,7 @@
* to store these values, evil chicanery is done with SvUVX().
*/
- {
+ if (maybe_common_vars) {
OP *lastop = o;
PL_generation++;
for (curop = LINKLIST(o); curop != o; curop = LINKLIST(curop)) {
@@ -4084,54 +4144,6 @@
o->op_private |= OPpASSIGN_COMMON;
}
- if ((left->op_type == OP_LIST
- || (left->op_type == OP_NULL && left->op_targ == OP_LIST))) {
- OP* lop = ((LISTOP*)left)->op_first;
- while (lop) {
- if (lop->op_type == OP_PADSV ||
- lop->op_type == OP_PADAV ||
- lop->op_type == OP_PADHV ||
- lop->op_type == OP_PADANY) {
- if (lop->op_private & OPpPAD_STATE) {
- if (left->op_private & OPpLVAL_INTRO) {
- /* Each variable in state($a, $b, $c) = ... */
- }
- else {
- /* Each state variable in
- (state $a, my $b, our $c, $d, undef) = ... */
- }
- yyerror(no_list_state);
- } else {
- /* Each my variable in
- (state $a, my $b, our $c, $d, undef) = ... */
- }
- } else {
- /* Other ops in the list. undef may be interesting in
- (state $a, undef, state $c) */
- }
- lop = lop->op_sibling;
- }
- }
- else if (((left->op_private & (OPpLVAL_INTRO | OPpPAD_STATE))
- == (OPpLVAL_INTRO | OPpPAD_STATE))
- && ( left->op_type == OP_PADSV
- || left->op_type == OP_PADAV
- || left->op_type == OP_PADHV
- || left->op_type == OP_PADANY))
- {
- /* All single variable list context state assignments, hence
- state ($a) = ...
- (state $a) = ...
- state @a = ...
- state (@a) = ...
- (state @a) = ...
- state %a = ...
- state (%a) = ...
- (state %a) = ...
- */
- yyerror(no_list_state);
- }
-
if (right && right->op_type == OP_SPLIT && !PL_madskills) {
OP* tmpop = ((LISTOP*)right)->op_first;
if (tmpop && (tmpop->op_type == OP_PUSHRE)) {
Index: perl.spec
===================================================================
RCS file: /cvs/pkgs/rpms/perl/devel/perl.spec,v
retrieving revision 1.151
retrieving revision 1.152
diff -u -r1.151 -r1.152
--- perl.spec 22 Feb 2008 12:42:53 -0000 1.151
+++ perl.spec 7 Mar 2008 22:11:53 -0000 1.152
@@ -16,7 +16,7 @@
Name: perl
Version: %{perl_version}
-Release: 7%{?dist}
+Release: 8%{?dist}
Epoch: %{perl_epoch}
Summary: The Perl programming language
Group: Development/Languages
@@ -62,6 +62,9 @@
# systems.
Patch10: perl-5.10.0-x86_64-io-test-failure.patch
+# http://public.activestate.com/cgi-bin/perlbrowse/p/32891
+Patch11: 32891.patch
+
BuildRoot: %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: tcsh, dos2unix, man, groff
BuildRequires: gdbm-devel, db4-devel, zlib-devel
@@ -131,6 +134,7 @@
Obsoletes: perl-File-Temp < 0.18
Conflicts: perl-File-Temp
+
Requires: perl-libs = %{perl_epoch}:%{perl_version}-%{release}
Requires: db4 = %{db4_major}.%{db4_minor}.%{db4_patch}
@@ -778,6 +782,7 @@
%patch8 -p1
%patch9 -p1
%patch10 -p1
+%patch11 -p1
#
# Candidates for doc recoding (need case by case review):
@@ -849,10 +854,10 @@
%ifarch %{multilib_64_archs}
-Dlibpth="/usr/local/lib64 /lib64 %{_prefix}/lib64" \
-Dprivlib="%{_prefix}/lib/perl5/%{perl_version}" \
- -Dsitelib="%{_prefix}/lib/perl5/site_perl/%{perl_version}" \
+ -Dsitelib="%{_prefix}/local/lib/perl5/site_perl/%{perl_version}" \
-Dvendorlib="%{_prefix}/lib/perl5/vendor_perl/%{perl_version}" \
-Darchlib="%{_libdir}/perl5/%{perl_version}/%{perl_archname}" \
- -Dsitearch="%{_libdir}/perl5/site_perl/%{perl_version}/%{perl_archname}" \
+ -Dsitearch="%{_prefix}/local/%{_lib}/perl5/site_perl/%{perl_version}/%{perl_archname}" \
-Dvendorarch="%{_libdir}/perl5/vendor_perl/%{perl_version}/%{perl_archname}" \
%endif
-Darchname=%{_arch}-%{_os} \
@@ -892,7 +897,6 @@
%ifarch %{multilib_64_archs}
mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{perl_version}
-mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/site_perl/%{perl_version}
mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/vendor_perl/%{perl_version}
mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/vendor_perl/%{perl_version}/auto
%endif
@@ -1564,6 +1568,10 @@
# Old changelog entries are preserved in CVS.
%changelog
+* Fri Mar 7 2008 Tom "spot" Callaway <tcallawa at redhat.com> 4:5.10.0-8
+- use /usr/local for sitelib/sitearch dirs
+- patch 32891 for significant performance improvement
+
* Fri Feb 22 2008 Stepan Kasal <skasal at redhat.com> - 4:5.10.0-7
- Add perl-File-Temp provides/obsoletes/conflicts (#433836),
reported by Bill McGonigle <bill at bfccomputing.com>
- Previous message (by thread): rpms/midori/F-7 midori.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/cinepaint/devel cinepaint-0.22-multilib.patch, 1.1, 1.2 cinepaint.spec, 1.9, 1.10
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list