Hac 2007 II/Projects

From HaskellWiki
< Hac 2007 II
Revision as of 13:06, 17 December 2012 by Henk-Jan van Tuyl (talk | contribs) (Added Category:Community)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Generic Information

You can apply for an account and a project using the community server. Ping Igloo on #haskell-hac07 and he'll create the account. You can also apply for a project.

Once you have an account and a project, you upload a Darcs repository as follows. First, initialize your repository on the server:

 $ ssh community.haskell.org
 you@haskell:~$ cd /srv/code/yourproject
 you@haskell:/srv/code/yourproject$ darcs init

Then, log out and push your repository:

 $ darcs push community.haskell.org:/srv/code/yourproject

Who knows about what

A list of projects you've worked on or know fairly well:

Name Projects
dons ByteString, xmonad, Data.Binary, lambdabot, hmp3, curses, QuickCheck, HPC, hs-plugins, yi, nobench/nofib, ghc
Binkley ghc, darcs (a little bit)
skogsbaer (Stefan Wehr) hscurses, rhaskell
Pepe ghc (front end mostly), ghci debugger, cabal-install (very little)
ivant Functional MetaPost, xmonad
kolmodin (Lennart Kolmodin) Data.Binary, Gentoo Linux, Haste, hackport (hackage for Gentoo), hinotify, dbus-haskell
Heffalump (Ganesh Sittampalam) darcs patch theory
beschmi (Benedikt Schmidt) shim (emacs+ghc-api), darcs, xmonad
conal (Conal Elliott) functional reactive programming, DataDriven evaluation, tangible functional programming, graphics, embedded compilers, applicative functors, wxHaskell

Active Projects

Please feel free to describe your current project here!




help, version, fetch, configure, build, copy, register, haddock, sdist(package), clean, test

Developer interface


Naive interface

  cabal install xmonad
  cabal install xmonad-0.3

Basic principles: defaults should be such that it just works. Nothing should fail. It should be usefully descriptive, portable. Safe.

Hackers: dcoutts, nominolo, lennart, bjorn, dons

ByteString network

Change Network.* to use strict ByteStrings instead of Strings. It would also be nice to tidy up the #ifdef mess.

Things to work on:

  1. Add HUnit tests.
  2. Write an echo server example.


  1. Darcs repository -- Hackage ready version of the send and receive functions (Network.Socket.ByteString).
  2. Haddock documentation (could need some polish).
  3. Pushed to Hackage.

Current hacker(s): tibbe (Johan Tibell)


updating to 6.8, adding smp parallel testsuite driver.

Current hackers: dons


Testing, HPC coverage, code polishing., new layouts, notification support, scratchpad (a la ion)

Current hackers: dons, ganesh, conrad, nomeata, tibbe, beschmi

Probability monads

A really cool existing implementation: Probabilistic functional programming

Darcs repository and draft paper.

Things to work on:

  1. Get MaybeT into Hackage.
  2. Is WriterT really the right monad transformer? We want the join and bind operations, but not the rest of the MonadWriter type class.
  3. Should probabilities be represented as floats, fractions or a type class?
  4. Can this run fast enough to be useful?


  1. MaybeT docs and Darcs repository. This should have all the features of New_monads/MaybeT, except for the potentially ambiguous MonadPlus instance.
  2. MonadRandom is now documented and packaged.
  3. The Probability library:
    • Now builds using external MaybeT and MonadRandom.
    • Added support for representing probabilities as doubles and floats.
    • Merged Dist instances and helper code for Rand, BRand, DDist, and BDDist from example code and paper.
    • Documentation
  4. Rough versions of all packages in Hackage: MaybeT, MonadRandom, ProbabilityMonads

Current hacker(s): ekidd (Eric Kidd)

Yi hacking

Yi needs a lot of love and doesn't work out of the box for me. One of the nice thing to try to do is to add the collaborative editing plugin to yi (in the spirit of the Gobby editor).

  • vincenz: Definitely would like to add some usability input here regarding Gobby functionality (having used it and having found it lacking in several areas, areas that could be improved through reusing some darcs theory).
  • ivant: also need to add unicode support to yi
  • vincenz: Move away from System.Filepath to something std supported
  • Cabalize the current 'Setup.hs' *Cabal hackers welcome for help*
  • Update the regex dependencies to work with the newest one.
  • Work splatch into Yi

Current hacker(s): ivant (Ivan Tarasov), vincenz (Christophe Poucet)


Patching of splices, or otherwise said, a patch-model for working concurrently on one piece of text.

Current hacker(s): ivant (Ivan Tarasov), vincenz (Christophe Poucet)


Port shim to GHC 6.8

Current hacker(s): beschmi (Benedikt Schmidt)

Tangible functional programming

Some to-do items:

  • More built-ins
  • Save
  • Improved user experience for gestural composition, e.g., drag & drop
  • Does it work on MacOS? Linux?
  • Sum types
  • Code generation via hs-plugins or ghc-api or Harpy.

Current hacker(s): conal


Port OCaml's ropes implementation to Haskell.

Current hacker(s): Johan Tibell (tibbe), Ivan (ivant)

General composition tools

Type composition & related

TypeCompose: some classes & instances for forms of type composition (including contravariant functors and applicative functors)

Current hacker(s): conal

Deep arrows

DeepArrow: a framework for composable "editors" of pure values

Current hacker(s): conal

Source browsing

TiddlyWiki-based code & documentation browser. Syntax-colored and all identifiers fully hyperlinked to sources. Thanks to TiddlyWiki, the browsing experience is fluid & self-organizing.

Bring together disparate functionality from HsColour & Haddock, and add auto-generated hyperlinking. Apply to all the code on Hackage.

Current hacker(s): conal


Fast general, pure-Haskell image synthesis (speed of Pan or Pajama but via ghc). Use Harpy or a new hs-plugins.

Current hacker(s): conal

General dependency tracking & updating

Simple, general dependency tracking & execution formulated as an applicative functor and using DataDriven computation. Applies uniformly to recompiling, re-executing, installing, compiler-recompiling, GUI specification and execution, etc. For compilation, it can give more precise (efficient) recompilation than language-specific tools (e.g., hmake and ghc --make) without being language-specific. Yields a continuous build system for free. No "make" info required (since inferred by construction). (Nontrivial language changes/improvements may be necessary.)

Current hacker(s): conal

Backtraces in the GHCi debugger

This has turned out to be really complicated, so look at here for the details. Sadly, Alexey stays only for the first day.

Current hackers: pepe, Alexey

Coverage recording in the GHC testsuite

We would like HPC coverage recording to be performed as a possible part of running the tests in the GHC testsuite. Code targeted by this could be the compiler code itself, the runtime system, the library code of a tested library, and the test code.

Current hackers: thorkilnaur


We still believe that Shim has a great potential to become an awesome IDE, and so we've decided to make it compatible with ghc 6.8

Current hackers: beschmi, pepe