Perlテックブログ

ITエンジニアの成長意欲を刺激する技術考察、モジュール開発の日記。Perlイベントや国内や海外のPerlの記事の紹介。

SPVMの試験はとても難しい

PerlCPANモジュールなんかを作った場合は、試験をすべての環境で通すのは、簡単だ。あらゆる環境で、スクリプトが実行できるというのは、Perlのコアの開発の方で保証してくれているからだ。これはありがたい。

SPVMの場合は、C言語で書いているので、Perlで書くのとは、試験を通す難易度が違う。

OS環境とGCCの環境が異なる部分を、SPVM側で吸収しないといけないからだ。自分のLinuxの環境で動いても、CPAN Testerでは、失敗した試験が山のようにある。

少しづつ減らしていきたいけれど、まずは、パフォーマンスと言語仕様を作るのに専念している。

Linuxで共有ライブラリでは動いても、他の環境では動かない

今ある状況としては、Linuxで共有ライブラリ「.so」を読み込めても、Windowsだと読み込めないパターンがある。これは、Windows上で試験しないといけない。そして、頻繁に壊れる。

共有ライブラリは、C言語の仕様ではなくって、各OSの機能なので、少しづつ、読み込み方法が違って、それをDynaLoaderで吸収しているのだけれど、それでも、気を付けないといけない。

ネイティブで書いた処理が動かない

ネイティブで書いたモジュールが、他のLinuxで試験が通っていない。対策として、ネイティブのライブラリを、CPANモジュールとして切り分けて、SPVMの試験とは関係のない状態にしたい。コアには、モジュールを含めないようにして、試験を通ることを優先する。

32bitのOSで64bit-intをサポートしている環境で動かない

32bitのOSで64bit-intをサポートしている環境で動かないということが起こっている。

でも何とか少しづつは、前に進んでいるので、Perl数値計算ができるようになる日は、そう遠くない気もする。