2008-08-01から1ヶ月間の記事一覧
明日のLL Future行きます。Larry Wallを一目だけでも!
PerlVMを直接いじるのは大変だが,PPIとソースフィルタを使えば比較的簡単にPerlを拡張できるかもしれない,と思ってモジュールを書いてみた。 macro - An implementation of macro processor このmacro.pmはcpp(1)に似たマクロを提供する。 use macro add =…
PerlIOのデータ構造は以下の通り。 typedef struct _PerlIO PerlIOl; typedef struct _PerlIO_funcs PerlIO_funcs; typedef PerlIOl* PerlIO; struct _PerlIO { PerlIOl* next; /* Lower layer */ PerlIO_funcs* tab; /* Functions for this layer */ U32 fl…
PerlIOのデータ構造の前に。 CレベルのPerlIO*については、PerlIOシステムがメモリ管理をしてくれる。そのメモリ管理を行うのがPerlIO_allocate()で、これが呼び出されると利用していないPerlIO*ポインタを探して返す。利用されていないPerlIO*ポインタがな…
間接オブジェクト構文で警告を出したり致命的エラーを出したりするプラグマ。おなじみのPL_checkハックで実装されている。 以下のようなありがちな実行時エラーをコンパイルエラーに変えることができる。 use Test::More tests => 2; use Foo; no indirect '…
XSモジュールを書くときはPERL_NO_GET_CONTEXTを試してみるといいようだ。 perlgutsによれば,perlのビルド時にPERL_IMPLICIT_CONTEXTが指定されているとき,PERL_NO_GET_CONTEXTマクロをperlヘッダの#includeの前に定義すると効率がよくなる,とある。この…
Perlのopen()をマスターするのは大変だ。perldoc perlfuncのopenの項はすさまじい長さだし,perldoc perlopentutというopenのチュートリアルも,単なるチュートリアルなにものすごく長い。しかもPerlIOという機能のおかげでopen()そのものも自由に拡張できる…
6月にRuby.pmについての発表を2度した。それはそれで完結はしたのだが,時間が経つことでいろいろ考えがまとまったこともあるので,補足記事をいつか書きたい。いつか。 CライブラリとしてのRuby Rubyのメソッド呼び出し
デストラクタ PerlIOで出来ること PerlIOレイヤのデータ構造 PerlIOのメモリアロケーション PerlIOメソッド俯瞰 コンストラクタ/イニシャライザ PerlIO::scalarを読む 順番はいずれ整える。 9月になるとしばらく忙しくなるだろうから,8月中には書ければいい…