#5630: External Core needs love
-------------------------------+--------------------------------------------
Reporter: quux | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.2.1
Keywords: | Testcase:
Blockedby: | Difficulty:
Os: Windows | Blocking:
Architecture: x86_64 (amd64) | Failure: Compile-time crash
-------------------------------+--------------------------------------------
Comment(by simonpj):
External Core is defined by a data type in `coreSyn/ExternalCore.lhs`.
This data type has received No Love for years. As a result, it is lagging
way behind Core, as is External Core's concrete syntax. For example it
does not accommodate GADTs at all, I think. In this particular ticket, we
are trying to convert a Coercion from Core to `ExtenalCore.Exp`, but there
''are'' no coercions (yet) in `Exp`.
In short, External Core needs some love and attention.
(I suspect it's ended up in this state because most people are using the
GHC API instead, but the idea of giving Core a proper, printable external
realisation remains a good one..)
If anyone feels able to draft it into the 21st century I'd be happy to
advise. For what it's worth, I think that a promising approach might be
to abolish the `ExternalCore` data types in favour of those in `IfaceSyn`,
which serve a very similar purpose. The `IfaceSyn` types didn't exist
when External Core was first implemented, but they very much do now, and
they *cannot* lag.
So I suggest that we abandon `ExtCore` as it is, and instead write a
printer and parser for `IfaceSyn`. But it needs a volunteer.
Simon
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5630#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs