(toppers-users 256) Re: Why don't we use library.
TAKADA Hiroaki
hiro @ ertl.ics.tut.ac.jp
2001年 8月 16日 (木) 17:22:22 JST
もなかさん wrote:
> JSPは、リンク時にオブジェクトを列挙するようMakefile
> に書いてあります。ライブラリに纏めてからリンクすれば、
> 必要メモリの削減に繋がるのではないでしょうか?
はい。必要メモリの削減に繋がります。
> ソースファイル間での呼び出しの依存性が高ければ
> 効果は薄いような気もします。
ソースファイル間のかなり高いはずです。例えば、イベントフラグを使わない
なら、eventflag.c は不要です。もう少し具体的には、
task_manage.o task_sync.o task_except.o \
semaphore.o eventflag.o dataqueue.o mailbox.o mempfix.o \
time_manage.o cyclic.o sys_manage.o interrupt.o exception.o
の各モジュールは、そこに含まれるサービスコールを呼んでなければ、リンク
する必要がありません。その他のモジュールは、取り外し効果が薄いと思いま
す。
> かといって分割していくと、
> 究極的には関数毎に1ファイルという形になって、
> 見通しが悪くなりそうです。
> どこまでやるかは、検討の余地があります。
これが悩みところです。
売られているμITRON仕様OSですと、1ファイル1関数になっているものもあ
るようです。GCC の libgcc では、各関数を #ifdef, #endif で囲って、-D
で定義した関数のみをコンパイルする形にしています。この方法ですと、ファ
イル数は増えませんが、ソースはやっぱり汚くなります。
> JSPは、教材としての側面もあるので、本質とは関係ない
> 姑息な手を使うことに、すこし躊躇する気持ちもあります。
> 反対意見が無ければ、試してみようと思うのですが、
> みなさんはどう思われますか?
試すのは、ご自由にどうぞ。
今のファイル単位をそのままライブラリ化するのは、ごく簡単だと思います
(10分もあればできますよね)。関数毎にファイルを分けるのは、ちょっと面倒
ですね (とは言え、力仕事ですが)。
いずれにしても、ライブラリ化については、マニュアルのどこかに記述するよ
うにしたいと思います。
高田広章
豊橋技術科学大学