nDiki : Perl v5.6.2
スポンサード リンク
Related term
Perl Perl v5.8.0 5.005_03 互換性 WiKicker Test::More Perl v5.6 Perl v5.8.6 Perl 5.005_03 Perl モジュール Perl v5.6.0 Perl v5.8.4 Perl v5.8 正規表現 ビルド フレームワーク Perl v5.8.8 UTF-8 標準 Perl ライブラリ Test::Harness Perl テストスクリプトの書き方 Perl バージョン Perl v5.6.1 Perl v5.8.2 CGI.pm ExtUtils::MakeMaker pod2latex リグレッションテスト 環境変数 開発
2004年2月3日 (火)
■ [WiKicker] WiKicker の文字化け対応

WiKicker の文字化けであるが Perl v5.6.x という環境が怪しそう。 ということで、ローカルに Perl v5.6.2 を入れてテスト。
tar zxvf perl-5.6.2.tar.gz cd perl-5.6.2 rm -f config.sh Policy.sh sh Configure -de -Dprefix=/usr/local/perl-5.6.2 make make test make install
で /usr/local/perl-5.6.2/bin/perl -MCPAN -e shell でもりもり必要なモジュールをインストール。
で WiKicker のテスト。化けた。 追いかけてみると、Locale::Maketext モジュールが use utf-8 をしているため、l10n した文字列は UTF-8 として mark されてしまっているようだ*1。 で、mark されていない他の部分の(バイト列としてのUTF-8)文字列と結合したりしたところで化けたと。
ということで、Perl v5.6.x では maketext で帰ってきた文字列の UTF-8 mark を外すようにする。
if (5.006 <= $] && $] < 5.7) {
return eval "no utf8; my \$tmp = \$language_handle->maketext(\@param); \$tmp =~ /^(.*)\$/; \$1";
}
という緊急処置コード。 Perl 5.0005_03 では utf8 プラグマ自体が無いので、eval の中に入れておく。 v5.6.x での UTF-8 mark の外し方が良くわからないので、とりあえず正規表現に全マッチさせるというダサいコード(v5.8 だと utf8::* にそこら辺の関数があるのだが)。
*1Perl 5.6.x では Perl v5.8.x のように "UTF8" flag という呼び名はないのかな?
- YAML Perl モジュール (2004-05-19)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- 野良パッケージと依存 Perl モジュールのインストールセット を CPA... (2006-02-12)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
2005年3月13日 (日)
■ テスト。More。

WiKicker のテストスクリプトの作成には Perl 5.005_03 でも標準バンドルされている Test モジュールを使用している。 テストのためだけに追加のモジュールを要求するのも悪いかなと思って。
しかし Perl v5.6.2 以降にはすでに標準バンドルされている Test::More にそろそろ移行したい。
5.005_03 で WiKicker を使っている人も少ないようだし WiKicker 0.25 からは Test::More を PREREQ_PM に追加することにしよう。 Test モジュールと Test::More モジュールは互換性がないので、順次テストスクリプトを修正していく予定。
- WiKicker 0.38 リリース - 認証・承認用コードの実装 (2006-09-14)
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- Time::Local::gmtime の範囲チェック (2003-12-23)
- [ Perl ] Memcached を使ってみる (2004-01-12)
- [ WiKicker ] Storable 永続化データの互換性 (2005-06-06)
2005年6月6日 (月)
■ [ WiKicker ] Storable 永続化データの互換性

