From b1b4f9ff977ef610f2eb2efb28228f26e3441fcf Mon Sep 17 00:00:00 2001 From: Julien Fischer Date: Mon, 14 Aug 2023 12:10:25 +1000 Subject: [PATCH] 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. --- NEWS.md | 2 + README.Cygwin | 168 ------------------------------------------- README.Cygwin.md | 17 +++++ README.MS-VisualC.md | 2 +- README.MS-Windows.md | 2 +- README.md | 2 +- 6 files changed, 22 insertions(+), 171 deletions(-) delete mode 100644 README.Cygwin create mode 100644 README.Cygwin.md diff --git a/NEWS.md b/NEWS.md index 6dd54436a..77685c007 100644 --- a/NEWS.md +++ b/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 --------------------------------------- diff --git a/README.Cygwin b/README.Cygwin deleted file mode 100644 index b5840004c..000000000 --- a/README.Cygwin +++ /dev/null @@ -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: - - - -This program will download and install the required components. - -If you want more information on Cygwin, see the site: - - - -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 ' to unpack it, -where is the filename that you downloaded, e.g. -mercury-compiler-.tar.gz (for the source distribution), or -mercury-.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-/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-\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-/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-\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 .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 for more -details. - ------------------------------------------------------------------------------ diff --git a/README.Cygwin.md b/README.Cygwin.md new file mode 100644 index 000000000..a94fa8214 --- /dev/null +++ b/README.Cygwin.md @@ -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.) diff --git a/README.MS-VisualC.md b/README.MS-VisualC.md index b080d6ed9..26984d094 100644 --- a/README.MS-VisualC.md +++ b/README.MS-VisualC.md @@ -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.) diff --git a/README.MS-Windows.md b/README.MS-Windows.md index 29f93b424..07238af6c 100644 --- a/README.MS-Windows.md +++ b/README.MS-Windows.md @@ -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). diff --git a/README.md b/README.md index 2fad7952e..c78c5b7f2 100644 --- a/README.md +++ b/README.md @@ -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)