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

Perlのこれだけは勘弁!というところ

Perlのこれだけは勘弁!というところを挙げてみる。 scalar context/list contextの区別はいらない void/non-voidだけでよかった メソッド呼び出しと関数呼び出しを区別できない 名前付き引数がないのはDISられてもしかたがない 組み込みのinstanceof演算子…

Moose metaclass compatibility is too complex!

Mooseのmetaclass compatibilityのルールがとんでもなく複雑だということがわかったのでメモしておく。 コード例: #!perl use strict; use warnings; use Test::More tests => 4; use Moose::Util qw(does_role); { package FooTrait; use Moose::Role; pac…

Perl 5.11.2 features

Perl 5.11.1 featuresの続報。Perl 5.11.2がリリースされた。例によって個人的に興味をもったトピックを紹介する。 qr overloading 文字列,数値,ブール値に加え,正規表現のオーバーロードができるようになった 正規表現中に埋め込まれるときや,=~演算子…

Now Text::MicroTemplate is even faster than HTML::Template::Pro

前提:Text::MicroTemplateの速度を簡単にベンチマークText::MicroTemplateを最適化したので,ベンチマークをとってみた。 スクリプトはほぼ同じだが,loop countは-1*1にした。 http://github.com/kazuho/p5-text-microtemplate/blob/master/author/benchma…

A REPL command for golang

Go をちょっと試すのに便利な wrapper 二題(by id:sfujiwara)に触発されて,REPLを行うラッパースクリプトを書いてみた。http://github.com/gfx/golang-interpreter/blob/master/g以下のように,mainなどを書くことなく実行できる。 $ ./g go> fmt.Print("He…

Shibuya.pm#12でLTします

Shibuya Perl Mongersテクニカルトーク#12 NoSQL特集Shibuya.pm#12でLTします。タイトルは「Metaprogramming in XS」ということで,Mouse::XSを具体例にXSUBの動的生成について説明するつもりです。

How fast Mouse-XS in applications

v0.40_06から,Mouseが生成するコンストラクタとデストラクタもXSになった。Mouseが生成するアクセサはすでにXS化しているので,かなりのパフォーマンスが期待できるようになったはずだ。 しかし,いくらコンストラクタやアクセサといった部品が速くても,ア…

An implementation of Devel::GlobalDestruction in pure Perl

Devel::GlobalDestruction はPurePerlでも実装できる。 END{ $in_global_destruction = 1; } sub DESTROY{ return if $in_global_destruction; # do something complex } Perlのソースコードも読んだが,これで完全にDevel::GlobalDestruction::in_global_de…

A note on smart match op: $var ~~ constant vs. $var1 ~~ $var2

先日『初めてのPerl 第5版』を少し読んだところ,スマートマッチ演算子についての解説があった。 perlsyn/Smart matching in detailをみると非常に複雑な印象を受けるが,実際にはそれほど複雑ではないようだ。むしろ,うまく使うと非常に便利である。ただし…

Re: Perlさんはどんな人なんだろう?

Perlさんはどんな人なんだろう? - 武蔵の日記でMontana Perl - もしPerlが実際の人物だったらにつっこみをいただきました。ありがとうございます。原作者はPerlの慣習を踏まえて書いているので,Perlになじみのない方にとってはわかりづらいところが多かっ…

Montana Perl - もしPerlが実際の人物だったら

If Programming Languages Were Real Personsを一部だけ訳してみました。私が大好きなのはPerlなのでその部分しか訳しません:) Montnana PerlPerlは37才の若い女性で,Devel Cityの言語学部門でデータアナリストとして働いてる。彼女はセクシーで,同僚たち…

Use -w in applications, use warnings in modules

警告のためには -w ではなく use warnings を使うべき,という意見がある*1。 perl - use warnings; # -w でなくて - 404 Blog Not Found 現代的なPerlの記述方法一覧 + α - Perl入門〜サンプルコードによるPerl入門〜 しかしそれはある意味では正解だが,あ…

Shared strings in XS

XSで共有文字列を活用するの続き。スクリプトを変えて再計測を行った。 http://github.com/gfx/Perl-B-Shared git clone git://github.com/gfx/Perl-B-Shared.git いろいろ試した結果,まとめとしては以下のようになる。 共有文字列の生成と破棄は通常の文字…

Mouse type constraints in XS

MouseのXS化*1が進みつつあります。0.40_04ではtype constraintsを全面的にXSで実装しました。生成されるコードを徹底的にXS化したため,かなり高速になりました。以下はTC付きアクセサに値をセットする場合のベンチマークの結果です。Mouse/benchmarks/type…