[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[kagemai-users:0604] Re: ruby1.8.5で動作せず
福岡です。
06/10/31 に Kouhei Sutou<kou@xxxxxxxxxxxx> さんは書きました:
> 須藤です.
>
> 新しいERBが入っているんだと思います.
>
> 新しいERBでは影舞がいじっているERB#set_eoutvar(というか
> ERB::Compiler)の仕様が変わっています.
最新の erb.rb を使うと問題が再現することと、
> 解決策としてはkagemai/util.rbから
>
> class ERB
> alias set_eoutvar_orig set_eoutvar
>
> def set_eoutvar(compiler, eoutvar = '_erbout')
(snip)
> end
> end
>
> を削除するのがいいと思います.
で問題が解決することを確認しました。
> もともと,↑の変更はruby 1.6の頃,Stringに<<していくよりも
> Arrayに<<して最後にjoinした方が速いというのに基づいたハック
> だったのだと思います.しかし,ruby 1.8ではどちらもそれほど大
> 差がない(String#<<の方が速かったかも)というのをruby-listだっ
> たかで見た気がします.
該当のコードは、もともと影舞を 0.7.1 (eRuby) から 0.8.0 (erb) に
したときに、0.8 が予想以上に遅くて、原因をプロファイルした
結果から追加したコードだったように思います。また、ruby 1.8 は
リリースされてなくて、erb.rb も標準ではついてなかった頃の話ですね。
今ではご指摘のとおり不要なコードだと思うので、CVS (stable-0_8)上
でも消しておきました。
--
FUKUOKA Tomoyuki