fkimura 氏から WiKicker の障害レポートをいただいた。 Perl v5.8.6 へ移行した環境で WiKicker 0.26 を試してみたところエラーになってしまうとのこと。
"Error action: do_read: Byte order is not compatible at blib/lib/Storable.pm (autosplit into blib/lib/auto/Storable/thaw.al) line 366, at /usr/local/lib/perl5/site_perl/5.8.6/WiKicker/DB/File.pm line 161 at /usr/local/lib/perl5/site_perl/5.8.6/WiKicker/CGI/AbstractController.pm line 93"
(FreeBSD 4.11-RELEASE-p9)
Storable がエラーを吐いている。 Storable データ形式に互換性のない環境 (Perl and/or Storable) 変化があったようだ。
例えば Storable のマニュアルによれば 64bit integer をサポートするように構築された Perl v5.6.0 や v5.6.1 で Storable 2.02 以前を使って書き出したデータを他の環境で読み出すと 'Byte order is not compatible' エラーが出るとある。
確認したところ前のバージョンは Perl v5.6.2 だそうなので、もしかしたら上記の非互換性にあたってしまったのかもしれない (FreeBSD の Perl って 64bit integer サポートでビルドされるようになっている?)。
@ WiKicker での対応方法
WiKicker で使用している Perl のアップグレードで上記問題にあたった場合、一番簡単な方法は Storable で書き出しているページ情報ファイルを一旦全部消してしまうという方法。
WiKicker のデータベースディレクトリ (wikicker.database.directory プロパティで指定しているディレクトリ)の下の、info/basic/* を全て消してしまう(一応バックアップとしてコピーした方が良い)。
この場合、各ページの「最終更新時刻、最終更新者名、要約文」が消えてしまうが、これらの消えてしまった情報は次にページを更新した時に最新の情報で上書きされる。
WikiPage そのものおよび古いリビジョンは影響がなく全て残っているので、通常の運用ではまあ許容できる範囲の対処方法か。
情報ファイルを消したくない場合は、コンバートする必要があるけれど古い Storable データを読み出せる環境で export して、新しい形式で書き直す必要があるので作業する人にとってもちょっと面倒かもしれない。いや、新しい Storable ならば $Storable::interwork_56_64bit あたりを使えば両方をきりかえて読めそうであるので、新しい環境だけあればいいのかな。
- [ Perl ] Memcached を使ってみる (2004-01-12)
- SQLite とか DbUnit とか (2005-05-23)
- [ WiKicker ] キャッシュまわりにバグ (2004-06-05)
- [ WiKicker ] SpeedyCGI 対応するも…… (2003-11-09)
- テスト。More。 (2005-03-13)
2006年9月14日 (木)
■ WiKicker 0.38 リリース - 認証・承認用コードの実装

朝一で WiKicker 0.38 をリリース。 昨晩コードを完成させておいたものを Perl 5.005_03 上でテストしたら、ExtUtils::MM が 5.005_03 にはないことに気がついた。 調べると標準で入っているのは Perl v5.6.2 / Perl v5.8.0 から。
ということで急拠 ExtUtils::MM を使っているツールは今回のリリースから除外してパッケージング。
今回のリリースでは認証・承認フレームワークの実装が含まれるようになったのが中心で、基本的な機能には特に変更なし。
- テスト。More。 (2005-03-13)
- Intercepting Filter パターンとレスポンスの順次送信 (2006-02-28)
- Time::Local::gmtime の範囲チェック (2003-12-23)
- WiKicker 0.39 リリース - 添付ファイルの削除機能を実装 (2006-10-17)
- DBIx::Class + SQLite で Wiki 用認証/承認データベース (2006-06-18)
スポンサード リンク
■よく検索されるキーワード
提案書(75) torrent(69) perl(61) 書き方(45) 充電式カイロ(43) windows(38) x31(36) 使い方(32) linux(32) cvs(25) アジェンダとは(25) usb(25) thinkpad(23) 静電気(21) サンプル(20) 口コミ(20) ヨドバシ(20) アジェンダ(20) 画像(19) debian(19) ubuntu(19) mp980(18) f-01a(18) 手帳(17) tc-1(17) 秋葉原(16) ssh(16) subversion(16) グッズ(16) a6(15) 壁紙(15) ほぼ日手帳(15) c#(14) ダイソー(14) svn(14) 交換(14) インストール(13) 加湿器(13) firefox(12) ノート(12) 無印(12) 日本語(12) wiki(12) ganttproject(12) デロンギ(11) 方眼(11) ヨドバシカメラ(11) デザイン(11) nikkor(11) 設定(11) 作り方(11) dropbox(11) af(10) terastation(10) memcached(10) レビュー(10) カバー(10) カイロ(10) 2009(10) 除去(10) nikon(10) tortoisesvn(10) クラリチン(9) ガントチャート(9) 動画(9) ポメラ(9) ご査収(9) rcs(9) モジュール(9) n-01a(9) フィルム(9) 写真(9) システム手帳(9) edition(9) porter(9) xp(8) imap(8) 4c(8) docomo(8) ミニ6穴(8)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.331435s / load averages: 0.19, 0.38, 0.48
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク