Good to know about. I did part of this, as well --- printing External Core in 6.7 resulted in a panic, since coercions weren't translated, and I fixed that. The patch mentioned below goes beyond mine, though, by adding support for foreign labels. Fortunately, what I did was only a few lines, and not much work. I was waiting to finish work on the parser before I sent in a patch.

On the topic of parsing, it seems significantly harder to get working, largely because, as Simon M was kind enough to point out, IfaceSyn now uses Name rather than IfaceExtName. Therefore, the parser needs to be able to assign a Unique value to each identifier it encounters. Unlike the renamer, it doesn't need to figure out what external identifier each one refers to, since they're all fully- qualified, and refer to original, defining occurrences. Only local variables may have overlapping names, it seems.

So, does anyone familiar with the renaming process for Haskell source have any suggestions as to the best way to accomplish the simpler Unique generation necessary for External Core?

Also, Sam, if you're also interested in getting the parser working, we should coordinate so that we don't duplicate work.

Aaron

On Nov 1, 2006, at 12:00 AM, Simon Peyton-Jones wrote:

Thanks Sam.

Ian would you like to apply this, please?

Aaron: as keeper of External Core, you should know about this.

Simon

| -----Original Message-----
| From: [EMAIL PROTECTED] [mailto:cvs-all- [EMAIL PROTECTED]
On Behalf Of Samuel Bronson
| Sent: 01 November 2006 01:15
| To: [EMAIL PROTECTED]
| Subject: darcs patch: Get External Core (-fext-core) working with
readline
|
| Tue Oct 31 19:36:49 EST 2006  Samuel Bronson <[EMAIL PROTECTED]>
|   * Get External Core (-fext-core) working with readline
| Had to add support for dynamic C calls and for foreign labels (Addr# | constants). Actually I only did the printing side -- parsing is not
|   done yet. But at least now you can build the libraries with
-fext-core.
|
|   I also got the function arrow to print out properly again (it was
|   printing fully-qualified and z-coded!)
|
|   I also added a field for calling convention name to the External
|   data constructor in ExternalCore.Exp (for static C calls).
|
|   I'm not exactly sure where to document all of this, so I haven't
done
|   that, though I did comment the code a bit.

_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to