
In short, I'm working towards having a cleaner separation between code that implements the UI(s) and the actual interpreter.
Good luck! We (Cherrielyn and I) made an effort when I was at Yale but didn't manage to achieve complete separation and abandoned it. By the way, if you fancy doing some cleanup... Some of the files in hugs98/src/*.c are ridiculously large and contain code that is only marginally related. machdep.c springs to mind. As I understand it, this goes back to the days when DOS C compilers (or maybe it was make or the shell?) couldn't handle more than about 8 filenames on the command line. This is probably also the reason for #including .c files into each other. Splitting some of those files up a bit seems like a very worthwhile goal. I'm also not sure what the benefit of putting (almost) all machine dependencies into machdep.c is. Well, I can see the benefit of viewing all platforms as some kind of uniform abstract machine implemented by the machdep.c code but I also see the benefit of putting related code (e.g., the DLL loading code and the ffi code) in the same file. -- Alastair