gperfが生成するソースコードの扱いについて
gperfが生成するソースコードの扱いについて、gperf 3.0.4のHTMLやinfoでは"The Copyright of the Output"として説明されている。しかし手元にあるgperf 3.0.1~3.0.3のドキュメントには同様の記述を見つけられなかった。僕自身はgperf 3.0.4での説明と同じ認識(生成物はGPLではなく、入力データと同じ扱い)でいたが、gperf自身のドキュメントに何らかの形で明記されているものと思いこんでた。gperfの公式サイトからたどれるドキュメントにもない。
- http://git.savannah.gnu.org/cgit/gperf.git/plain/doc/gperf.info … 最新版のinfo
- Perfect Hash Function Generator … gperf公式サイトからたどれるドキュメント
僕が上記認識を持ったのはかなり以前のことなので、おそらく、昔から特に明記されることはなく上記の通りの扱いであった、それがgperf 3.0.4でようやく明記されることになった、ということなのだろう。ただ明記されてた方が扱いやすいし他の人に説明しやすいので、これからはgperf 3.0.4を使うようにしよう。gperf 3.0.3からの変更点もそれほど大きくなさそうだし。
- GNU gperf 3.0.4 released … info-gnuに投稿されたgperf 3.0.4リリースのお知らせ
Magic Mouseの右半分でスクロールしないようにした
Digital Performerを使っていると不意にウィンドウ内が上下左右にスクロールしてしまう。これはMagic Mouseを握っている自分の右手の中指がついマウス表面に触ってしまうことが原因なので、上記のようにMagic Mouseの右半分ではタッチの反応を無くした。これで操作できることが減るが、代わりに誤動作も減る。
Ninjaのテストにgtest 1.6.0以降を使う
NinjaはテストのためにGoogle C++ Testing Framework(以下gtest)が使われているが、当初はシステムにインストールされたgtestをテストプログラム(ninja_test)のビルドに利用されていた。しかしgtestの最新版である1.6.0以降はシステムへのインストールできなくなり、gtestを使う各プロジェクト毎にビルドする形になった。その理由はgtestのFAQにて説明されている。
Why is it not recommended to install a pre-compiled copy of Google Test (for example, into /usr/local)?
僕が使っている環境(Mac OS X + Homebrew)でもgtest 1.5.0を使用できるが、gtest 1.6.0とうっかり混ざるとコンパイルエラーになり、かつ今自分がgtest 1.5.0とgtest 1.6.0のどちらを利用しているのか判別つかないことが多々あり、自分の環境ではgtest 1.6.0で統一しようと考えた。
そこでNinjaでもgtest 1.6.0を使うことになるが、2012-01-06現在のNinjaではconfigure.pyからgtestを展開したディレクトリを指定するオプションが用意されているため、そのオプションを利用する。
% ./configure.py --help Usage: configure.py [options] Options: -h, --help show this help message and exit --platform=PLATFORM target platform (linux/freebsd/mingw/windows) --host=HOST host platform (linux/freebsd/mingw/windows) --debug enable debugging flags --profile=TYPE enable profiling (gmon/pprof) --with-gtest=PATH use gtest unpacked in directory PATH --with-python=EXE use EXE as the Python interpreter % ./configure.py --with-gtest=./gtest-1.6.0 % ./ninja ninja_test
これでninja_testが出来上がる。
始めた
運良く利用申し込み受付開始の記事を見つけられたので、早速申し込んだ次第。
試した感想はあとで書く。