Web Home

Ehc
News

20090418 The first release of UHC is announced!

20081124 Begin of update of documentation framework, over coming time more doc will appear.

20081023 Started adding shuffle documentation and a description? of how to use the variants and aspects of EHC for experimentation.

What is UHC? And EHC?

UHC stands for Utrecht Haskell Compiler. EHC stands for Essential Haskell Compiler, a series of compilers, of which the last one is UHC. UHC/EHC as a combination aims to be

  • A full Haskell98 compiler with extensions
  • A platform for experimentation with Haskell and type systems

EHC is not just a single compiler, but a whole series of compilers. Each compiler in this series adds some Haskell features or extensions to the previous compiler. It is specified as a delta to its predecessor. The last compiler in this sequence is branded as UHC.

Status of EHC/UHC

See FirstRelease for an extensive overview of the work still to be done before we can release a beta version UHC for the first time, and LanguageFeatures for an overview what is and is not implemented in general. A brief summary of where we are follows:

  • [20090415] UHC
    • We are almost reaching the first release!

Platforms

EHC compiles and runs on MacOS X Intel, WinXP and some Linux versions.

Feedback

Although we currently guarantee nothing (remember we have not yet released UHC), you can certainly help us by trying out EHC and tell us what went wrong (or right!).

Download, build, run and install EHC/UHC

Download, build, install, run

See the ehc manual (under construction) for installation and troubleshooting.

Experiment and play

Ehc allows itself to be built in different configurations. Ehc is constructed as a sequence of steps, but independently of this various aspects of the full compiler can be omitted so as to allow experimentation. Ehc.Shuffle is used to configure this. As part of the documentation an explanation on how to experiment and play with the system is available.

Reading about EHC

See documentation

Participate in the development of EHC

  • Obtain the source code available on the subversion repository: https://subversion.cs.uu.nl/repos/project.UHC.pub/. Contact the repository owner to get write access.
  • Depending on the type of development, choose either the trunk or create a branch:
    • The trunk: bugfixes, main development
    • Branching: student projects

Cooperation, Projects

Cooperation projects

Local (at UU) projects

Completed projects

  • [2009] Mart Kolthof, designing an editor in Proxima for Shuffle, Master thesis.
  • [2007] Type Systems projects are based on EHC.
  • [2007] John van Schie, Using LLVM as a back-end for EHC, Master thesis.
  • [2007] Gerrit van den Geest, Use of Constraints for Type Class Extensions, Master thesis.
  • [2006] Some EIFL (Efficient Implementation of Functional Languages) seminar projects use EHC as a frontend.
  • [2006] Thesis project by WouterSwierstra to incorporate Attribute Grammar fragments in EHC.
  • [2005] Christof Douma, Exceptions in GRIN, Master thesis .

-- AtzeDijkstra - 10 Sep 2009