On Windows the name 'mmc' is also used for the executable for Microsoft
Management Console. For the MSVC port on the Windows command line we have long
provided a batch file named 'mercury' as an alternative to `mmc' in order to
avoid this clash. (Re-arranging your PATH to avoid the clash is not always an
option.)
Provide a shell script named 'mercury' that serves the same purpose elsewhere.
Its main use is to avoid the name clash on MinGW/MSYS, Cygwin etc., but
making the name available everywhere should avoid unnecessary changes in build
scripts and alike.
Document the issue with the name clash in the appropriate chapter of the user's
guide and also in the top-level Windows README file.
scripts/mercury.in:
Add a template for the 'mercury' script.
configure.ac:
Create the 'mercury' wrapper script.
scripts/Mmakefile:
Add 'mercury' to the list of scripts.
doc/user_guide.texi:
Add a paragraph describing the 'mmc' name clash on Windows and what
to do about it.
Unrelated change: ':' is no longer a module qualifier.
README.MS-Windows:
Point users to the relevant chapter of the user's guide for ways
to deal with the `mmc' name clash.
NEWS:
Announce the addition.
README.MinGW:
Use "MinGW-w64" spelling for the project.
Link to MSYS2 installer and describe how to install gcc in it.
Move optional Java/C#/Erlang steps.
README.MS-Windows:
Mention MSYS2 as a possible build environment.
.README.in:
The contents of java/runtime come under the LGPL as well.
Minor rewording.
README.MS-Windows:
We don't need to list every version of Windows we no longer
actively support. (If the version is not on the list of those
we *do* support, then we don't support it.)
README.MacOS:
We will never support compiling Mercury with llvm-gcc on
Mac OS X 10.5 and 10.6.
Branches: main
Let Mercury be built with a MinGW cross-compiler.
tools/configure_mingw_cross:
Add shell script to prepare for cross-compilation.
README.MinGW-cross:
Document how to use the shell script.
configure.in:
Mmake.common.in:
Set a new variable CROSS_COMPILING.
Set FULLARCH and BUILD_C_PROGS_FOR_BUILD_SYSTEM variables
to be passed to the Boehm GC build system.
Use $host-ar for AR when cross-compiling.
m4/mercury.m4:
Determine gcc version with gcc -dumpversion instead of building
a program and running it.
Don't run test for mercury_cv_cc_type if set explicitly.
Mmake.workspace:
Use the default c2init and mkinit when cross-compiling.
The copies in the util directory would not be usable then.
boehm_gc/Mmakefile:
Pass configured values of AR, RANLIB down to sub-make.
boehm_gc/Makefile.direct:
boehm_gc/build_atomic_ops.sh:
Use configured value from Mmake.common for HOSTCC.
Pass --host when configuring libatomic_ops.
util/Mmakefile:
Make tools with .exe suffixes on Windows.
Mmakefile:
Use the bootstrap compiler to build libgrades when cross-compiling.
Conform to changed target names in the util directory.
compiler/Mmakefile:
deep_profiler/Mmakefile:
profiler/Mmakefile:
slice/Mmakefile:
Conform to changed target names in the util directory.
Makefile:
Clean .exe files on Windows.
README.MS-Windows:
Update the lists of Windows versions we have tested on.
Mention that we don't actively support Windows 95, 98 etc.
Mention that a Unix emulation environment is not required
to use Mercury on Windows; only build it.
Estimated hours taken: 7
Branches: main and 0.12
Port Mercury to MinGW.
README.Cygwin:
README.MS-Windows:
README.MinGW:
Move most of README.MS-Windows to README.Cygwin and make
README.MS-Windows refer the user to README.Cygwin, README.MinGW or
README.MS-VisualC.
README.MinGW describes how to install the source distribution under
MSYS.
configure.in:
Configure Mercury for MinGW. Most of the options are the same as
Cygwin.
boehm_gc/Makefile:
Add a workaround to a problem with cp not working properly just
after a file is created on MinGW.
If cygpath is not present (which it isn't on MSYS), then use
/bin/sh to invoke the C compiler.
scripts/mmc.in:
Do not use exec to invoke mercury_compile under MinGW. exec
doesn't seem to understand Windows like paths with a drive
letter in front.
Estimated hours taken: 0.5
Branches: main, release
README.MS-Windows:
Document that Cygwin 1.3.1 is broken.
Document that you need to `cd' to the appropriate directories.
Document that the distribution needs to be unpacked with Cygwin's tar.
Delete documentation about problems with datestamps, since they
seem to be fixed now.
Estimated hours taken: 0.3
README.MS-Windows:
Update the documentation that talks about Cygwin.
The new Cygwin system has fixed most of the bugs that are
discussed in this document, is available from a different site
(Redhat now owns Cygnus), creates /bin/sh.exe and /tmp for you,
and has non-beta version numbers.
Also I added a paragraph explaining that you need to edit a .m
file and compile it using the command line compiler (there's a
whole generation of programmers out there who have never seen a
command line compiler).
.nocopyright:
Added README.MS-Windows to this file.
Estimated hours taken: 0.25
README.MS-Windows:
bindist/bindist.README.MS-Windows:
Modify the documentation to warn about the problems that
can arise from the mmc name clashing with the
"Microsoft Management Console".
Estimated hours taken: 3
Improve build and installation on MS-Windows.
configure.in:
Mmake.common.in:
Set extension for executables (.exe for Windows, nothing
otherwise).
Detect presence of perl, makeinfo, texi2dvi and dvips.
Mmakefile:
README.MS-Windows:
Remove old preinstall and postinstall hacks for windows.
compiler/Mmakefile:
profiler/Mmakefile:
util/Mmakefile:
Use the extension for executables when installing.
doc/Mmakefile:
Don't generate documentation unless the appropriate tools
are available. Use the auto-detection of perl,
makeinfo, texi2dvi and dvips to build documentation.
doc/generate_mdb_doc:
Don't insist on rm being in /bin
Estimated hours taken: 0.5
README.MS-Windows:
bindist/bindist.README.MS-Windows:
Update to reflect recent changes in Cygwin
(name change "gnu-win32" => "Cygwin",
new URL for the Cygwin WWW site, etc.).
A few other minor improvements.
Estimated hours taken: 1
Various changes to the README files, in preparation for the next release.
.README.in:
Update version numbers and copyright dates.
Update the list of README.* files.
README.HPUX:
New file.
README.AIX:
Update to reflect recent bug fix.
README.Linux:
Delete an obsolete patch at the end of this file;
the text describing this patch had been removed already.
README.MS-Windows:
Mention that we haven't tested it on Windows 98.
NEWS:
We've updated to Boehm GC version 4.13alpha2.
extras/README:
Add descriptions of each subdirectory.
Estimated hours taken: 4
Port Mercury to cygwin32 version b19 and to binutils 2.9.1 on that platform.
boehm_gc/config.h:
Change the definition of DATASTART and DATAEND for cygwin32
to work with binutils 2.9.1.
README.MS-Windows:
Mention that for b19, you need to use egcs 1.0.2
instead of the gcc that comes with b19.
NEWS:
Mention these changes.
Estimated hours taken: 1
Fix some installation problems on MS Windows.
Mmakefile:
Fix a bug: the definitions of the variables
PREINSTALL_HACK_FOR_WINDOWS and POSTINSTALL_HACK_FOR_WINDOWS
preceded their use. The fix was just to move the definitions
closer to near the start of the file.
README.MS-Windows:
Update the documentation to reflect gnu-win32 b18.
Update the patch at the end to reflect the above change to Mmakefile.
Estimated hours taken: 1
Mmakefile:
README.MS-Windows:
Move most of the stuff in the patch file at the end of
README.MS-Windows into Mmakefile, because the patch file
was a maintenence problem (people would change Mmakefile
and not update the patch).
Estimated hours taken: 2
README.MS-Windows:
Modify the patch to Mmakefile: change the rule for `touch_files' to
- ignore errors if `find . | touch' fails (for some reason,
the gnu-win32 `touch' fails for directories)
- touch configure (otherwise it tries to run autoconf,
which may not be present) and config.status (otherwise
it tries to unnecessarily rerun configure).
Estimated hours taken: 0.5
README.MS-Windows:
Mention that running configure can fail, but works
if you run it again.
Fix the patch to Mmakefile so that it patches cleanly
(the lp_solve additions broke it).
Estimated hours taken: 3
README.MS-Windows:
Improve the wording in a few places, correct some obsolete
things, and fix a bug in the patch to Mmakefile.
Estimated hours taken: 0.5
Fix a problem with compiling Mercury on Windows
reported by Paul Massey <pma@miscrit.be>.
README.MS-Windows:
Change the patch at the end: firstly update it to refer
to `Mmakefile' rather than `Mmake', and secondly add
a couple more `touch' commands in the `touch-files'
rule that it adds to the Mmakefile. Previously it
didn't touch the .c files in the boehm_gc and runtime
directories.
Estimated hours taken: 0.25
README.MS-Windows:
s/Mmake/Mmakefile/ in the patch, since the file it refers to has
been renamed. Also update the description of the problems
re Mmake vs Mmakefile, since we've now renamed our Mmake files,
so the problem will only occur if the user names their files
`Mmake'.
Estimated hours taken: 0.5
README.MS-Windows:
Update for gnu-win32 version b17.1: system() is now fixed
(so no work-around needed); "-Wl,--force-exe-suffix" is now
the default; but the handling of `.exe' has changed again,
so we need to modify the work-around for that.