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


Ignore:
Timestamp:
May 31, 2010 12:47:22 PM (4 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