Difference between revisions of "HacFreiburg2017/ListOfProjects"
StefanWehr (talk | contribs) (Created page with "* purescript compiler, type and analysis related topics * ghcjs, some language server protocol implementation * Spock, PureScript * Snowdrift.coop * hayoo!, hunt, ghc/haddock ...") |
|||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | |||
− | * purescript compiler, type and analysis related topics |
||
+ | == Beginner Projects == |
||
− | * ghcjs, some language server protocol implementation |
||
+ | |||
− | * Spock, PureScript |
||
+ | * https://github.com/jaspervdj/haskell-beginners-projects |
||
− | * Snowdrift.coop |
||
+ | |||
− | * hayoo!, hunt, ghc/haddock |
||
+ | == ghc/haddock (Alex B.) == |
||
− | * simplexhc, ghc |
||
+ | |||
− | * Not sure right now. Probably guide (https://guide.aelve.com/) |
||
+ | === Revamp the haddock type-class specializer === |
||
− | * I'm at beginner level, so would be willing to join to a project that matches my current skills. |
||
+ | |||
− | * In general: projects using Scala, Docker, Microservices... |
||
+ | For convenient display of type-class instances haddock inserts the instance head into the type-class methods type signatures. However in the current implementation haddock does no alpha-conversion on type variables if they are not bound by forall. See https://github.com/haskell/haddock/issues/654 for an example. |
||
+ | |||
+ | This is an easy starter ticket. Changes would be pretty local `rename` (see https://github.com/haskell/haddock/blob/master/haddock-api/src/Haddock/Interface/Specialize.hs#L229) and could be done in a few hours. If you are interested in this task talk to Alex Biehl. |
||
+ | |||
+ | === Handle `pattern` exports === |
||
+ | |||
+ | The PatternSynonyms extension introduced `pattern` exports which can be used to export single constructors of a data type without the data type itself. Currently when haddock sees a name in an export list it tries to find its corresponding declaration. From an ASTs viewpoint single data constructors do not have a declaration. Instead they are nested in its owning data declaration. See https://github.com/haskell/haddock/issues/653 for an example. |
||
+ | |||
+ | A fix would try to beef up `findDecl` to handle the case of a data constructor name by returning the owning data declaration (see https://github.com/haskell/haddock/blob/master/haddock-api/src/Haddock/Interface/Create.hs#L701). `mkExportDecl` then would prepare the constructor for rendering. If you are interested in this task talk to Alex Biehl. |
||
+ | |||
+ | === Finish --show-interface === |
||
+ | |||
+ | When debugging it is commonly needed to look into the generated haddock-interface files. https://github.com/haskell/haddock/pull/645 laid the groundwork for such a feature. It adds a command line parameter which dumps an interface file to json. If you are interested in this task talk to Alex Biehl. |
||
+ | |||
+ | == Qua-Kit (Artem) == |
||
+ | |||
+ | https://github.com/achirkin/qua-kit |
||
+ | |||
+ | == Writing Documentation for Haskell Packages (David, Franz) == |
||
+ | |||
+ | * http://hackage.haskell.org/package/monad-control |
||
+ | * http://hackage.haskell.org/package/trifecta |
||
+ | |||
+ | == Spock (Alex T.) == |
||
+ | |||
+ | * Write Documentation / Examples |
||
+ | * https://github.com/agrafix/Spock |
||
+ | |||
+ | == yarn2nix / yarn-lock == |
||
+ | |||
+ | @Profpatsch (twitter), Profpatsch (#freenode) |
||
+ | |||
+ | I’m writing a parser for yarn.lock files (megaparsec); they are parsed into a multi-keyed map, decycled and then put into nix files. |
||
+ | Git dependencies are another WIP, since a prefetch pass is needed. |
||
+ | |||
+ | * https://github.com/Profpatsch/yarn-lock |
||
+ | * https://github.com/Profpatsch/yarn2nix/ |
Latest revision as of 14:33, 4 August 2017
Beginner Projects
ghc/haddock (Alex B.)
Revamp the haddock type-class specializer
For convenient display of type-class instances haddock inserts the instance head into the type-class methods type signatures. However in the current implementation haddock does no alpha-conversion on type variables if they are not bound by forall. See https://github.com/haskell/haddock/issues/654 for an example.
This is an easy starter ticket. Changes would be pretty local `rename` (see https://github.com/haskell/haddock/blob/master/haddock-api/src/Haddock/Interface/Specialize.hs#L229) and could be done in a few hours. If you are interested in this task talk to Alex Biehl.
Handle `pattern` exports
The PatternSynonyms extension introduced `pattern` exports which can be used to export single constructors of a data type without the data type itself. Currently when haddock sees a name in an export list it tries to find its corresponding declaration. From an ASTs viewpoint single data constructors do not have a declaration. Instead they are nested in its owning data declaration. See https://github.com/haskell/haddock/issues/653 for an example.
A fix would try to beef up `findDecl` to handle the case of a data constructor name by returning the owning data declaration (see https://github.com/haskell/haddock/blob/master/haddock-api/src/Haddock/Interface/Create.hs#L701). `mkExportDecl` then would prepare the constructor for rendering. If you are interested in this task talk to Alex Biehl.
Finish --show-interface
When debugging it is commonly needed to look into the generated haddock-interface files. https://github.com/haskell/haddock/pull/645 laid the groundwork for such a feature. It adds a command line parameter which dumps an interface file to json. If you are interested in this task talk to Alex Biehl.
Qua-Kit (Artem)
https://github.com/achirkin/qua-kit
Writing Documentation for Haskell Packages (David, Franz)
Spock (Alex T.)
- Write Documentation / Examples
- https://github.com/agrafix/Spock
yarn2nix / yarn-lock
@Profpatsch (twitter), Profpatsch (#freenode)
I’m writing a parser for yarn.lock files (megaparsec); they are parsed into a multi-keyed map, decycled and then put into nix files. Git dependencies are another WIP, since a prefetch pass is needed.