Hi Tim,
Since you've now checked in External Core, I thought I'd ask how close
we are to my ideal use case of External Core. My goal is to use
External Core with Catch (http://www-users.cs.york.ac.uk/~ndm/catch/).
To be able to use GHC Core with Catch, it is necessary to be able to
do one of two things:
1) Compile all the associate libraries and modules of a program to
generate separate GHC Core files for each one. Link them together to
make one GHC Core file. Convert this Core file to Yhc Core.
2) Compile all the associate libraries and modules to generate
separate GHC Core files for each. Convert each Core file to Yhc Core.
Link the Yhc Core files together.
I have no need to put the resultant Core back through GHC.
How easy is it to compile up the Core for various associate libraries?
Writing a convertor from GHC Core to Yhc Core is trivial, provided
there can be some in-memory representation of GHC Core as an algebraic
data type. The Core linker is trivial. The GHC bits are what I will
need advice on!
The Yhc compiler has this integrated, so that simply passing
--linkcore will do all the magic listed here. Perhaps GHC could do
with such a flag, or have some kind of ghc-linkcore program which is a
wrapper around the GHC API.
Thanks
Neil