Malcolm Wallace wrote:
Do you know roughly how small nhc98 can get? Even if a 16-bit system is impossible, having a small 32-bit Haskell could be of interest in other connections.
The executable for a "hello world" type program currently comes out at about 115kb code size when compiled with nhc98. We have done some tests on manually stripping the excess dead weight from that (by removing class overloading, simplifying the error-handling, cutting out big Integers, etc. etc.), and ended up with a 45kb executable.
Okay. Now, if those 45K consist of e.g. 40K code (or "text") and 5K data, this leaves us with 24K free in the code segement and 59K minus heap/stack in the data segment. That should be abundant for a small system. In fact, if bytecode is kept in the data segment - which I suppose it is - one would not have to pare down the code ("text") that much.
Provided you have a C cross-compiler for the 16-bit machine, that should be all you need.
Well, I don't, so I suppose I would have to use a 16-bit compiler. And this probably means having to change a good deal of Unix-specific stuff. This is the sort of thing one would also have to do for a Win32 port, so it's not a bad form of exercise at all. But it would probably take a good deal of effort. In short, I don't think I have the time or inclination at the moment to get into nhc98 internals. So if you are able to lend me makefiles for that 45K version and/or give some advice on which files to exclude, where to place #ifdefs etc., then I *might* try to make a 16-bit nhc98. Otherwise, I shall have to look elsewhere. Regards, -- Tore