Hamigaki.Bjam 中止
えー、Hamigaki.Bjam構想は1日で中止になりました。
元々、「ある程度パースできればいい」という程度のものを作っていたため、ライブラリとしてキッチリとしたものに仕上げるにはかなり厳しそうです。
いくつか問題点を挙げておくと、
- bjamのソースを見ると、アンドキュメントな組み込みルールが20個ぐらいある
- bjamには元のjamにないモジュールやクラスといった仕組みがある
- 完全にbjam互換にしようとすると、結局大量のjamファイルを処理する必要がある
などがあります。
他にも、これまでグローバル変数だと思っていたものが、実はモジュール内ローカル変数だったことも分かりました。
なるほど、グローバル変数を取得するのにmodules.peekが必要なわけです。(modules.peekで空のモジュール名を指定するとグローバル変数を取得できる)
そんなわけで、Hamigaki.Bjamは一旦中止とし、今回は大雑把にターゲット名を取得するだけに留めようと思います。
最低限必要そうなルールとして、
- GLOB/glob
- MATCH
- modules.peek (ただし、グローバル変数のみ)
- pathモジュールの一部
だけ実装することにします。