![]() |
![]() |
XS ソースコードリーディング - List::Util編 -
perlXStut(perlXStut - XSUB を書くためのチュートリアル)も一通り読み終わったので、perlxs(perlxs - XS言語リファレンスマニュアル)を参考にしつつ、実際に XS で書かれた CPAN モジュールのソースコードを読んでみることにした。。
で、とりあえずは、動作が分かりやすい List::Util から読んでみたら、面白いコードがあった。
ALIAS というキーワードを使うと、同じ関数を異なる名前で呼び出すことができ、呼ばれた名前に従って ix という変数に値がセットされるらしい。上のコードの例で言うと、min が呼ばれたときは ix に 0 が、max が呼ばれたときは ix に 1 がセットされる。なので、 val < retval ? !ix : ixというコードは、min が呼ばれたときには val < retval ? true : falseという意味になり、max が呼ばれたときには val < retval ? false : trueという意味になる。 なるほどなぁ。 参考:perlxs - XS言語リファレンスマニュアル ALIAS: というキーワードは、XSUB に対して二つ以上のユニークな Perl での名前を持たせ、また、起動されたときに使われている(そういったユニークな Perl での) 名前を知るための手段を持たせます。 Perl での名前は完全修飾されたパッケージ名とすることができます。それぞれの別名はインデックスとして与えられます。コンパイラは、使用される別名のインデックスが格納されている ix と呼ばれる変数をセットアップします。 XSUB が ix という名前と共に呼び出されたとき、その値は 0 となります。 ■
[PR]
by fkmn
| 2008-07-08 23:55
| IT
|
![]() |
カテゴリ
以前の記事
2011年 06月
2011年 04月 2011年 02月 2011年 01月 2010年 12月 2010年 11月 2010年 05月 2010年 04月 2010年 03月 2009年 12月 more...
ブログパーツ
リンク
検索
タグ
ライフサイエンス
感想
ブログ
一人読書会
日記
programming
Scheme
C#
Lifehack
コンピュータ
R
IT
PHP
CL
ゲーム
ネタ
本
Perl
インフォマティクス
Ruby
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
![]() |
![]() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ファン申請 |
||
外部サイトRSS追加 |
||