2010-05-01から1ヶ月間の記事一覧

Xslate 0.1025 works on 5.8.1

Xslateが5.8.1でも動くようになりました。 また、makamakaさんの努力により、pure Perl版が高速になりました。Text::MicorTemplateを少し上回るスコアを出しています*1。 benchmark/others.pl $ XSLATE=pp perl -Mblib benchmark/others.pl Perl/5.10.1 i686…

Tsukuba.xs #1 無事終了!

Tsukuba.xs #1 Beer Talksですが、主催者が遅刻*1したりマック勢がプロジェクターへつながらなかったりといろいろハプニングはあったものの、無事終えることができました。 会場を提供していただいたリクルートさんありがとうございました! 無茶ぶりにも関…

Crazy module end markers

先日Classic::Perlというモジュールで奇妙なモジュール終末値*1を見た。 # snip __THE__ => __END__ =head1 NAME この発想はなかった。=>演算子の左辺は裸のワードでよく、しかも演算子の右辺は省略できる)という構文が許される。,演算子から類推すると理解…

来年から株式会社ディー・エヌ・エーで働きます

文系・不況・経歴に傷ありと三重苦を負っての就職活動でどうなることかと心配でしたが、無事就職活動を終えることができました。DeNAに就職します。Perlができると就職できるというのは本当でしたね。今回の就職活動においては、竹迫さんと牧さんには具体的…

XSでメモリークを避けるたった一つの方法

XSでメモリリークを避ける基本原則は、それほど難しくない。すなわち、作ったSV(およびSVファミリ)はすぐsv_2mortal()するのである。mortalなSVはスコープ*1から抜けるときに解放されるため、メモリリークは起こらない。つまり、あるスコープ内で新しく作っ…

Tsukuba.xs Beer Talks #1 を開催します!

Sartakが日本に来ているという事で、Perl/XSを話題にカンファレンスを行うことになりました。XS Niteに続いて二度目のXSオンリーの会です。楽しみですね!! 参加申し込みはATNDからどうぞ。 Tsukuba.xs Beer Talks #1 いつものShibuya.pmと違い、飲食物が出…

Xslate now work without C compilers

Xslateですが、pure Perlで動くようになりました。makamakaさんが一週間でやってくれました!複雑なXSコードを移植するのは大変だったと思います。ほんとありがとうございます。また、lestrratさんがttree(1)ライクなxslate(1)を作ってくれました。すばらし…

Xslate error handling policy will be changed

Xslateはいままで $SIG{__WARN__} = \&croak 相当のことをして、すべての警告で致命的エラーにしていた。しかし、これは非プログラマが使うには厳しすぎるということで、エラー制御のポリシーを変更することにした。 次のリリースでは以下のようにするつもり…

Top Down Operator Precedence is awesome!

『ビューティフル・コード』に演算子優先順位解析法という構文解析法が載っていた。これが面白そうだったので、Xslateのパーザに採用してみたところ、なるほど素晴らしい。『ビューティフル・コード』に載せるだけのことはある。手書きのパーザ読みにくいこ…

Xslate, as of 0.1009

id:tokuhirom の助言を受けて、APIの見直しなどをした*1。 キャッシュディレクトリのデフォルトが、テンプレートファイルと同じディレクトリからFile::Spec->tmpdirへ。これはcache_dirオプションで変更もできる 一引数の render(\%vars) は混乱を招くため廃…

Xslate, as of 0.1006

Xslateは実行エンジン・パーザ・コンパイラが独立になるように設計してあるため、コンパイル済みの仮想マシンコードを用意すればの実行の際にコンパイラをロードする必要がない。またこのため、パーザ部分だけを切り替えることも比較的簡単にできる。そこで…