Changes between Version 56 and Version 57 of Commentary/Compiler/NewCodeGen


Ignore:
Timestamp:
May 31, 2010 12:47:22 PM (5 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/NewCodeGen

    v56 v57  
    2626
    2727 * Expand the capability of the new pipeline so that it does native code generation too, and we can ultimately discard the existing code generators.  The design of this stage is here: [wiki:Commentary/Compiler/IntegratedCodeGen]
     28
     29
     30== Workflow for the new code generator and Hoopl ==
     31
     32We have the following repositories:
     33
     34 * HEAD: the main GHC Darcs repo. Location: `http://darcs.haskell.org/ghc`
     35
     36 * !HooplMaster: the master Hoopl Git repository.  Location: `tufts somewhere`
     37
     38 * !HooplMirror: a Darcs mirror of the !HooplMaster repo (`tufts somewhere`).  Any push
     39   to !HooplMaster is automatically mirrored to !HooplMirror.  Do not (ever)
     40   push to !HooplMirror.
     41
     42 * !HooplLag: a Darcs repo that is guaranteed to work with GHC HEAD.    It is
     43   not automatically updated by pushes to !HooplMaster.  Instead a manual
     44   process (below) updates it; hence "lag". 
     45   Location: `http://darcs.haskell.org/packages/hoopl`.
     46
     47
     48Normal GHC developers, who are uniniterested in Hoopl, ignore all
     49this.  If they download HEAD, and then do `darcs-all get` they'll get
     50!HooplLag, which is always guaranteed to work with HEAD.
     51
     52Developers who work on GHC and also need to modify Hoopl have a more torrid time.
     53
     54 * Create two trees:
     55   * Development tree (mixed Darcs and Git):
     56     * Download HEAD and `darcs-all get` 
     57     * Remove `libraries/hoopl` and do a `git clone` of !HooplMaster instead.
     58   * Validation tree (pure Darcs):
     59     * Download HEAD and `darcs-all get` 
     60
     61 * Hack away in the development tree.  You can pull freely:
     62     * Subsequent `darcs-all pull` operations will [check!] no-op in the `libraries/hoopl` directory.
     63     * For `hoopl` you have to manually do `git pull` in `libraries/hoopl to pull patches from !HooplMaster.
     64
     65 * Record Darcs patches and Hoopl patches.
     66
     67 * Validate changes as follows:
     68   * Run validate in the development tree
     69   * `git push` patches to !HooplMaster
     70   * Wait for !HooplMirror to see these patches
     71   * In the validation tree,
     72       * `darcs-all pull` patches from the development tree (this will [check!]
     73         no-op for `hoopl`, because the dev-tree has a Git repo)
     74       * Manually pull patches from !HooplMirror
     75   * Validate in the validation tree
     76   * Push the validation tree to HEAD and the !HooplLag Darcs repo
     77
     78
     79
     80
     81
     82
    2883
    2984