#1409: Allow recursively dependent modules transparently (without .hs-boot or
anything)
---------------------------------+------------------------------------------
Reporter: Isaac Dupree | Owner:
Type: feature request | Status: new
Priority: normal | Milestone: _|_
Component: Compiler | Version: 6.10.2
Keywords: | Testcase:
Blockedby: | Difficulty: Unknown
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: None/Unknown
---------------------------------+------------------------------------------
Comment(by guest):
This is a long message coming from an observer at the edge of
the Haskell solar system; here goes...
The archetypal UNIX philosophy is "do one thing and do it well",
and GHC does just that - it takes one module, the interfaces of
its imports, and generates the interface and binary for the
given module; and a cracking job it does.
As I see it, the problem of mutually-dependent groups of modules
comes down to missing interfaces - if they were already present,
a single-module compiler could process each of the modules in
such a group, just as it has always done.
So what seems to be needed is something else that does one thing
well - take one mutually-dependent module group, the interfaces
of their imports, and generate just the interfaces for the
modules in the given group - a "resolver", if you will.
In this way, each tool deals with one key source of complexity -
either generating optimised binaries, or resolving interdependent
interfaces - instead of trying to build and maintain one enormous
tool containing all that complexity.
A prototype could be built with the Programatica front and
mid-section modified to read and write GHC interface files. This
would get Haskell 98 working as a first step, with the various
extensions being added later to the production version, be it
scratch-built or derived from the prototype.
If nothing else, this approach would quickly close this ticket
(one way or the other!) without the huge upheaval to the GHC
codebase which everyone involved wants to avoid.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1409#comment:40>
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