第17版公開
2006/12/30
だいぶ遅くなったが、ようやく「主筆」第17版を公開しておいた。 本当ならもう少しテストをしてから公開するようにしたかったのだが、あまりにもやる気がなくて、かつ、できれば年内に公開しておきたかったから、とうとう公開してしまった。
今のところ、配布用パッケージはリリース用にビルドすると自動的に生成されるようにしてある。要はMakefileにパッケージ生成から圧縮・md5の署名の生成までを行うスクリプトを記述してあるのだ。だが、それは実行バイナリに対するものだけでああって、ソースコードの配布用のファイルは生成してくれない。毎回必ずソースコードも配布している現状を考えれば、上記の対処は片手落ちだといわざるを得ない。ソースコードの配布用の圧縮ファイルまで自動生成してくれるスクリプトを、どこかのタイミングで作成した方が良さそうだ。
配布用ファイルのmd5の署名は、上に書いたとおりMakefile内で自動生成している。そしてそのために、署名を生成するためのプログラムを作成して、署名時にそれをコンパイルして実行するようになっている。
md5のソースコードはRFCの何番だったか忘れたが、公開されている。今まで俺はそれをそのまま流用して使用していたのだが、ソースコードを配布することを考えると、著作権的に問題があるのではないかと思い、使うのをやめた。
とは言っても、自分でmd5のアルゴリズムを実装するのもあほらしいから、そこまではやらなかった。結局、Solarisがmd5のAPI関数を提供していたから、それを使うようにしただけだ。手抜きなのも甚だしいが、まぁいいだろう。
第16版から第17版にかけて、約200KB程度容量が増えているが、これは別に、その分だけ機能が増えたと言うわけでもない。確かにいくつか機能を追加しはしたものの、圧縮した状態で200KBも増えるような追加はしていない。容量が増加した原因は、添付しているアイコンが増えたことと、より強力に最適化を行うようにしたことだ。
Sun studio 11には、binoptという実行バイナリの最適化を行うツールが添付されている。今まではそんなものの存在を知らなかったから使わないでいたのだが、せっかく付いてくるのなら使っておこうかという事で、採用することにした。そしたら実行バイナリの容量が多少増えてしまったようだ。だがまぁいいだろう。
古い話になるが、第15版から第16版にかけて、配布ファイルの容量が約1MBも増加しているのだが、この原因は配布形式の変更にある。今までは、インストーラーをShellスクリプトで自前で記述していたのだが、それをパッケージに変更した。
パッケージにしたからと言って、直接的に容量が増加する原因にはなり得ない。だがしかし、パッケージにすると、中のドキュメントがインストールするまで参照できなくなってしまうという問題がある。そのため、ドキュメント(pdfファイル3つ)は、パッケージ内に含めるのと同時に、圧縮ファイル中にも重複して持たせるようにしている。そのため、容量が極端に大きくなってしまった。
だから、実を言うと配布ファイル2MB中の約75%程度がドキュメントだったりもする。配布するファイルの形式や構造を何とか工夫して、ドキュメントを重複して持たなくてもいいようにできれば、容量はだいぶ削減できるのだが。
今のところ、配布用パッケージはリリース用にビルドすると自動的に生成されるようにしてある。要はMakefileにパッケージ生成から圧縮・md5の署名の生成までを行うスクリプトを記述してあるのだ。だが、それは実行バイナリに対するものだけでああって、ソースコードの配布用のファイルは生成してくれない。毎回必ずソースコードも配布している現状を考えれば、上記の対処は片手落ちだといわざるを得ない。ソースコードの配布用の圧縮ファイルまで自動生成してくれるスクリプトを、どこかのタイミングで作成した方が良さそうだ。
配布用ファイルのmd5の署名は、上に書いたとおりMakefile内で自動生成している。そしてそのために、署名を生成するためのプログラムを作成して、署名時にそれをコンパイルして実行するようになっている。
md5のソースコードはRFCの何番だったか忘れたが、公開されている。今まで俺はそれをそのまま流用して使用していたのだが、ソースコードを配布することを考えると、著作権的に問題があるのではないかと思い、使うのをやめた。
とは言っても、自分でmd5のアルゴリズムを実装するのもあほらしいから、そこまではやらなかった。結局、Solarisがmd5のAPI関数を提供していたから、それを使うようにしただけだ。手抜きなのも甚だしいが、まぁいいだろう。
第16版から第17版にかけて、約200KB程度容量が増えているが、これは別に、その分だけ機能が増えたと言うわけでもない。確かにいくつか機能を追加しはしたものの、圧縮した状態で200KBも増えるような追加はしていない。容量が増加した原因は、添付しているアイコンが増えたことと、より強力に最適化を行うようにしたことだ。
Sun studio 11には、binoptという実行バイナリの最適化を行うツールが添付されている。今まではそんなものの存在を知らなかったから使わないでいたのだが、せっかく付いてくるのなら使っておこうかという事で、採用することにした。そしたら実行バイナリの容量が多少増えてしまったようだ。だがまぁいいだろう。
古い話になるが、第15版から第16版にかけて、配布ファイルの容量が約1MBも増加しているのだが、この原因は配布形式の変更にある。今までは、インストーラーをShellスクリプトで自前で記述していたのだが、それをパッケージに変更した。
パッケージにしたからと言って、直接的に容量が増加する原因にはなり得ない。だがしかし、パッケージにすると、中のドキュメントがインストールするまで参照できなくなってしまうという問題がある。そのため、ドキュメント(pdfファイル3つ)は、パッケージ内に含めるのと同時に、圧縮ファイル中にも重複して持たせるようにしている。そのため、容量が極端に大きくなってしまった。
だから、実を言うと配布ファイル2MB中の約75%程度がドキュメントだったりもする。配布するファイルの形式や構造を何とか工夫して、ドキュメントを重複して持たなくてもいいようにできれば、容量はだいぶ削減できるのだが。

