Leif:
%% Denys.Duchier@ps.uni-sb.de (Denys Duchier) writes:
%% > I hope Leif will pipe in and provide more accurate/helpful info, but,
%% > for starters, you will need CYGWIN if only to provide the
%% > infrastructure for configuring and building Mozart; the GNU tool chain
%% > is just a must here (no, we are no interested in maintaining a
%% > Windows-specific alternative). However, you can change e.g. the
%% > compilers which are used by setting environment vars (CC, CXX etc...)
%% > prior to invoking configure.
%%
%% What Denys says is completely right. Cygwin is only required
%% for the configuring and building process; the generated binaries
%% are native Win32. We indeed have succeeded in building Mozart
%% with the MSVC compiler, although performance of the resulting
%% system was not competitive with a system built with gcc.
How much worse was it, and where were the bottlenecks? Knowing this in
advance can give me a jump-start in plotting a strategy to optimization.
%% The reason is that our code is tuned to gcc, since that is the
%% compiler we have always used in developing Mozart, and that we
%% make use of some gcc extensions (which are not supported by
%% MSVC) when we compile with gcc.
Right. One of my goals will be to figure out what mods need to be made to
optimize for the MSVC 13.0 C++ compiler (the new one with VisualStudio.NET
(7.0)), and wrap such code in the appropriate preprocessor directive
wherever necessary, so as not to break anything that currently works with
gcc. (Noble goal, eh?)
%%
%% Building with MSVC is not integrated in the normal configure
%% and build process, mainly because invocation of the Microsoft
%% compiler is so different from normal Unix C/C++ compilers.
%% You can attempt a build of the emulator.dll using MSVC as follows:
%%
%% 0. Compile the libraries required by Mozart using MSVC.
%% 1. Configure under Cygwin as usual.
%% You are unfortunately required to configure in the
%% source directory; a separate build directory is not
%% supported by the following steps.
%% 2. cd platform/emulator
%% 3. make first
%% 4. make -f Makefile.msvc
%%
%% This should (unless Makefile.msvc requires some updating; it
%% unfortunately tends to get out-of-sync with the standard Makefile)
%% produce an emulator.dll.
%%
%% > > but can Mozart live without GMP.lib, which appears a bit
%% > > tricker to compile with MSVC, or are there acceptable alternatives?
%% >
%% > No and no. why is it tricky?
%%
%% We have succeeded in building GMP with MSVC. I even seem to
%% remember that the GMP package provides MSVC support directly,
%% although I may be wrong (and this may not be true for the
%% latest release). Have you tried it? If yes, what problems
%% did you encounter?
Nope haven't tried it yet. Being lazy, I figured I'd find out any lessons
learned from the successes/failures of others before I reinvent the wheel.
It did not appear, in the download I grabbed yesterday, to have direct
support for MSVC, as zlib clearly did (it even had a Visual Studio project
ready to go). If I have any problems when I take a closer look today, I will
let you know. Perhaps I will have none.
I expect all the real work to be in optimizing.
%%
%% Leif
%% -
%% Please send submissions to hackers@mozart-oz.org
%% and administriva mail to hackers-request@mozart-oz.org.
%% The Mozart Oz web site is at http://www.mozart-oz.org/.
%%
%%
-
Please send submissions to hackers@mozart-oz.org
and administriva mail to hackers-request@mozart-oz.org.
The Mozart Oz web site is at http://www.mozart-oz.org/.