> Rather than explain by deltas from something else, it might be > easier just to write down precisely what you seek.
Let's say the hypothetical feature is selected via the GHC flag "--topo-sort". It would add a step before regular compilation and wouldn't affect any other flag: ghc -c --topo-sort fileA.hs fileB.hs ... This would first read in the specified source files and look at their module headers and import statements. It would build a graph of module dependencies _between_ the specified source files (ignoring circular dependencies), perform a topological sort on that graph, and proceed with compiling the source files in that order. As a consequence, if there is an order in which these modules can be successfully compiled, "--topo-sort" would choose such an order. In that sense, the above invocation would be equivalent to ghc -c fileB.hs fileA.hs ... (using some permutation of the original order specified) Another consequence is that any invocation of GHC in the form of ghc -c flags... sources.hs... with arbitrary flags would still work as usual when adding "--topo-sort". Quoting from the user manual: > In your program, you import a module Foo by saying import Foo. In > --make mode or GHCi, GHC will look for a source file for Foo and > arrange to compile it first. Without --make, GHC will look for the > interface file for Foo, which should have been created by an earlier > compilation of Foo. The hypothetical "--topo-sort" flag would behave in the latter way, i.e. it would not require a source file for an unknown dependency. Hence, "--topo-sort" and "--make" would be conflicting options. I hope that clears up things a bit. Cheers Lars _______________________________________________ Glasgow-haskell-users mailing list [email protected] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
