Licensing: make sure you are familiar with GHC's Licensing. Unless you say otherwise, we will assume that if you submit a contribution to GHC, then you intend to supply it to us under the same license as the existing code. However, we do not ask for copyright attribution; you retain copyright on any contributions you make, so feel free to add your copyright to the top of any file in which you make non-trivial changes.
ghc-artefact-nix is a Nix expression, which downloads a recent artifact from gitlab.haskell.org and enters a nix shell with the artefact available. This is a quick way to try some code out on a recent HEAD or a merge request.
Newcomers to GHC
This section is intended to have the details you will need to get rolling. In addition, note the building guide, working conventions, commentary and debugging pages have great information that will come in handy while you're working on your first patch(es) and are always available from the sidebar.
If you have any questions along the way don't hesitate to reach out to the community. There are people on the mailing lists and IRC who will gladly help you, though you may need to be patient. Don't forget all GHC developers are still learning; your question is never too silly to ask.
While you are waiting for your build to finish, orient yourself to the general architecture of GHC. This article is written by two of the chief architects of GHC, Simon Marlow and Simon Peyton-Jones, is excellent and current (2012).
After a successful build, you should have your brand new compiler in ./inplace/bin/ghc-stage2. (GHCi is launched with ./inplace/bin/ghc-stage2 --interactive). Try it out.
Finding a ticket
Now that you can build GHC, let's get hacking. But first, you'll need to identify a goal. GHC's GitLab tickets are a great place to find starting points. You are encouraged to ask for a starting point on IRC or the ghc-devsmailing list. There someone familiar with the process can help you find a ticket that matches your expertise and help you when you get stuck.
If you want to get a taste for possible starting tasks, the newcomer label collects tickets that appear to be "low-hanging fruit" -- things that might be reasonable for a newcomer to GHC hacking. Of course, we can't ever be sure of how hard a task is before doing it, so apologies if one of these is too hard.