64-bit windows version?

Simon Marlow simonmarhaskell at gmail.com
Tue Jun 26 04:59:53 EDT 2007

Peter Tanski wrote:

> I keep on referring to this as temporary because there are two different 
> builds here:
> (1) the build using the old mingw-GHC, without option support for CL; and,
> (2) the build using the new Windows-native GHC.

Yes.  And what I'm suggesting is the following - what I've been suggesting all 
along, but we keep getting sidetracked into sub-discussions:

  - the initial bootstrap is done by hand. (your (1) above).  All you need to
    do is build stage 1 using an existing mingw-GHC.  The stage 1 that you
    build will be capable of creating native objects and binaries.  Any hacks
    you have to apply to do this part are certainly temporary.

  - we adapt the current build system to use the native GHC.  I really don't
    think this is hard, and it's way quicker than replacing significant chunks
    of the build system, as you seem to be suggesting.

So the result is a build system that can build a win-native GHC using another 
win-native GHC, but not necessarily build a win-native GHC using a mingw GHC.

I'm not against VS in particular - I'm against duplication.  Build systems rot 
quickly.  By all means discuss a wonderful replacement for the current build 
system -- I'm aware that the current system is far from perfect -- but I'm not 
at all convinced that it is a necessity for building win-native GHC.

I could be wrong.  If I am wrong, then constructing a convincing argument might 
be difficult, because it's a matter of details - the cumulative weight of things 
you have to hack is too great.  So go ahead and use VS or whatever; but please 
think very carefully before doing so, because it's not cost-free.  We're not 
going to drop the mingw port of GHC, and it's hard to keep everything working as 
it is.  We'll have to import new hackers who understand VS builds, because none 
of the current GHC maintainers do!

>> Use GHC as your C compiler, i.e. don't invoke CL directory from make, 
>> and add the INCLUDE/LIB directories to the RTS's package.conf.
> Certainly doable but it does present a conundrum: for the old GHC 
> (without builtin cl-support) the order for compilation seems to be:
> <compile/link command> <compile/link flags> <output> <source/object 
> files> <other flags>
> while for cl running link.exe or link.exe, it is better to put all the 
> files at the end of the command line:
> <compile/link command> <compile/link flags> <output> <other flags> 
> <source/object files>

Why is that a "conundrum"?  GHC can invoke CL with the arguments in whatever 
order it likes.  Sorry, but this just seems like a trivial detail to me.

> It also adds one more layer of indirection a that delicate stage.

huh?  GHC already invokes gcc, you need to change it to invoke CL anyway.


More information about the Glasgow-haskell-users mailing list