2009-08-01から1ヶ月間の記事一覧

Sub::Name affects on subroutine's internal structures (patch)

Mooseが生成するサブルーチンはDeparseできないことがある。これはSub::Nameがサブルーチンの内部構造を変えてしまい,-DDEBUGGING付きのperlの元だとB.cの内部のアサーションが失敗するからのようだ。そこでこのバグを修正し,さらにいくつかの改善を行った…

List of MooseX:: modules on CPAN

何か面白いものはないかと思い,CPAN上の最初のリリースではないMooseX一覧を出力するスクリプトを書いてみた。 #!perl -w use strict; use CPAN; use version; my $hatena = grep{ $_ eq '--hatena' } @ARGV; my %processed; foreach my $m(CPAN::Shell->ex…

An idea of a syntactic validator

16:54 (tokuhirom_______) Params::Validateをかけたときに、そのスタックにレキシカル変数としておけたら便利じゃね?という その後の議論のまとめ。呼び出し元に変数を定義するのは無理ですが,引数として与えられた変数の名前ならPadWalker::var_name()で…

The SUPER pseudo class is very slow!

SUPER疑似クラスを通じたメソッド呼び出しは非常に遅い。 もしベースクラスに手を加えることができるなら,空のフックメソッドをベースクラスに仕込んでおくことを考えたほうがいいかもしれない。たとえば以下のケース: # using SUPER package BaseClass; s…

Spreadsheet::ParseExcel::FmtJapan 0.52 handles Japanese encodings with Encode

Spreadsheet::ParseExcel v0.52より,S::P::FmtJapanではJcode.pmの代わりにEncode.pmを使うようになり,それに伴い内部エンコーディングがEUC-JPからUTF-8になりました。Parseメソッドの第二引数にS::P::FmtJapanオブジェクトを渡すことで,日本語の日付や…

For co-developers, I wish "devel_requires" fields in META.yml

META.yml*1にdevel_requiresフィールドがあればいいのに,と思った。このフィールドは,開発者にとってのみ必要なモジュールを指定する。ディストリビューションのテストを行っているとよくモジュールが足りなくてテストをスキップすることがある。これは普…

use Moose -extends => [@superclass];

Mooseでコンパイル時にextends()できたらいいのに、と思いエクスポートコマンド化してみた。http://github.com/nothingmuch/moose/tree/topic/extends_export_command package Foo; use Moose; package Bar; use Moose -extends => 'Foo'; package main; use…

Released stashes could cause SEGV

(2010/11/22 追記: 5.12ではこの問題は解決され、SEGVはおきなくなっている。) Released CvGVs could cause SEGVの注で「シンボルテーブル GV間にも循環参照があるため同じ問題を抱えるのだが,こちらは真のウィークリファレンスを導入して解決した」と書…

[Psychology]知能検査を実施した

2009年8月4日,心理学類の授業(実習)の一環として,知能検査を検査者として実施した。この業界にいれば知能検査を実施するのはそれほど珍しくもないのだろうが,初体験ということで記録しておく。この実習はとても面白かった。知能検査はIQを測定する心理検…

YAPC::Asia 2009でPerl MAGICについて話します

YAPC::Asia 2009で「XS書きのためのPerl MAGIC 入門」というタイトルで話します。Perl MAGICの概要,XSレベルでの処理の仕方,MAGIC処理のテストの書き方を話す予定です。よろしくお願いします。 YAPC::Asia 2009 - Sep 10-11 in Tokyo, JAPAN XS書きのため…

A trap with qr/\Q ... \E/xms

qr/\Q $foo \E/xmsと書いたら思ったものにマッチせずハマった。 しばらく頭を抱えていたが,コマンドラインで出力を見ると原因が分かった。正規表現のx修飾子は正規表現内の空白を無視するように指示するものだが,\Qのほうはxの有無にかかわらず常に空白も…