<   2008年 05月 ( 3 )   > この月の画像一覧

Subversion のビルドとか

CoveredCalc は Windows 版で一応キーカスタマイズのダイアログができた程度です。BeOS 版をこれから実装。キー入力コントロールを作るところから。遅遅として進みません。
それはそうと、そろそろ Haiku 版も作ってみたいところ。ちょこちょこ Haiku の VMware イメージとかもいじってみたりしています。

ところで、Haiku でも使われている Subversion はファイル名やログメッセージを内部で UTF-8 として保存しています。svn クライアントはローカルの文字コードと UTF-8 の相互変換を行ってくれますので、ユーザーは特に気にしなくていいのですが。‥‥ですが、BeOS 版としてパッケージされているやつは非 ASCII なログメッセージに対応していません。こんな感じになります。
baron@:~# svn log http://coveredcalc.googlecode.com/svn/trunk -r HEAD
------------------------------------------------------------------------
r42 | hironytic | 2008-03-22 18:56:14 -0800 (Sat, 22 Mar 2008) | 7 lines

?\232?\168?\173?\229?\174?\154?\227?\131?\128?\227?\130 ....

この現象は 4 年ほど前、Subversion 1.0.0 リリースの直前頃に経験しているのでなんとなくわかってます。きっと、BeOS 上でビルドしたとき APR-Utility の apu.h で APU_HAVE_ICONV が 0 になってたんだろうと想像しています。APR_HAVE_ICONV が 0 だと APR-Utility で変換が必ず失敗するんで、svn は非 ASCII 文字を仕方なく文字コード表記にするのです。ただ、BeOS はローカルの文字コードが UTF-8 なので、特に変換を行わないように改変すればそれで問題ないんです。

というわけで、今まで BeOS 上ではこのときビルドした version 0.37 (1.0.0-RC1) を使っていたのですが、この機会に(何の機会だ?)最新 stable の 1.4.6 (のクライアント)をビルドしてみようと思いました。

‥‥結果からいうと、make 中にリンクエラーが出て、そこで挫折しています。細かいことはもう少し調べてからまた書きます。

ちなみに Subversion は大きなバージョンアップである 1.5.0 がそろそろ出そうな感じなんですけどね。
[PR]
by hironytic | 2008-05-29 11:41 | 近況

gcc をバージョンアップ

ふと思いついて、BeOS 版開発環境の gcc を新しいのに入れ替えてみることにしました。
BeBits にある gcc-2.95.3-beos-070218です。
以前にもそれを考えたことがあったんですが、BeOS 環境が 1 つしかなく、その環境の構築にも苦労していたので、入れ替えて問題があって元に戻せなかったら嫌だなあという思いがあって実行していなかったのでした。今回、VMware Player の仮想マシンで BeOS の開発をできる環境ができたので、すぐに元に戻せるという気楽さからやってみました。

入れ替え自体は README に書かれているとおりで簡単にできたのですが、それで CoveredCalc を make して実行すると Segment Violation になりました。
最適化を OFF にするとこの問題は発生しません。それで、このページを見たところ、どうやら、
・Be コンパイラは、自動的に生成された関数を、それが使われているところのオブジェクトファイルに入れる。これは gcc でいうところの multiple symbol spaces。
・このバージョンの gcc は最適化が OFF のときのみ multiple symbol spaces を使う。
・古いコンパイラでは dynamic_cast などで生成される typeinfo-functions が使っているオブジェクトファイルに入っていたが、このバージョンでは最適化時に single symbol space を使うので‥‥。
・(※私の英語読解力が低いのでよくわからないが)、Beライブラリが持ってる BDirectWindow-typeinfo-function が変なので困ると。

それで、この gcc にはなんか対処は入ってるみたいなんですが、それでも CoveredCalc は落ちているわけで、ためしに multiple symbol spaces を強制してみました。(コンパイルオプションに -fmultiple-symbol-spaces を追加)
すると落ちなくなりました。ばんざーい。

で、実際にこっちの gcc を使うかどうかについてはまだ悩むなぁ。
[PR]
by hironytic | 2008-05-05 11:18 | 近況

BeOS R5 on VMware Player

以前、こたつプログラミング用にノート PC の Virtual PC 上に BeOS の開発環境を作りましたが、もうこたつはいらなくなったので、デスクトップ PC 上でも同じことを行いました。
でも、Virtual PC 上の BeOS は時計が進むのがめちゃくちゃ速い。というか、実際の1秒の間に3秒くらい進んでいます。
どうも CPU が 750MHz と誤認識されているのが原因のようです。(実際のホスト側 CPU クロックは 2.13 GHz)

ここにある cpu_fix and system_time_patch のパッチを使うことでうまくいきそうですが、Virtual PC 上ではなぜか起動に 1 分くらいかかるようになってしまいました。

そこで、VMware Player ではどうだろうと思って試してみました。
VMware Player のバージョンは 2.0.3 build-80004。BeOS の環境を再び作るのは面倒なので、NHC というツールを使って Virtual PC の HDD イメージを VMware 用のイメージに変換しました。
あと、.vmx ファイルの簡単編集用に VMX Builder も使いました。
その結果、起動もそれほど遅くなく、時計も進まない状態になりました。
ちなみに、ネットワークは BeBits にある vlance ドライバを使えば大丈夫です。
それよりも、サウンドーカードとして es1371 を選んだところ、BeOS で音が鳴ることにびっくりしました。といってもちょっぴり音が割れるんですけど。
うちの家には BeOS で音を鳴らすことができるマシンは 1 台しかなく、普段の開発に使っているマシンでは音が鳴りません。Virtual PC でもサウンドカードを認識できなかったのですが、VMware Player では認識できたことに驚きました。
[PR]
by hironytic | 2008-05-05 11:14 | 近況