FatHugs

A Win32 build of Hugs98 for large programs
and with Unicode support

Hugs is a portable Haskell interpreter, details of which can be found at http://www.haskell.org/hugs/.

This directory contains modified versions of selected Hugs software files:

These programs are not based on one of the regular Hugs releases, but I have been using the modified Hugs-20040109 program for some time with no indication of any problems. Previously, I released separate versions of the Hugs executable with enlarged code space and Unicode support, but in the absence of any problems I've rationalized my offering to the two programs listed above.

The Hugs 98 system is Copyright © Mark P Jones, Alastair Reid, the Yale Haskell Group, and the OGI School of Science & Engineering at OHSU, 1994-2003, All rights reserved. It is distributed as free software under the license in the file "License", which is included in the distribution, or at:

http://cvs.haskell.org/Hugs/downloads/License

These modifications are made freely available under the same terms.


Build notes

Some notes about how these executables were built for MS-Windows using MS Viosual Studio may be found at:

http://haskell.org/pipermail/haskell/2004-January/013377.html

(This describes the steps taken to build the version with Unicode support. Skip step (1) to build without Unicode support. The size of the code storage area is determined by symbol NUM_ADDRS in prelude.h.)


Modification details

The version of Hugs for Microsoft Windows is shipped as an MSI installer program, which installs a precompiled binary version of the Hugs interpreter. The compiled Hugs program has a predetermined limit on program size, which is adequate for many purposes, but which I found was insufficient for a large test suite I was trying to run.

I have downloaded the Hugs source kit, and (with some fiddling) re-built the console version of Hugs for Microsoft Windows with the code storage space changed from 320000 to 960000 cells (i.e. increased by a factor of three). The version string is changed to "Hugs-20040109". No other parameters are changed. The code was recompiled using an old (1998) version of Microsoft Developer Studio, which may be slightly less efficient that the compiler used to complile the distributed version of Hugs. Based on a casual observation, the change appears to increase the memory usage of Hugs while running from about 42Mb to about 50Mb.

Both of the recompiled programs indicated have successfully run a complex test suite for my Swish software, so I have a good degree of confidence that the basic operations works reliably. The Unicode support has not been subjected to any substantial testing, but both HaXML and HXml Toolbox software seem to be happy with it.

The version string is also used to construct a registry key used to store parameter settings created using the Hugs :set command, so FatHugs settings are kept separately from the standard Hugs installation settings. (The Windows registry key used by Hugs is HKEY_CURRENT_USER\Software\Haskell\Hugs\version.)

Modified versions of the Hugs software files are:

To use the modified program, The normal Hugs98 Nov2003 distribution kit for MS Windows must first be installed. Then download Hugs-20040109.exe and RunHugs-20040109.exe (or Hugs-20040109.zip and Hugs-20040109.zip, and extract their content), and place the program in the Hugs installation directory (that already contains Hugs.exe). When needed, FatHugs.exe can be used in place of Hugs.exe; note that the registry settings for FatHugs must be defined separately from those for the standard Hugs.exe.

(I have not, at this time, created a corresponding version of WinHugs.)


For feedback please see: <http://www.ninebynine.org/index.html#Contact>
$Id: FatHugs.html,v 1.3 2004/04/15 20:24:12 graham Exp $