view CbC-REPOSITORY @ 138:fc828634a951

merge
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 08 Nov 2018 14:17:14 +0900
parents cc07adb17855
children
line wrap: on
line source


 * 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
これで最新版に更新される