m (Yhc:Hacking moved to Yhc/Hacking)
|(2 intermediate revisions by one user not shown)|
Latest revision as of 17:00, 16 January 2006
|Part of Yhc|
First build Yhc. If Yhc won't build on your architecture or platform using the supplied instructions, either hack the Makefile, or hack the instructions until it works perfect as described.
 1 Picking what to hack on
Of course, most people who want to hack on Yhc probably already have something that Yhc doesn't do quite right for them. So thats often a good thing to think about.
If you have no idea, its often good to go onto the HaskellIrc channel, and talk to ndm / beelsebob / tomshackell - and i'm sure we can suggest something and help your understanding of some of the things.
There are various parts of Yhc, written in different languages, so pick the part that suits you:
- Documentation (English) - most of it is on this Wiki, feel free to start new pages or flesh out existing ones.
- Yhc (Haskell) - the compiler - a lot of this is quite old code and could do with modifications. Everywhere you see FIXME in the source code should be fixed.
- Yhe (Haskell) - the Ghci equivalent - this is still under active development, and needs lots of work. A GUI based on gtk2hs is in development.
- Yhi (C) - the runtime, this is relatively new and fresh, but if you can think of anything that needs doing.
 2 Developer Documentation
- Runtime system documentation: gives an overview of how the runtime system is organised.
 3 Sending your patches
Depending on what your patch does, send it to the following place using darcs send:
- Minor cleanups / bug fixes to the runtime or compiler, to shackell -AT- cs -DOT- york -DOT- ac -DOT- uk
- Any changes to the test suite or evaluator, to ndmitchell -AT- gmail -DOT- com
- Anything big, needing discussion, or if in doubt, to yhc -AT- haskell -DOT- org
 4 Compiling the Prelude
One important thing to note, the prelude is very special. If you want to compile it, the options you will need are "-c -redefine -prelude" - leaving -c out gives a stack overflow.