Snap.Shot.cx

トップページへ戻る

[Perl] Perl 5.6.0のByteLoader
06/18/2000 22:45 (投稿者:たかの)

Perl 5.6.0にはByteLoaderという新機能が追加されている。5.005までのperlccには使えないPerl to Cコンパイラが付属していたのだが、これにちょっと毛色の違う拡張を施した感じ。

まず先に言っておこう。

・ByteLoaderは、本体がバイナリの「シェルスクリプト」になる。
・別に大きなパフォーマンスが期待できる訳では「ない」
・別にサイズが小さくなる訳では「ない」

だもんだから、「なんじゃそりゃぁ?使う意味あるのか?」と、長いこと首を傾げていたのだけど、つい最近になって「あっ、そうなのか」とポンと膝を打った。

ByteLoaderを利用する目的は「コードの保護」なんだと。

オープンソース全盛のこのご時世に馬鹿げた話だとは思うのだけど、やっぱりビジネスで活用するとなると利権の確保が必要になる。
ところが従来の「ソースまるみえ」Perlだと、極端な話、ソースのエッセンスだけ抜き取ってスクラッチから書くことも可能だ。
コード自体はたいしたことなくても、その「アルゴリズム」が重要な意味を持つ局面は少なくないハズだ。

つまりByteLoaderは「ソースコード見ちゃイヤン」を支援/促進するための技術だった、と、そういうことのようだ。

まぁ、副作用として、プリプロセス分の速度向上が認められるかもしれないけど、Perlプロセス上げ下げのオーバーヘッドに比べたら屁みたいなもんでしょ。

あ、いちおうもうひとつ利点が。それは、Perl5以降の「モジュール全盛時代」に対応するもの。
いちおうユーザ権限でもできなくはないのだけど、基本的にPerl5のモジュールはrootを持っていないと容易にインストールできない。
ところがperlccでByteLoader化するときに、static linkみたいにモジュールを含めてしまうことができる「らしい」のですわ。
これは可搬性の意味でちょっとは貢献するのかも。

でもこれはちゃんと確認してない。Perl 5.6.0なんて、もうとっくの昔に消しちゃって手元にないので。

メールでコメント

(Powered by Zope)
リンクはご自由にどうぞ。各記事には記事番号がついていますので、URLは変わりません。
© 2000-2013 Yukimasa TAKANO, all RIGHTs reserved.