Announce: Haskell All-In-One
Hi All, There have been several requests for such a program in the past, so I figured I'd finally break down and write it. Haskell All-In-One is a Haskell utility which will take a program implemented in multiple modules and convert it to a single module. It implements all of Haskell 98 (sorry, your -fglasgow-exts programs won't parse with the Language.Haskell.Parser parser so we can't deal with them, yet) as well as the hierarchical libraries. It can also correctly deal with literate Haskell scripts (provided you have GHCs unlit software available) and programs which need to be run through the c-pre-processor. The program, together with a bunch of documentation, is available at: http://www.isi.edu/~hdaume/HAllInOne/ There is one known bug (listed on the web page), but there are likely other unknown bugs. I would have liked to have run it on itself as a proof of concept, but unfortunatly it uses the GMap library, which require extensions and thus it cannot parse correctly. However, it's been tested against the GHC module regression suite and performs (almost) perfectly. I would appreciate bug reports, if you find any problems. On the TODO list currently are: - simplify and comment the source better - fix the known bug It requires GHC6.0 to compile "out of the box" with -fglasgow-exts and -fallow-undecidable-instances. It can compile with GHC 5.04.3, but will also need "-package haskell-src" and you will need to modify the code such that System.IO no longer imports 'bracket' and uncomment the 'cast' function in the GMap library. - Hal -- Hal Daume III | hdaume@isi.edu "Arrest this man, he talks in maths." | www.isi.edu/~hdaume
Hi All (again), Sorry for the multiple posting, but I received serveral emails about this, so I thought I'd reply to the whole list: (1) There was temporarily a bug on my web page with the links which prevented you from downloading the program. This is fixed now (sorry!). (2) More importantly, there was a last minute added bug which prevented HAllInOne from running on recursive modules (in fact, this would cause it to infinite loop!). This bug is now fixed and it should correctly handle mutually recursive modules. It has been tested on two test cases, but if someone wants to stress test this and submit bugs, that would be great. A new version is up on the web page now. - Hal -- Hal Daume III | hdaume@isi.edu "Arrest this man, he talks in maths." | www.isi.edu/~hdaume On Sun, 13 Jul 2003, Hal Daume III wrote:
Hi All,
There have been several requests for such a program in the past, so I figured I'd finally break down and write it.
Haskell All-In-One is a Haskell utility which will take a program implemented in multiple modules and convert it to a single module.
It implements all of Haskell 98 (sorry, your -fglasgow-exts programs won't parse with the Language.Haskell.Parser parser so we can't deal with them, yet) as well as the hierarchical libraries. It can also correctly deal with literate Haskell scripts (provided you have GHCs unlit software available) and programs which need to be run through the c-pre-processor.
The program, together with a bunch of documentation, is available at:
http://www.isi.edu/~hdaume/HAllInOne/
There is one known bug (listed on the web page), but there are likely other unknown bugs.
I would have liked to have run it on itself as a proof of concept, but unfortunatly it uses the GMap library, which require extensions and thus it cannot parse correctly. However, it's been tested against the GHC module regression suite and performs (almost) perfectly.
I would appreciate bug reports, if you find any problems.
On the TODO list currently are:
- simplify and comment the source better - fix the known bug
It requires GHC6.0 to compile "out of the box" with -fglasgow-exts and -fallow-undecidable-instances. It can compile with GHC 5.04.3, but will also need "-package haskell-src" and you will need to modify the code such that System.IO no longer imports 'bracket' and uncomment the 'cast' function in the GMap library.
- Hal
-- Hal Daume III | hdaume@isi.edu "Arrest this man, he talks in maths." | www.isi.edu/~hdaume
participants (1)
-
Hal Daume III