増殖するコード
本日はRUNES::Manager::Rune::getRecursiveBundleDepend()をせっせと実装。or依存でユーザーに選択を求める部分以外は完成。
ユーザーに選択を求めるのは、orロジックの中に複数のbundleへの依存がある場合のみ。どのbundleを入れるか聞く。
andロジックの中では、File依存、Lib依存、Bin依存を優先して処理して、これらの依存に未解決のものがあれば「解決できないよー」と言って終了するようにしている。
bundle依存やorロジックを先に処理すると、「orの中」や「bundleの中のorの中」でどのbundleにするか聞いた後、「実はFile依存が満たせないからインストールできません!さっき聞いたけど、どれを選んでも結局インストールできませんでした。残念!」てなことになる可能性がある。
つまり、orロジックを包括しているものは後で処理をする。
で、bundle依存とandロジックはどっちを先に処理するか。
...
...
てなorロジックがあったとき、andロジックとbundle依存のどちらを先に処理するべきか。
bundleは中にorを包括している可能性がある。でもandもorを包括している可能性がある。
…どっちでも良いか!
そもそも複数のbundleの選択肢があっても聞く必要無いとか?
というわけで、
$ cd viver
$ cat *.cc *.h | wc -l
7470
$ cd runes
$ cat *.cc *.h | wc -l
3338
ついに合わせて1万行を突破。
「昔、どこかの雑誌の記事で"米国の平均的なプログラマーが把握できるソースコードの量は1万行だ"というのを読んだことがあります」というのを読んだのですが、まだまだ把握できそう。
http://hira.main.jp/wiki/pukiwiki.php?2005_6_23%A5%AB%A1%BC%A5%CD%A5%EB%BA%C2%C3%CC%B2%F1%AD%A1