mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 01:13:30 +00:00
Update documentation for Cygwin.
README.Cygwin:
Rename -> README.Cygwin.md.
Replace the contents of this file; its existing contents were
horribly out-of-date.
README.MS-VisualC.md:
README.MS-Windows.md:
Update links.
NEWS.md:
Announce that 32-bit Cygwin is no longer supported.
This commit is contained in:
2
NEWS.md
2
NEWS.md
@@ -56,6 +56,8 @@ Changes that may break compatibility
|
||||
operators. (Mercury switched to using `.` as the module name separator
|
||||
around 2003.)
|
||||
|
||||
* We have dropped support for x86 (32-bit) version of Cygwin.
|
||||
|
||||
Changes to the Mercury standard library
|
||||
---------------------------------------
|
||||
|
||||
|
||||
168
README.Cygwin
168
README.Cygwin
@@ -1,168 +0,0 @@
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
Mercury has been ported to Windows using the "Cygwin"
|
||||
(formerly also known as "Cygwin32" and "gnu-win32") Unix emulation
|
||||
package. We have tested the port on the following versions of Windows:
|
||||
|
||||
* Windows XP SP3
|
||||
* Windows 7
|
||||
* Windows Server 2008 R2
|
||||
|
||||
It should also work with Windows XP SP2 and Windows Vista but we have not
|
||||
tested it with those.
|
||||
|
||||
In the past Mercury worked with Windows, 95, 98, ME, 2000 and NT but we no
|
||||
longer actively maintain support for those versions.
|
||||
|
||||
This file documents how to install the binary distribution of
|
||||
Mercury on Windows and how to build the source distribution
|
||||
of Mercury on Windows using Cygwin. This installation will use the GNU
|
||||
C compiler by default. If you want to use the Microsoft Visual C
|
||||
compiler, please see the file README.MS-VisualC.md.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
PREPARATION
|
||||
|
||||
To use or build Mercury on Windows, you need to first get Cygwin and
|
||||
install it. Cygwin version 1.3.1 is buggy and should not be used, but
|
||||
Cygwin 1.1.* or Cygwin 1.3.2 or later should be OK. Recent versions of
|
||||
Cygwin can be installed directly from:
|
||||
|
||||
<http://cygwin.com/setup-x86.exe>
|
||||
|
||||
This program will download and install the required components.
|
||||
|
||||
If you want more information on Cygwin, see the site:
|
||||
|
||||
<https://cygwin.com>
|
||||
|
||||
If you're going to use a binary distribution of Mercury for Windows,
|
||||
you need to make sure that you get a version of Cygwin that is
|
||||
compatible with the one that the binary distribution was compiled
|
||||
with. This will normally be specified in the filename of the
|
||||
Mercury binary distribution. For example, if the file name is
|
||||
mercury-0.9.1.pc-windows-cygwin-1.1.4.tar.gz then you need version
|
||||
1.1.4 of Cygwin. Later versions may work also, however it is always
|
||||
possible that compatibility might break at some point. Cygwin will
|
||||
create a file C:\cygwin\setup.txt that lists the versions of every
|
||||
package installed.
|
||||
|
||||
Before continuing, check that you can run Cygwin and get a command line
|
||||
shell, and that `gcc' (the GNU C compiler) works.
|
||||
|
||||
For more information on Cygwin, see the Cygwin web site mentioned above.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
UNPACKING THE SOURCES
|
||||
|
||||
After installing Cygwin, you should download the Mercury source or
|
||||
binary distribution, and unpack it.
|
||||
|
||||
You should use Cygwin's tar program to unpack the Mercury distribution.
|
||||
From a cygwin command shell, use the `cd' command to change directory
|
||||
to the directory where you saved the source or binary distribution that
|
||||
you downloaded, and then use `tar zxf <filename>' to unpack it,
|
||||
where <filename> is the filename that you downloaded, e.g.
|
||||
mercury-compiler-<VERSION>.tar.gz (for the source distribution), or
|
||||
mercury-<VERSION>.i686-pc-cygwin-windows.tar.gz (for the binary distribution).
|
||||
|
||||
Note that other programs which understand tar.gz files (e.g. WinZip)
|
||||
may not be able to unpack them in the correct manner for use with Cygwin.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
RUNNING CONFIGURE
|
||||
|
||||
Use the `cd' command to change directory to the directory that you just
|
||||
unpacked, and then configure with
|
||||
|
||||
sh configure
|
||||
|
||||
as described in the INSTALL file.
|
||||
On Windows 2000 or XP, it may start up the "Microsoft Management Console"
|
||||
program (the autoconfiguration process looks for a program named "mmc").
|
||||
If so, just close that application, e.g. by selecting "Exit" from
|
||||
the "Console" menu.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
RUNNING MAKE INSTALL
|
||||
|
||||
Just type
|
||||
|
||||
make install
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
USING MERCURY
|
||||
|
||||
Once you've finished installing, you need to add the appropriate
|
||||
directory, normally /usr/local/mercury-<VERSION>/bin, to your PATH.
|
||||
If you are familiar with how to set the PATH for command-line programs
|
||||
in Windows you can add
|
||||
|
||||
C:\cygwin\usr\local\mercury-<VERSION>\bin
|
||||
|
||||
to that path.
|
||||
|
||||
Otherwise you can just set the path in Cygwin by creating a file called
|
||||
`.bashrc' in your Cygwin home directory that contains the line:
|
||||
|
||||
PATH=/usr/local/mercury-<VERSION>/bin:$PATH
|
||||
|
||||
You Cygwin home directory can be found in C:\cygwin\home\username\
|
||||
if using Windows Explorer (Cygwin will call your home directory
|
||||
`/home/username' or simply `~').
|
||||
|
||||
On Windows 2000, you need to make sure that this directory precedes
|
||||
the Windows system directory in the PATH, otherwise `mmc' will invoke the
|
||||
Microsoft Management Console rather than the Melbourne Mercury Compiler.
|
||||
In this case it might be a good idea to modify your path in your
|
||||
.bashrc rather than in the Windows PATH environment variable, so as to
|
||||
not confuse any other programs that might be looking for the Microsoft
|
||||
Management Console.
|
||||
|
||||
You should be able to read the HTML version of the Mercury
|
||||
documentation, which by default gets installed in
|
||||
C:\cygwin\usr\local\mercury-<VERSION>\lib\mercury\html, using Netscape
|
||||
or MS Internet Explorer. Or you can get a copy of GNU Emacs
|
||||
for NT and use it to browse the INFO version.
|
||||
|
||||
If you use mmake files named `Mmake' rather than `Mmakefile',
|
||||
there can be some problems with case-insensitive filenames
|
||||
and the name clash between `mmake' and `Mmake'. If you run into any
|
||||
such problems, rename your `Mmake' file to `Mmakefile'.
|
||||
|
||||
To write Mercury programs, simply create a new .m file in your favourite
|
||||
editor. Run `mmc <filename>.m' on the Cygwin command line to compile
|
||||
small programs, or use `mmake' to handle larger systems. See the
|
||||
Mercury Users Guide for more information about the command line tools.
|
||||
There is currently no GUI for editing and compiling Mercury programs,
|
||||
although it is quite likely you can hook up a sophisticated editor to
|
||||
run `mmc' and/or `mmake' for you.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
MEMORY ALLOCATION
|
||||
|
||||
By default no Cygwin program can allocate more than 384 MB of memory
|
||||
(program+data). It is possible to exceed this limit, especially if one
|
||||
is using a debugging grade. In which case the runtime will report the
|
||||
following error
|
||||
|
||||
"GC Warning: Out of Memory! Returning NIL!"
|
||||
|
||||
To increase the maximum amount of memory a cygwin program can consume
|
||||
execute the following command, replacing 1024 with a value that makes
|
||||
sense for your system.
|
||||
|
||||
regtool -i set /HKLM/Software/Cygnus\ Solutions/Cygwin/heap_chunk_in_mb 1024
|
||||
|
||||
See <http://cygwin.com/cygwin-ug-net/setup-maxmem.html> for more
|
||||
details.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
17
README.Cygwin.md
Normal file
17
README.Cygwin.md
Normal file
@@ -0,0 +1,17 @@
|
||||
Mercury on Cygwin
|
||||
=================
|
||||
|
||||
This file documents the port of Mercury to Windows using
|
||||
[Cygwin](https://www.cygwin.com) (i.e the `x86_64-pc-cygwin` configuration).
|
||||
|
||||
The x86 (32-bit) version of Cygwin has reached its end-of-life and
|
||||
is no longer supported by Mercury.
|
||||
|
||||
Installations of Mercury on Cygwin will use the Cygwin port of the GNU C
|
||||
compiler (GCC) by default. When using the Cygwin port of GCC, programs will
|
||||
have a dependency on the Cygwin DLL (`cygwin1.dll`).
|
||||
|
||||
You may also use the Cygwin environment to build a Mercury installation that
|
||||
uses an alternative C compiler, such as Microsoft Visual C.
|
||||
(See [README.MS-VisualC.md](README.MS-VisualC.md) and
|
||||
[README.MS-Windows.md](README.MS-Windows.md) for further details.)
|
||||
@@ -56,7 +56,7 @@ shells do the following:
|
||||
|
||||
or this one to start the Cygwin shell:
|
||||
|
||||
C:\> C:\CYGWIN\cygwin.bat
|
||||
C:\> C:\cygwin64\Cygwin.bat
|
||||
|
||||
(We assume the default installation locations for MinGW/MSYS and Cygwin above.)
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ build Mercury on Windows.
|
||||
|
||||
Three such environments are supported:
|
||||
|
||||
1. [Cygwin](https://www.cygwin.com). See [README.Cygwin](README.Cygwin).
|
||||
1. [Cygwin](https://www.cygwin.com). See [README.Cygwin.md](README.Cygwin.md).
|
||||
|
||||
2. [MSYS](https://osdn.net/projects/mingw/). See [README.MinGW](README.MinGW).
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ Specific information is contained in individual README files:
|
||||
* [Windows](README.MS-Windows.md)
|
||||
([Visual C](README.MS-VisualC.md),
|
||||
[MinGW](README.MinGW),
|
||||
[Cygwin](README.Cygwin))
|
||||
[Cygwin](README.Cygwin.md)
|
||||
|
||||
* Other platform information
|
||||
* [Cross compilation](README.cross.md)
|
||||
|
||||
Reference in New Issue
Block a user