<div dir="ltr"><div>I went through the GSOC trac, most of the Haskell IRC logs, and the Haskell idea reddit. So now I have a list of ideas (grouped by category):<br><br>infrastructure:<br><ul><li>C++ integration (e.g. finish <a href="https://github.com/ofan/hqt" target="_blank">https://github.com/ofan/hqt</a> <a href="https://github.com/ofan/fficxx" target="_blank">https://github.com/ofan/fficxx</a> )</li>

<li>Ada/Python/... integration</li><li>gobject bindings (gtk2hs stuff)</li><li>cabal improvements - Haddock flags (<a href="https://github.com/haskell/cabal/issues/1585" target="_blank">https://github.com/haskell/cabal/issues/1585</a>), custom setup improvements (<a href="https://github.com/haskell/cabal/issues/948" target="_blank">https://github.com/haskell/cabal/issues/948</a>), some sort of plugin system for tests/docs/other random things (BNFC), clean up and merge parallel build code, package management, ...</li>

<li>Hackage2 improvements - voting, rewrite auth system, speed up reverse-deps enough to enable on main site, package wiki/comments, deprecations w/ links, create haddock even if the package doesn't build, ...</li><li>

scale up Hoogle so it can search all of hackage by default</li><li>scoutess work (integration with with hackage, ghc snapshots, ...)</li></ul>libraries:<br><ul><li>email/PIM library (MIME, imap, ical, XMPP, WebDav, ... probably make use of a lot of old HaskellNet code)</li>

<li>comprehensive Date/Time API - there are lots of Hackage libs, but none do e.g. internationalization - aim to be backwards-compatible with time</li><li>highlight code using inferred types - HsColour + haskell-src/type-exts ? (maybe not enough for a GSOC?)</li>

<li>implement miscellaneous concurrent data structures</li><li>darcs improvements (performance, storage, ...)</li><li>fix pandoc conversion issues</li><li>... (there were a lot of other libraries, but one of the blog posts said not do a library project because hackage already has too many and designing a good API from scratch is hard)</li>

</ul>GHC project ideas:<br><ul><li>package improvements - finish multiple package stuff, sign and verify packages, ...</li><li>port GHC build system to shake (faster, progress indicators, written in Haskell, ...)</li><li>

implement something like ccache or distcc for GHC</li><li>rewrite the GHC pattern overlap/exhaustiveness analysis (<a href="https://ghc.haskell.org/trac/ghc/ticket/595" target="_blank">https://ghc.haskell.org/trac/ghc/ticket/595</a>, 10 years old!)</li>

<li>make GHC deterministic (refactor Unique + other nondeterminism sources, make a pure parser and/or typechecker API)</li><li>port Hat to the GHC api and integrate it into GHCi's :trace mode so omniscient debugging is available by default</li>

<li>implement typed core as another IL, either above or below old-core ("Types are Calling Conventions" paper)</li><li>other type-level programming library/project (units, extended arithmetic solver, true dependent types, linear types, ...)</li>

</ul>GHC backend-ish:<br><ul><li>customizable RTS - remove unused RTS functions, write your own concurrency primitives, ...</li><li>resurrect Immix patches and try to get incremental GC</li><li>implement loop unrolling in GHC</li>

<li>allow LLVM phases to be written in Haskell (bindings already used, so it's just dealing with the FFI's and GHC's options handling...)</li></ul>I've tried putting these by two people (edwardk and carter) on #haskell-gsoc, and they both said that all the GHC ideas are too hard for a GSOC. Can I get a third opinion? <br>
<br>Also, please tell me if I left anything important out (I see a Yi proposal on this mailing list; that would be in the ... in libraries).<br><br></div>Finally, some sort of idea of which ideas are most likely to get accepted would be helpful. <a href="https://docs.google.com/forms/d/1rEobhHwFpjzPnra9L1TmrozWNFFyAVNPmdUMCcT--3Q/viewanalytics">https://docs.google.com/forms/d/1rEobhHwFpjzPnra9L1TmrozWNFFyAVNPmdUMCcT--3Q/viewanalytics</a> says the top priorities are GHC, Cabal, and Hackage, so since GHC is (apparently) out I guess that means I should look more at my Cabal, Hackage, and Hoogle ideas... is this sensible?<br>
<div><br>-- Allan Gardner<br></div></div>