2008-02-01から1ヶ月間の記事一覧

BBv2 Tutorial その11

「カスタムコマンド」のセクションにターゲット変数を使った例を追加しました。 差分 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html 実ターゲットという単語が説明もなく出てきているので要修正です。 仮想ターゲットと実ターゲットの違いを理解する…

BBv2 Tutorial その10

説明の都合上、if文が必要になったので、「制御フロー」のセクションを追加しました。 差分 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html ちなみに、英語版wikipediaによると、"flow control"と"control flow"は別ものらしいです。 flow control プ…

続 gcc4.3.0のコード調査

C++

例のバグですが、Fedora8は再インストールしてしまったので、Cygwinでビルド(寝る前に終わらなかったので一晩放置)して検証しました。 static_castとか関係なくて、 unsigned foo(int n) { return ~((unsigned)~n); } で再現しました。 ちなみに unsigned fo…

BBv2 Tutorial その9

今日はnotfileの使い方を追加しただけです。 差分 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html notfileはregister.typeした拡張子のファイルしか扱えないみたいです。 この仕様に気付くのに時間がかかりました。

BBv2 Tutorial その8

結局「変数」の説明を独立させて、「ルール」のセクションも追加しました。 「カスタムコマンド」もmakeルールの使い方だけ書きました。 差分 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html あと、決め打ちだったパスを環境変数から取得するように変…

Fedora8 再インストール

yumではバージョンダウンできなさそうだったので再インストールしました。 で、今度はちゃんとアップデートできました。 developmentリポジトリが原因だったとみて間違いなさそうです。

BBv2 Tutorial その7

カスタムコマンドの説明にどうしても変数が必要なので、変数の説明を加筆しました。 差分 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html カスタムコマンド自体の説明は途中まで書いたんですけど、その前にアクションの説明が必要で、どう書くか考え中…

gcc4.3.0のコード調査

C++

gcc4.3.0が変なコードを吐く前後を調べてみました。 式 実際のコード 正否 ~static_cast<unsigned>(-(n + 0)) n-1 ○ ~static_cast<unsigned>(-(n + 1)) ~n × ~static_cast<unsigned>(-(n + 2)) ~(-2-n) ○ static_cast<unsigned>(-(n + 1)) ~n ○ やっぱり昨日のパターンだけバグってます。</unsigned></unsigned></unsigned></unsigned>

続 Fedora8の調子が悪い

うわー、developmentリポジトリを混ぜてました、、、。 developmentって開発ツール用かと思ってましたが、開発バージョンってことなんですね。 同じ問題に遭遇してる人がいるみたいですが、Fedora8でpirutにリポジトリ編集機能が付いたので今回初めて弄った…

Fedora8の調子が悪い

Fedora8にしてからトラブル続きなんですが、今日アップデートしたらさらにおかしくなりました。 なぜか既定のカーネルがFedora9(2.6.25-0.64.rc2.git5.fc9)になっていて起動できない マウスカーソルのホットスポットがずれている(しかもズレ方が変化する) gc…

続 releaseツール

GNU tar互換形式の出力でパスの記録方式が間違っていたのを修正しました。 差分 これでtar.bz2の出力が動くようになったので追加しました。 差分 ISOイメージにはZIPとtar.bz2も追加するようにしています。

gcc4.3.0も変?

C++

unsigned foo(int n) { return ~static_cast<unsigned>(-(n + 1)); } に対して、 .file "foo.cpp" .text .globl _Z3fooi .type _Z3fooi, @function _Z3fooi: .LFB2: pushl %ebp .LCFI0: movl %esp, %ebp .LCFI1: movl 8(%ebp), %eax notl %eax popl %ebp ret .LFE2: .s</unsigned>…

releaseツール

今日はちょっと寄り道して、リリース用のツールを作りました。 tools/release/ Hamigaki.Archiversを使って無駄に自前でアーカイブしてみました。 ↓動作はこんな感じです。 trunkからエクスポート ドキュメントのビルド 中間ファイルの削除 regression-logs.…

BBv2 Tutorial その6

「プロジェクトの利用」、「ビルド済みライブラリ」のセクションを追加しました。 今日の差分 ビルドしたものはこちら。 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html 「ビルド済みライブラリ」の例は力技になっているのであまり良くないですねぇ。 …

BBv2 Tutorial その5

今日はあまり進みませんでした。 「単体テスト」のセクションを追加しただけです。 今日の差分 ビルドしたものはこちら。 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html 文法的なことはなるべく書かない方針で書いてきたんですけど、かなり無理があり…

