[MLton] mingwows

skaller skaller@users.sourceforge.net
Fri, 11 Nov 2005 05:31:17 +1100

On Thu, 2005-11-10 at 09:38 -0800, Stephen Weeks wrote:

> I'm wondering what advantage the bat script has over the standard
> MLton script that can be run in MSYS?  Would there really be people
> who have MinGW but not MSYS, 

Absolutely. Me.

> and so would prefer to run MLton from a
> DOS shell?

Don't be silly :) And don't confuse the DOS shell 
COMMAND.EXE with the Windows console CMD.EXE.

I think you're misunderstanding the situation:
MinGW is just gcc. There's no environment.

I have MinGW on BOTH Cygwin AND Linux! I can generate
Win32 executable both ways -- but I don't use MSYS.

Under Cygwin .. which is the preferred way of using
MinGW, you just say:

gcc -mno-cygwin ...

and that's a MinGW executable or dll. It is nothing
more or less than a native Windows executable or dll,
compiled with gcc. The ABI is the same as that used
by MSVC++ -- for C code. The ABI is different for C++ ;(

On Linux, I have the same version of gcc, configured
as a cross compiler so it makes i586 executables and
dlls for Win32. (Use Debian package 'mingw32')
It's called: i586-mingw32msvc-gcc

The point is -- there is no MSYS and no issue of
using a DOS shell either. You execute the binaries
the same way as under Windows because they ARE
native Windows binaries.

BTW: the MinGW version of Ocaml is built with,
and requires, Cygwin's version of gcc/mingw, INRIA claims
the MSYS version is broken (something about
not accepting long command lines ..)

BTW2: For Felix, I supply *.bat scripts for MSVC++
builds, and bash for Cygwin or MinGW builds.
However the way to RUN the built executables is
with Windows batch files.

You should not install in C:\MinGW,
you must NOT mention any specific drive letter
or top level directory: that would never work
on a networked system.

I'm under Linux at the moment, so I can't check the
details, but the correct place to install is in
something like:

%Program Root%\mlton

or something; that will be filled in automatically by the
Windows shell from the registry/system paths, with the
correct place to put packages, usually, but not always,
this will be

C:\Program Files

Your PATH should be extended the same way.

All this stuff is driven by installing bat scripts ..
in %Windows% which is usually C:\Windows .. but again,
not always. That directory is ALWAYS on the PATH :)

With some fiddling, this means you can run everything
without setting up any environment (the bat script
for each command does that each time).

[unfortunately, sorry, I am dual booting at the moment
so I cannot check details and email at the same time ;[

John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net