Hi
From my viewpoint as a current user of GHC Core:
Things would actually be significantly easier if I dropped backward compatibility and essentially just did a Read/Show approach.
Backward compatibility got broken a while ago, since GHC Core currently doesn't seen to work. Given that you haven't got a slew of complaints when it got broken, I think you can assume that backward compatibility isn't that important.
The main reason I'd been avoiding the Read/Show approach is that it would make the External Core format change whenever the .hi format changes
You have two choices: 1) Define a constant format, and then every time the .hi format changes update the output translator. This requires ongoing maintenance over a long time period. If this breaks, users will be unable to work with GHC Core anymore. 2) Use Read/Show based stuff. Every time the .hi format changes people may need to rework their program (unlikely) and will need to update their .hcr files. This gives you almost no ongoing maintenance. (1) is nicer for a user, but only if you guarantee it is going to be actively maintained. If there is any doubt about this, (2) would be preferable. Yhc uses a combination - a separate abstract syntax tree, but read/show off that. Thanks Neil _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
