RHEL 5(.2) の perl-5.8.8-15.el5_2.1 で例のバグが治っていた

例のバグとは,あの overload rebless のバグを解消するために bless にパフォーマンスペナルティが発生していたやつです。

ずいぶん前*1ですが,RHEL 5(すなわち CentOS 5 も含む)の Perl 5.8.8 の updates の perl-5.8.8-15.el5_2.1 でパフォーマンス解消パッチがあてられてリリースされてました。ベンチマークとってみたら,たしかに治っているぽいです。

なお patch#28775 をあてるタイプのワークアラウンドぽいです。なので Perl 5.10(5.9.4-)系で根本的に治したのとは手段が違います。くわしくは前述の overload の rebless バグについて - daily dayflower を参照してください。

Perl 5.8.10 だとどういうコードなんだろう

以下 SPEC の関連する diff。

-%define perlrel    10%{?dist}.3
+%define perlrel    15%{?dist}.1

 # work around annoying rpath issue
 Patch21:        perl-5.8.8-rpath-make.patch
+# perl bless/overload performance problem
+Patch26:       perl-5.8.8-U28775.patch
+Patch24254:    perl-5.8.8-bug24254.patch
+Patch31996:    perl-5.8.8-U31996.patch
+Patch32018:    perl-5.8.8-U32018.patch
+Patch32019:    perl-5.8.8-U32019.patch
+Patch32025:    perl-5.8.8-U32025.patch

 %patch21 -p1
+%patch26 -p1
+
 # %patch24 -p1

+# performance problems - upstream changes 27509, 27512
 %patch27509 -p1

 %patch323571 -p1
+# another changes for performance problem
+%patch24254 -p1
+%patch31996 -p1
+%patch32018 -p1
+%patch32019 -p1
+%patch32025 -p1
 
 %changelog
+* Thu Aug 28 2008 Marcela Maslanova <mmaslano@redhat.com> - 4:5.8.8-15.el5.1
+- add upstream fix for bless/overload problem (changes 31996,32018,32019,
+       32025) and perl-5.8.8-bug24254.patch. Without this patch had bless
+       poor performance.
+- Resolves: rhbz#460308
+

*1:自己レポジトリを使っていたので全然気づいてなかったです。