... | ... | @@ -59,139 +59,149 @@ If you have any questions along the way don't hesitate to reach out to the commu |
|
|
### Finding a ticket
|
|
|
|
|
|
|
|
|
Now that you can build GHC, let's get hacking. But first, you'll need to identify a goal. GHC's Trac tickets are a great place to find starting points. You are encouraged to ask for a starting point on IRC or the `ghc-devs`[mailing list](mailing-lists-and-irc). There someone familiar with the process can help you find a ticket that matches your expertise and help you when you get stuck.
|
|
|
|
|
|
Now that you can build GHC, let's get hacking. But first, you'll need to identify a goal. GHC's Trac tickets are a great place to find starting points. You are encouraged to ask for a starting point on IRC or the `ghc-devs` [mailing list](mailing-lists-and-irc). 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, below is a list of 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.
|
|
|
|
|
|
|
|
|
|
|
|
You can add tickets to this list by giving them the `newcomer` Trac keyword.
|
|
|
|
|
|
|
|
|
|
|
|
**Bugs:**
|
|
|
|
|
|
<table><tr><th>[\#8316](https://gitlab.haskell.org//ghc/ghc/issues/8316)</th>
|
|
|
<table><tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/8316">#8316</a></th>
|
|
|
<td>GHCi debugger panics when trying force a certain variable</td></tr>
|
|
|
<tr><th>[\#10346](https://gitlab.haskell.org//ghc/ghc/issues/10346)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/10346">#10346</a></th>
|
|
|
<td>Cross-module SpecConstr</td></tr>
|
|
|
<tr><th>[\#11068](https://gitlab.haskell.org//ghc/ghc/issues/11068)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11068">#11068</a></th>
|
|
|
<td>Make Generic/Generic1 methods inlinable</td></tr>
|
|
|
<tr><th>[\#12488](https://gitlab.haskell.org//ghc/ghc/issues/12488)</th>
|
|
|
<td>Explicit namespaces doesn't enforce namespaces</td></tr>
|
|
|
<tr><th>[\#12576](https://gitlab.haskell.org//ghc/ghc/issues/12576)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12488">#12488</a></th>
|
|
|
<td>Explicit namespaces doesn't enforce namespaces</td></tr>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12576">#12576</a></th>
|
|
|
<td>Large Address space is not supported on Windows</td></tr>
|
|
|
<tr><th>[\#12636](https://gitlab.haskell.org//ghc/ghc/issues/12636)</th>
|
|
|
<td>ProfHeap's printf modifiers are incorrect</td></tr>
|
|
|
<tr><th>[\#13165](https://gitlab.haskell.org//ghc/ghc/issues/13165)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12636">#12636</a></th>
|
|
|
<td>ProfHeap's printf modifiers are incorrect</td></tr>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13165">#13165</a></th>
|
|
|
<td>Speed up the RTS hash table</td></tr>
|
|
|
<tr><th>[\#13193](https://gitlab.haskell.org//ghc/ghc/issues/13193)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13193">#13193</a></th>
|
|
|
<td>Integer (gmp) performance regression?</td></tr>
|
|
|
<tr><th>[\#13452](https://gitlab.haskell.org//ghc/ghc/issues/13452)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13452">#13452</a></th>
|
|
|
<td>Lock .tix file</td></tr>
|
|
|
<tr><th>[\#13795](https://gitlab.haskell.org//ghc/ghc/issues/13795)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13795">#13795</a></th>
|
|
|
<td>:kind! is not expanding type synonyms anymore</td></tr>
|
|
|
<tr><th>[\#14899](https://gitlab.haskell.org//ghc/ghc/issues/14899)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14899">#14899</a></th>
|
|
|
<td>Significant compilation time regression between 8.4 and HEAD due to coverage checking</td></tr>
|
|
|
<tr><th>[\#15252](https://gitlab.haskell.org//ghc/ghc/issues/15252)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15252">#15252</a></th>
|
|
|
<td>syn_arg_wraps and syn_res_wrap are only populated after typechecking</td></tr>
|
|
|
<tr><th>[\#15402](https://gitlab.haskell.org//ghc/ghc/issues/15402)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15402">#15402</a></th>
|
|
|
<td>The settings and behaviour of idle GC are very confusing</td></tr>
|
|
|
<tr><th>[\#15540](https://gitlab.haskell.org//ghc/ghc/issues/15540)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15540">#15540</a></th>
|
|
|
<td>GHCi does not follow the XDG Base Directory Specification</td></tr>
|
|
|
<tr><th>[\#15603](https://gitlab.haskell.org//ghc/ghc/issues/15603)</th>
|
|
|
<td>ref6 example from StaticPointers documentation doesn't type check</td></tr>
|
|
|
<tr><th>[\#15660](https://gitlab.haskell.org//ghc/ghc/issues/15660)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15603">#15603</a></th>
|
|
|
<td>ref6 example from StaticPointers documentation doesn't type check</td></tr>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15660">#15660</a></th>
|
|
|
<td>source file modify race leads to inconsistent error message</td></tr>
|
|
|
<tr><th>[\#15784](https://gitlab.haskell.org//ghc/ghc/issues/15784)</th>
|
|
|
<td>:doc shouldn't report \<has no documentation\> for a data constructor when it can show docs for the type constructor of the same name and type</td></tr>
|
|
|
<tr><th>[\#15820](https://gitlab.haskell.org//ghc/ghc/issues/15820)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15784">#15784</a></th>
|
|
|
<td>:doc shouldn't report <has no documentation> for a data constructor when it can show docs for the type constructor of the same name and type</td></tr>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15820">#15820</a></th>
|
|
|
<td>Document the proposals process in the GHC manual</td></tr>
|
|
|
<tr><th>[\#15836](https://gitlab.haskell.org//ghc/ghc/issues/15836)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15836">#15836</a></th>
|
|
|
<td>ghc-in-ghci script fails when there is a Main.hs in the top-level directory</td></tr>
|
|
|
<tr><th>[\#15839](https://gitlab.haskell.org//ghc/ghc/issues/15839)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15839">#15839</a></th>
|
|
|
<td>DerivingStrategies defaulting warning has no associated enable/suppress flag</td></tr>
|
|
|
<tr><th>[\#15843](https://gitlab.haskell.org//ghc/ghc/issues/15843)</th>
|
|
|
<td>Tuple sections can't be quoted</td></tr>
|
|
|
<tr><th>[\#15932](https://gitlab.haskell.org//ghc/ghc/issues/15932)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15843">#15843</a></th>
|
|
|
<td>Tuple sections can't be quoted</td></tr>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15932">#15932</a></th>
|
|
|
<td>DeriveFunctor and GeneralizedNewtypeDeriving instances never reporting as covered</td></tr>
|
|
|
<tr><th>[\#15935](https://gitlab.haskell.org//ghc/ghc/issues/15935)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15935">#15935</a></th>
|
|
|
<td>TYPE is not generated by genprimops</td></tr>
|
|
|
<tr><th>[\#15963](https://gitlab.haskell.org//ghc/ghc/issues/15963)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15963">#15963</a></th>
|
|
|
<td>Test suite should report timeouts as timeouts</td></tr>
|
|
|
<tr><th>[\#15973](https://gitlab.haskell.org//ghc/ghc/issues/15973)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15973">#15973</a></th>
|
|
|
<td>Int used to represent target integer literals</td></tr>
|
|
|
<tr><th>[\#16167](https://gitlab.haskell.org//ghc/ghc/issues/16167)</th>
|
|
|
<td>-ddump-json doesn't work with -e</td></tr>
|
|
|
<tr><th>[\#16196](https://gitlab.haskell.org//ghc/ghc/issues/16196)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16167">#16167</a></th>
|
|
|
<td>-ddump-json doesn't work with -e</td></tr>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16196">#16196</a></th>
|
|
|
<td>Update README.md to reflect gitlab</td></tr>
|
|
|
<tr><th>[\#16235](https://gitlab.haskell.org//ghc/ghc/issues/16235)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16235">#16235</a></th>
|
|
|
<td>Hadrian devel2 builds Haddock</td></tr>
|
|
|
<tr><th>[\#16273](https://gitlab.haskell.org//ghc/ghc/issues/16273)</th>
|
|
|
<td>Hadrian turns on \`-Wno-unused-imports\` for text when using integer-simple</td></tr>
|
|
|
<tr><th>[\#16282](https://gitlab.haskell.org//ghc/ghc/issues/16282)</th>
|
|
|
<td>all-missed-specializations doesn't suggest warning</td></tr>
|
|
|
<tr><th>[\#16360](https://gitlab.haskell.org//ghc/ghc/issues/16360)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16273">#16273</a></th>
|
|
|
<td>Hadrian turns on `-Wno-unused-imports` for text when using integer-simple</td></tr>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16282">#16282</a></th>
|
|
|
<td>all-missed-specializations doesn't suggest warning</td></tr>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16360">#16360</a></th>
|
|
|
<td>GHC fails when GHC_PACKAGE_PATH contains trailing slash</td></tr></table>
|
|
|
|
|
|
|
|
|
**Feature requests:**
|
|
|
|
|
|
<table><tr><th>[\#7275](https://gitlab.haskell.org//ghc/ghc/issues/7275)</th>
|
|
|
<table><tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/7275">#7275</a></th>
|
|
|
<td>Give more detailed information about PINNED data in a heap profile</td></tr>
|
|
|
<tr><th>[\#8109](https://gitlab.haskell.org//ghc/ghc/issues/8109)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/8109">#8109</a></th>
|
|
|
<td>Type family patterns should support as-patterns.</td></tr>
|
|
|
<tr><th>[\#12178](https://gitlab.haskell.org//ghc/ghc/issues/12178)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12178">#12178</a></th>
|
|
|
<td>Allow inline pragmas on pattern synonyms</td></tr>
|
|
|
<tr><th>[\#12982](https://gitlab.haskell.org//ghc/ghc/issues/12982)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12982">#12982</a></th>
|
|
|
<td>Missed constant folding oportunities</td></tr>
|
|
|
<tr><th>[\#15461](https://gitlab.haskell.org//ghc/ghc/issues/15461)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15461">#15461</a></th>
|
|
|
<td>Machine accessible interface to GHCi</td></tr>
|
|
|
<tr><th>[\#15483](https://gitlab.haskell.org//ghc/ghc/issues/15483)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15483">#15483</a></th>
|
|
|
<td>ghc -M requires -dep-suffix for no good reason</td></tr>
|
|
|
<tr><th>[\#16155](https://gitlab.haskell.org//ghc/ghc/issues/16155)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16155">#16155</a></th>
|
|
|
<td>Pattern Synonym for Ratio</td></tr>
|
|
|
<tr><th>[\#16164](https://gitlab.haskell.org//ghc/ghc/issues/16164)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16164">#16164</a></th>
|
|
|
<td>Provide bitreverse primop</td></tr></table>
|
|
|
|
|
|
|
|
|
**Tasks:**
|
|
|
|
|
|
<table><tr><th>[\#4960](https://gitlab.haskell.org//ghc/ghc/issues/4960)</th>
|
|
|
<table><tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/4960">#4960</a></th>
|
|
|
<td>Better inlining test in CoreUnfold</td></tr>
|
|
|
<tr><th>[\#10068](https://gitlab.haskell.org//ghc/ghc/issues/10068)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/10068">#10068</a></th>
|
|
|
<td>Make the runtime reflection API for names, modules, locations more systematic</td></tr>
|
|
|
<tr><th>[\#11610](https://gitlab.haskell.org//ghc/ghc/issues/11610)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11610">#11610</a></th>
|
|
|
<td>Remove IEThingAll constructor from IE datatype</td></tr>
|
|
|
<tr><th>[\#12619](https://gitlab.haskell.org//ghc/ghc/issues/12619)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12619">#12619</a></th>
|
|
|
<td>Allow users guide to be built independently from GHC</td></tr>
|
|
|
<tr><th>[\#12687](https://gitlab.haskell.org//ghc/ghc/issues/12687)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12687">#12687</a></th>
|
|
|
<td>Add a flag to control constraint solving trace</td></tr>
|
|
|
<tr><th>[\#12822](https://gitlab.haskell.org//ghc/ghc/issues/12822)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12822">#12822</a></th>
|
|
|
<td>Cleanup GHC verbosity flags</td></tr>
|
|
|
<tr><th>[\#13698](https://gitlab.haskell.org//ghc/ghc/issues/13698)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13698">#13698</a></th>
|
|
|
<td>Add a more complete example for the special SPEC argument to the user guide</td></tr>
|
|
|
<tr><th>[\#13892](https://gitlab.haskell.org//ghc/ghc/issues/13892)</th>
|
|
|
<td>Add some benchmarks to nofib from Andras Kovac's Eff benchmarks</td></tr>
|
|
|
<tr><th>[\#13923](https://gitlab.haskell.org//ghc/ghc/issues/13923)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13892">#13892</a></th>
|
|
|
<td>Add some benchmarks to nofib from Andras Kovac's Eff benchmarks</td></tr>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13923">#13923</a></th>
|
|
|
<td>Add a suppression flag to stop Typeable bindings being emitted with -ddump-simpl</td></tr>
|
|
|
<tr><th>[\#14023](https://gitlab.haskell.org//ghc/ghc/issues/14023)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14023">#14023</a></th>
|
|
|
<td>Split up glasgow_exts.rst</td></tr>
|
|
|
<tr><th>[\#14099](https://gitlab.haskell.org//ghc/ghc/issues/14099)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14099">#14099</a></th>
|
|
|
<td>Document fundeps</td></tr>
|
|
|
<tr><th>[\#15651](https://gitlab.haskell.org//ghc/ghc/issues/15651)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15651">#15651</a></th>
|
|
|
<td>Check if some auto apply code is dead and remove if appropriate.</td></tr>
|
|
|
<tr><th>[\#15821](https://gitlab.haskell.org//ghc/ghc/issues/15821)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15821">#15821</a></th>
|
|
|
<td>Implement more constant folding for Naturals</td></tr>
|
|
|
<tr><th>[\#15929](https://gitlab.haskell.org//ghc/ghc/issues/15929)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15929">#15929</a></th>
|
|
|
<td>Explore whether adding XRay attributes to LLVM IR is worthwhile</td></tr>
|
|
|
<tr><th>[\#16052](https://gitlab.haskell.org//ghc/ghc/issues/16052)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16052">#16052</a></th>
|
|
|
<td>Core optimizations for memset on a small range</td></tr>
|
|
|
<tr><th>[\#16062](https://gitlab.haskell.org//ghc/ghc/issues/16062)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16062">#16062</a></th>
|
|
|
<td>Improve -dynamic-too progress messages</td></tr>
|
|
|
<tr><th>[\#16126](https://gitlab.haskell.org//ghc/ghc/issues/16126)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16126">#16126</a></th>
|
|
|
<td>Make -threaded the default</td></tr>
|
|
|
<tr><th>[\#16277](https://gitlab.haskell.org//ghc/ghc/issues/16277)</th>
|
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16277">#16277</a></th>
|
|
|
<td>Make JUnit report stdout/stderr in more cases</td></tr></table>
|
|
|
|
|
|
|
|
|
|
|
|
### Advice
|
|
|
|
|
|
|
|
|
- Read up on the steps you are expected to take for [contributing a patch to GHC](working-conventions/fixing-bugs).
|
|
|
|
|
|
- Need help? You can email the [ ghc-devs](http://www.haskell.org/mailman/listinfo/ghc-devs) list, or ask on IRC in `#ghc`.
|
... | ... | |