開発ガイドライン

Target Environment

主なターゲット

  • Fedora Linuxの最新版

(テストはしないが)動くといい環境

  • Fedora Linux 以外のLinux
  • Cygwin
  • その他のUNIX環境

依存ライブラリを増やすときは、Cygwinでも使える(パッケージが用意されているか、またはビルドできるか)確認してください。

コンパイラは gcc です。gcc拡張機能を使っても構いません。

CPUはi686以降またはx86-64。SSE2演算を使っても構いませんが、今のところ64ビット限定になるような機能や、SSE2より新しい機能は使いません。

Coding Style

  • タブは8カラム、インデントは2
  • クラス/構造体の名前はPascalCase
  • 思考エンジンがデータとして利用する構造体で、大量に生成するものはPOD。実行速度最優先

    思考エンジン以外はC++クラスでもOK。思考エンジンでも関数オブジェクトやテンプレートを使っても構いません。

  • 思考エンジン内の関数は頭2文字 (または1 word) でクラスを表す
  • 関数のコメントはJavadocスタイル. http://java.sun.com/j2se/javadoc/
  • コメントは日本語または/および英語

リポジトリの使い方

(2011.8 更新。)

Daemonshogi Projectでは, ソースコードは git で管理しています。

メジャーバージョンごとに枝 (branch) を作って開発を進めます。trunk はチャレンジな課題に取り組みます。とはいうものの、できるだけリポジトリの健全性を維持してください。

  • コミットする前にコンパイルが通るか確認する
  • 大きなパッチをコミットしない

    できるだけ、変更したい意図ごとに分けてコミットするようにしてください。

  • 大きな変更になるときは、少しずつコミットしつつ、完成するまで #ifdef ~ #endif で囲う
  • コミットは re-base してから