Web Home
Ehc
News
20100922 The EHC pages will gradually become obsolete, useful content will move to the
UHC pages
The EHC pages are to be considered background reading material to the UHC (Utrecht Haskell Compiler), so please start there if you not already did.
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 - 22 May 2010