MSYS2 provides a POSIX like environment and package manager for Windows.
It packages up the MinGW-w64 port of GCC. (MSYS2 is separate from the
original MSYS.)
Make it possible to build Mercury under MSYS2 with the MinGW-w64 GCC
without having to resort to cross compilation.
configure.ac:
Recognise the x86_64-pc-mingw* architecture returned by config.guess
under MSYS2.
If we are building the MSVC port under MSYS2, set up the flags for
threads appropriately.
scripts/ml.in:
Pass libraries to the linker correctly for static linking on all the
different MinGW configurations.
README.MinGW:
Update documentation for MinGW ports.
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.
Currently, 14 out of a possible 15 base grades are publicly documented (to some
extent). This changes hides the user facing documentation for seven of the
less useful base grades, namely: asm_jump, fast, jump, hlc_nest, hl, hl_nest
and il.
Change the configure script so that it will not automatically set the LLDS base
grade to asm_jump, fast or jump. (Developers can still manually select these
base grades using configure's '--with-llds-base-grade' option.)
Hide the user facing documentation for the .pic_reg and .agc grade components.
The former is an internal thing and the latter is an experimental feature
(which currently doesn't work anyway).
configure.ac:
When choosing the LLDS base grade, use the first one of asm_fast,
reg or none that is supported. Do not attempt to use asm_jump,
fast or jump.
Disable the documentation for the '--enable-agc-grades' option.
(The option itself is still supported.)
compiler/options.m:
doc/user_guide.texi:
Comment out, ignore or delete (as appropriate) documentation related
to the seven base grades and two grade components mentioned above.
Delete a left-over reference to the MPS collector.
Delete references to the IL backend in various spots.
Add reference to the Erlang backend where appropriate.
.INSTALL.in:
Delete the description of the '--enable-agc-grades' option.
README.MinGW:
README.MinGW-cross:
Delete references to the asm_jump grade.
README.CSharp:
README.Java:
The foreign_proc examples here would result in a purity error.
Fix them so they do not.
README.Cygwin:
Update URLs.
README.AIX:
Delete the bit about the -ansi option; we no longer pass that to
the C compiler anyway.
README.MinGW:
README.MS-VisualC:
Fix grammar.
NEWS:
As above.
README.MinGW:
Extend the instructions here to describe to build the MinGW64
port of Mercury. (They are pretty much identical to those
of the MinGW port, except for one additional configuration
option.)
Delete the stuff about configure invoking the Microsoft
Management Console; that was fixed some time ago.
Branches: main, 11.01
README.MinGW:
Document how to set up MSYS to build the erlang, java, and csharp grades.
(For the latter we only cover .NET, not Mono.)
Branches: main, 11.01
Update README.MinGW
README.MinGW:
Assume that at mingw-get based installer is being is used.
Delete a note about the Microsoft Management Console; configure
now contains a workaround for that problem.
Delete a note regarding an old version of autconf that doesn't
work. The autoconf supplied with recent versions of MinGW does
work.
Branches: main, 10.04
Filter out warning message from gcc 4.x which are emitted when compiling
low-level C code using assembler labels, at least until a better fix is
available.
util/Mmakefile:
util/mfiltercc.c:
Add a new program, mfiltercc.
compiler/options.m:
Add `--filtercc-command' option (undocumented).
compiler/compile_target_code.m:
Filter compiler output with mfiltercc if using assembler labels.
scripts/mgnuc.in:
Filter compiler output with mfiltercc if using assembler labels, but
only if mfiltercc can be found on the $PATH. The bootstrap compiler
may not have mfiltercc.
.mercury-compiler.spec.in:
Makefile:
README.MinGW:
bindist/Mmakefile:
bindist/bindist.Makefile.in:
scripts/mercury_config.in:
Mention mfiltercc in various places.
Branches: main
Improvements on Windows.
compiler/compile_target_code.m:
compiler/make.util.m:
The shell scripts that we generate for Java and Erlang programs
shouldn't have any ".exe" extension.
compiler/module_cmds.m:
Account for "\" directory separators in list_class_files_for_jar.
configure.in:
When looking for a bootstrap "mmc", assume it's not in a Windows
directory as that is likely to be the Microsoft Management Console
instead, and when executed pop ups an error message which must be
closed manually.
library/io.m:
Make io.check_file_accessibility not check the `execute' bit on
Windows (other than Cygwin). It was never supported, and on Vista
returns an invalid argument error.
README.MinGW:
Update MinGW installation instructions (simplified).
Estimated hours taken: 6
Branches: main
Get the sytem building under mingw and cygwin.
README.MinGW:
Document the new packages you need to install for the
system to build.
configure.in:
runtime/mercury_conf.h.in:
Test for the presence of the setenv and putenv functions.
configure.in:
Comment out some code which breaks with autoconf 2.60.
runtime/mercury_runtime_util.c:
runtime/mercury_runtime_util.h:
Add MR_setenv which is an implementation of setenv in terms
of either setenv or putenv.
runtime/mercury_trace_base.c:
Call MR_setenv.
trace/Mmakefile:
Mingw and cygwin only have flex 2.5.4 available, so use
the options compatible with that version.
Estimated hours taken: 0.5 (by Jonathan Morgan) + 0.2 (by myself)
Branches: main
README.Cygwin:
Put angle brackets around URLs.
README.Dotnet:
Put angle brackets around URLs and fix inconsistent indentation.
Mention that the IL backend has been tested on .NET 1.1, as well
as 1.0.
Fix the C# foreign_proc example so that it is valid Mercury.
README.MinGW:
README.MS-VisualC:
Mention that the Visual C backend may need the Platform SDK.
Don't be so specific about the Mercury version.
s/ie/i.e./
Estimated hours taken: 0.4
Branches: main
util/mkinit.c:
Update the documentation to reflect the fact that mlds_to_c.m
also generates ENDINIT comments.
Fix a typo.
README.MinGW:
library/io.m:
library/store.m:
runtime/mercury.h:
runtime/mercry_wrapper.c:
runtime/mercury_goto.h:
Fix some typos.
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.