DLL地獄

OOoはSunがバックについてるからけっこうJavaべったりな部分もあり,そこがまた微妙に気持ち悪い.MS OfficeはOSの一部だからその点安心である(?).
Windows 98を使ってた頃はOffice系ソフトをインストール,アップデートした後にCOMCTL32.DLL辺りが書き換わって色々と不思議なことが起きたっけな.もちろんMSもその辺は意識していたのだろう,.NET Platformではアセンブリすなわち*1バイトコード・アーカイヴにヴァージョン番号を細かく振って「混ぜるな危険」を強力に実現した.そもそも.NETにはJITコンパイル済みのアセンブリをインストールする機能もあり,これはある意味キャッシュなのだから厳密なヴァージョニングはますます必須とも言える.なおJavaではjar内のバイトコード・アーカイヴを入れ替え放題なので,乱数クラスを自前に入れ替える「チート」(?)が可能だという.
さて翻って我々はCPU実験において命令セット・アーキテクチャのヴァージョニングをどのように管理すべきなのだろうか.ここでもシミュレータを活用してユニットテストを実現できればよいとは思うが,いかんせん余裕がない.

追記:ネイティブ・コンパイル済みバイナリのキャッシュという論点はあまり関連がなかったかもしれない.

*1:アセンブリは複数のモジュールすなわちDLLなどから成り立つ論理的な存在だが,単一モジュールからなるアセンブリが多数派なはずなので細かいことは言うまい.