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

2009年を振り返る

今年の総括として、Perlとの関わりを振り返ってみる。Perl Modules Pure PerlによるPerl5 Virtual Machineの実装がなんといっても思い出深い。おかげでPerlプログラムの実行が具体的にイメージできるようになった。 B::Foreach::Iteratorでforeachイテレータ…

The path separator which CORE::require requires

require()に渡すパスセパレータは、OSに関わらず常にスラッシュ(/)でよい。というのも、require()は必要に応じてスラッシュ区切りのパスをOS固有の形式に変換するからである。つまり、require()に渡すパスを作成するためにわざわざFile::Specのようなモジュ…

How effective PERL_NO_GET_CONTEXT?

マルチスレッド版perlでは,perl.hをincludeする前にPERL_NO_GET_CONTEXTマクロを定義するとXSUBが速くなる。そのかわり,スレッドコンテキスト*1を意識しなければならない分,XSでのプログラミングがやや煩雑になる。 参考:perlgutsところで,Scalar-List-…

Perl 5.11.3 features

次のバージョンのperlの開発版であるperl-5.11.3がリリースされた。今回は5.12へ向けた5.11系列の最後のリリースということもあり,特に興味深い変更は見当たらない。Unicode関連の拡張とバグフィクスが主な変更点であるようだ。過去の記録: Perl 5.11.2 fe…

Set the entry point in PSGI

PSGIスクリプトはコードリファレンスを返さなければならないということで,スクリプトを以下のようなレイアウトにしなければならないと考えがちだ。 #!perl-w use strict; [モジュールのロード] [ユーティリティ関数群] sub { [メインルーチン] }; __END__ …

Re: CORE::もCORE::GLOBALも動かない?

CORE::もCORE::GLOBALも動かない?組み込み関数すべてがオーバーライドできるわけではありません。printはオーバーライドできないもののひとつです。オーバーライドできるかどうかは,組み込み関数のプロトタイプをサブルーチンプロトタイプで表現できるかど…

Mouse 0.44 released with duck_type

インターフェイスベースの型制約を元に面白いことができないかと思い,Mouse 0.44にMouse::Util::TypeConstraints::duck_typeを加えた。もっとも,Mooseにはずいぶん前から実装されているのだが。duck_typeとは,オブジェクトが特定のメソッドを調べるかどう…

How to use Module::Install::XSUtil - JPerl Advent Calendar 8th

JPerl Advent Calendar 2009の8日目を書きました。 Module::Install::XSUtilでXSモジュール用のMakefile.PLを書く 参考: 複数ファイルを使った中規模 XS の開発 - daily dayflower

Mouse 0.42 "Mouse::XS" released

I have released Mouse 0.42 "Mouse::XS". http://search.cpan.org/dist/Mouse/ From this version, Mouse generates constructors, destructors, and accessors in XS. These generated mehtods are much faster than pure Perl methods, especially in att…

RFC: A new syntax to give a method an extra block

In Shibuya.pm#12, I have proposed a new syntax to Perl, which allows to give a method an extra block like Ruby.For example: File->open('<', $file) { my($io) = @_; $io->grep{ /^foo/ }->each{ say @_ }; }; This is simply interpreted as: File-…

Perl Advent Calendars 2009

今年のPerl Advent Calendarをまとめてみました。 Perl Advent Calendar 2009 JPerl Advent Calendar 2009 Hacker Track - JPerl Advent Calendar 2009 Casual Track - JPerl Advent Calendar 2009 DBIx::Skinny - JPerl Advent Calendar 2009 Data::Model T…

A note at December first

Shibuya.pm#12の打ち上げでid:moriyoshi & id:tokuhirom とPerl internalsの話をしたので考えたことをメモしておく。 メソッド呼び出しは関数呼び出しと比べ15-20%遅いと言われているので,これを速くできないか まずクラスメソッドの呼び出しが遅い クラス…

Shibuya.pm#12でLTしました

Shibuya.pm#12でLTしました。perly.yをハックしてブロック付きメソッド呼び出しを可能にする,という話をしました。 たとえばこんなことができるようになります: File->open('<', $foo){ my($io) = @_; $io->grep{ /foo/ }->each{ say @_ }; }; まとめ: pe…