BBv2 Tutorial その4

「プロジェクト設定」、「ターゲットのインストール」のセクションを追加しました。 今日の差分 ビルドしたものはこちら。 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html 読みにくかったのでコードの部分だけスタイルシートを適用しました。 ELF環境…

BBv2 Tutorial その3

「ライブラリのリンク」、「サブプロジェクト」のセクションを追加しました。 今日の差分 ビルドしたものはこちら。 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html う〜ん、説明する順序やどこまで書くべきかとか難しいですね。

BBv2 Tutorial その2

「環境設定」、「簡単な使い方」、「ライブラリのビルド」のセクションを追加しました。 今日の差分 とりあえずビルドしたものをこっちに置きました。 http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html ドキュメントそのものよりドキュメントをビルドす…

続 runテストを再実行する方法

昨日のよりもっと簡単な方法を見つけました。 import notfile ; import testing ; unit-test hello : hello.cpp ; notfile rm-temps : @testing.RmTemps : hello ; notfileは名前の通りファイルでないターゲットを作成するルールで、testing.RmTempsはソース…

BBv2 Tutorial その1

BBv2のTutorialを書き始めました。 bbv2-tutorial.xml 最初の例題はこれ。 EXIT Hello, world! ;

runテストを再実行する方法

BBv2で作成した実行ファイルを起動するのには、通常testingモジュールのrunルールを使うと思います。 ただし、これは自動単体テスト向けの機能なので、実行ファイルが更新されない限り再度実行されることはありません。 これはGUIプログラムを単に起動したい…

virtual-target

virtual-targetのドキュメントを追加しました。 http://hamigaki.sourceforge.jp/doc/html/bbv2/reference/virtual-target/virtual-target.html virtual-targetはabstract-targetクラスのgenerateメソッドが生成するものです。 abstract-targetは「fooという…

type.register

libルールは見つかるのに、exeルールやobjルールの定義が見当たらないなぁと思って探していたら、type.registerの中にありました。 rule register ( type : suffixes * : base-type ? ) { # 〜中略〜 { # 〜中略〜 main-rule-name = [ type-to-rule-name $(t…

jam2bbk

jamモジュールからclassとruleの宣言を抜き出して、BoostBook(実質DocBook)形式で吐き出すツールを作成しました。 jam2bbk.cpp パースとXMLの出力はすごくテキトーです。 Hamigaki.Bjamを使えば完全なパースができるんですが、どのファイルで何が定義された…

typed-target

引数/戻り値の説明とbasic-target/typed-targetのリファレンスを追加しました。 http://hamigaki.sourceforge.jp/doc/html/bbv2/reference/targets/basic-target.html http://hamigaki.sourceforge.jp/doc/html/bbv2/reference/targets/typed-target.html Do…

MinGW for Vista

そういえばMinGWのVista対応版バイナリが出てました。 http://sourceforge.net/forum/forum.php?forum_id=782021 バージョンは、 gcc version 3.4.5 (mingw-vista special) です。 バージョン番号以外にソースに変更点はなくて、ビルド時に__USE_MINGW_ACCES…

project-target

今日はFedora8のアップデートに何度も失敗したせいでほとんど進んでません。 パッケージアップデータがよくハングするので、少しずつ選んでアップデートするはめに、、、。 アップデート中はBBv2のjamファイルを読んでました。 さて、BBv2のtutorialを用意し…

launch_detached()

プロセスを親から切り離した状態(デタッチ)で起動するlaunch_detached()を実装しました。 差分 使い方はこんな感じで一発関数を呼ぶだけです。 #include <hamigaki/process/child.hpp> namespace proc = hamigaki::process; int main() { // メモ帳を起動、終了は待たない proc::launch_d</hamigaki/process/child.hpp>…

環境変数の比較

action_game.exeのテストプレイで使ったプロセス起動処理をHamigaki.Processに追加しています。 で、その前にWindowsの環境変数名は大文字/小文字を区別しないので、その対策を追加しました。 差分 環境変数の名前はCompareStringA(LOCALE_USER_DEFAULT, NOR…

日本語ロケールでassertion failedになる件

昨日の日本語ロケールだとBoost.Xpressiveがassert落ちする件を調べてみました。 落ちるのはココです。 template<typename Char> struct cpp_regex_traits_base<Char, 1> { protected: void imbue(std::locale const &loc) { int i = 0; Char allchars[UCHAR_MAX + 1]; for(i = 0; i </char,></typename>…