RE: Haskell Implemetors Meeting

GHC transforms Haskell into "Core", which is roughly the second-order lambda calculus, augmented with let(rec), case, and constructors. This is an a small explicitly-typed intermediate language, in contrast to Haskell which is a very large, implicitly typed language. Getting from Haskell to Core is a lot of work, and it might be useful to be able to re-use that work. Andrew's proposal (which he'll post to the Haskell list) will define exactly what "Core" is. Simon | -----Original Message----- | From: Timothy Docker [mailto:timd@macquarie.com.au] | Sent: 05 February 2001 22:16 | To: haskell-cafe@haskell.org | Subject: Haskell Implemetors Meeting | | | | > We agreed that it would be a Jolly Good Thing if GHC could | > be persuaded to produce GHC-independent Core output, | > ready to feed into some other compiler. For example, | > Karl-Filip might be able to use it. | > ANDREW will write a specification, and implement it. | | A quick question. What is meant by "Core output"? Subsequent posts | seem to suggest this is some "reduced Haskell", in which full Haskell | 98 can be expressed. Am I completely off beam here? | | Tim Docker | | _______________________________________________ | Haskell-Cafe mailing list | Haskell-Cafe@haskell.org | http://www.haskell.org/mailman/listinfo/haskell-cafe |

Another Haskell -> Haskell transformation tool which I always thought would be useful (and perhaps exists?) would be a Haskell de-moduleizer. Basically it would take a Haskell program and follow its imports and spit out a single monolithic Haskell module. My first thought is that this should be able to be done by prepending the module name to every symbol (making sure the up/lowercases come out right of course) in each module and then appending them to one another. Why would I want this? curiosity mainly. performance perhaps. There is much more oprotunity to optimize if seperate compilation need not be taken into account. It would be interesting to see what could be done when not worrying about it. It would allow experimentation with non-seperate compilation compilers by allowing them to compile more stuff 'out-of-the-box'. Also it may be that performance is so important that one may want seperate compilation while developing, but when the final product is produced it might be worth the day it takes to compile to get a crazy-optimized product. This could also be done incrementally, unchanging subsystems (like GUI libraries) could be combined this way for speed while your app code is linked normally for development reasons.... John -- -------------------------------------------------------------- John Meacham http://www.ugcs.caltech.edu/~john/ California Institute of Technology, Alum. john@foo.net --------------------------------------------------------------
participants (2)
-
John Meacham
-
Simon Peyton-Jones