Lexer: Alternate Layout Rule injects actual not virtual braces
[ghc.git] / HACKING.md
index 4fe4d2c..cb68889 100644 (file)
@@ -10,14 +10,14 @@ The GHC Developer's Wiki
 
 The home for GHC hackers is our Trac instance, located here:
 
-<http://hackage.haskell.org/trac/ghc>
+<http://ghc.haskell.org/trac/ghc>
 
 From here, you can file bugs (or look them up,) use the wiki, view the
 `git` history, among other things. Of particular note is the building
 page, which has the high level overview of the build process and how
 to get the source:
 
-<http://hackage.haskell.org/trac/ghc/wiki/Building>
+<http://ghc.haskell.org/trac/ghc/wiki/Building>
 
 Contributing patches to GHC in a hurry
 ======================================
@@ -25,14 +25,19 @@ Contributing patches to GHC in a hurry
 Make sure your system has the necessary tools to compile GHC. You can
 find an overview here:
 
-<http://hackage.haskell.org/trac/ghc/wiki/Building/Preparation>
+<http://ghc.haskell.org/trac/ghc/wiki/Building/Preparation>
 
 Next, clone the repository and all the associated libraries:
 
 ```
-$ git clone http://darcs.haskell.org/ghc.git/
-$ cd ghc
-$ ./sync-all --testsuite get
+$ git clone --recursive git://git.haskell.org/ghc.git
+```
+
+On Windows, you need an extra repository containing some build tools.
+These can be downloaded for you by configure. This only needs to be done once by running:
+
+```
+$ ./configure --enable-tarballs-autodownload
 ```
 
 First copy `mk/build.mk.sample` to `mk/build.mk` and ensure it has
@@ -44,13 +49,11 @@ $ cp mk/build.mk.sample mk/build.mk
 $ ... double-check mk/build.mk ...
 ```
 
-Now build. If you have multiple cores, **you should always use them to
-speed up compilation**:
+Now build. The convenient `validate` script will build the tree in a way which
+is both quick to build and consistent with our testsuite,
 
 ```
-$ ./boot
-$ ./configure
-$ make -jN # <N> is the number of cores you have.
+$ ./validate --build-only
 ```
 
 You can use the `./inplace/bin/ghc-stage2` binary to play with the
@@ -58,26 +61,13 @@ newly built compiler.
 
 Now, hack on your copy and rebuild (with `make`) as necessary.
 
-Then start by making your commits however you want. When you're done, you
-can use `git format-patch` to create a series of `.patch` files you
-can give to us. In this example, we'll assume I'm on a `bugfix` branch
-and want to submit my patches:
-
-```
-$ git branch
-* bugfix
-  master
-$ git format-patch master -o patches
-...
-$
-```
-
-Now create a trac ticket:
-
-<http://hackage.haskell.org/trac/ghc/newticket?type=bug>
+Then start by making your commits however you want. When you're done, you can submit
+ a pull request on Github for small changes. For larger changes the patch needs to be
+ submitted to [Phabricator](https://phabricator.haskell.org/) for code review.
+ The GHC Trac Wiki has a good summary for the [overall process](https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/FixingBugs)
+ as well as a guide on 
+ [how to use Phabricator/arcanist](https://ghc.haskell.org/trac/ghc/wiki/Phabricator).
 
-And attach the files in your `patches/` directory. Set the status from
-*new* to *patch* and we'll review it as soon as we can!
 
 Useful links:
 =============
@@ -85,22 +75,22 @@ Useful links:
 An overview of things like using git, the release process, filing bugs
 and more can be located here:
 
-<http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions>
+<http://ghc.haskell.org/trac/ghc/wiki/WorkingConventions>
 
 You can find our coding conventions for the compiler and RTS here:
 
-<http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle>
-<http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Conventions>
+<http://ghc.haskell.org/trac/ghc/wiki/Commentary/CodingStyle>
+<http://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Conventions>
 
 A high level overview of the bug tracker:
 
-<http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions/BugTracker>
+<http://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/BugTracker>
 
 If you're going to contribute regularly, **learning how to use the
 build system is important** and will save you lots of time. You should
 read over this page carefully:
 
-<http://hackage.haskell.org/trac/ghc/wiki/Building/Using>
+<http://ghc.haskell.org/trac/ghc/wiki/Building/Using>
 
 How to communicate with us
 ==========================