* CbC/GCCのリポジトリ管理方法 Continuation based C のGCC実装用には二つのリポジトリを仕様する o CbC/GCC 実際にCbCを実装したGCCの本体 o CbC/GCC_original オリジナルのGCC。本家のgcc-core-4.x.yをそのままリポジトリ化。 GCC_origのほうはGCCがリリースされる度にバージョンアップさせ、コミットする。 さらにその変更をCbC用のGCCリポジトリにpushする 本家 release GCC_orig GCC | | | | 4.4.0 4.4.0-cbc 4.4.1 up | | | --> 4.4.1 push | | | --> 4.4.1-cbc | | | 4.4.2 up | | | --> 4.4.2 push | | | --> 4.4.2-cbc | | | * 本家GCCのニューリリース時の対応 GCC_originalをアップデート $ cd $HOME $ wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.4.1/gcc-core-4.x.y.tar.gz $ tar xvf gcc-core-4.x.y.tar.gz $ cd gcc-4.x.y $ cd ${HG_REPO}/CbC/GCC_original $ rm -rf * $ mv ${HOME}/gcc-4.4.1/* ./ $ hg commit GCC_originalが最新のGCCになったら、その変更をGCCにpushする GCC_originalからGCCへのpush $ cd ${HOME} $ mkdir workspace;cd workspace # 作業ディレクトリ作成 $ hg clone ${HG}/one/CbC/GCC # CbC用のGCCをクローン $ cd GCC $ hg incoming ${HG}/one/CbC/GCC_original # チェック $ hg pull ${HG}/one/CbC/GCC_original # pull この時点で、場合によっては衝突が起こる。ほとんどはgcc/calls.cの中だと 思われる。また、expand_call関数が大幅に変更されたならgcc/cbc-goto.hも 同じように書き換える必要があるかもしれない。 がんばって動くまで修正したら $ hg commit $ hg push ${HG}/one/CbC/GCC # push これで最新版に更新される