Windows Installer RC

Mikhail Glushenkov the.dead.shall.rise at
Sat May 2 13:19:24 EDT 2009

Hi Claus,

Claus Reinke <claus.reinke at ...> writes:

> >    * We now use a single root directory for both GHC and
> >      extralibs
> >      ($PROGRAMFILES\Haskell Platform\$HP_VERSION).
> Is this location configurable?

Of course you can change the install location. You'll have to
edit packages.conf manually, though, if you'll later decide to
move the Haskell Platform directory somewhere else.

> What is the directory structure below the root?

GHC installation is under $INSTDIR/ghc-$GHC_VERSION, and
extralibs are under $INSTDIR/extralibs. Uninstaller is under

> Thanks, that is good to know. Combined with uninstall and better
> compression, that means I'll actually want to use this for a GHC 6.10.3
> installation (when things are stable, to replace my ageing GHC 6.8.3
> (which I mostly use to build GHC head, and to check what non-head
> users can see on their systems). 

Glad to hear that:-)

> Will all files be extracted under the root?

Yes, see above.

> Could you please provide some details about what the default
> installation mode will do to the system settings or registry, so that
> people can make an informed choice about which installation mode
> to use?

By default, the installer:

   1. Unpacks all files to the specified location (mandatory)

   2. Updates packages.conf (mandatory)

   3. Associates .hs/.lhs files with GHCi (optional)

   4. Adds $INSTDIR/ghc-$GHC_VERSION/bin, $INSTDIR/extralibs/bin
   and $PROGRAMFILES/Haskell/bin to PATH (optional)

   5. Stores GHC's location in registry (optional)

   6. Creates and registers the uninstaller (optional)

The standard mode includes items 1-6, while the "just unpack"
mode includes only 1 and 2. You can also select any of items 3-6

If you want more details, you can read the source:

(the main source file is Nsisfile.nsi)

> what happens to existing settings,

File associations are not currently backed up, though the
uninstaller won't delete them if they weren't modified during

> how does the installer integrate with existing installations of
> GHC, Cabal, WinHugs, ...?

Haven't tested. If you want to be absolutely safe, use the "just
unpack" mode for now.

> In terms of integrating with existing Cabal, I assume the installer
> does not actually include a pre-populated Cabal, but only a pre-
> populated GHC package database and the Cabal install tool, and
> will not overwrite existing '<path>/Application Data/cabal' or
> '<path>/Application Data/ghc/ghci.conf'. Is that correct?

> Btw, is GHC the only implementation currently included in the HP?

Yes, as you can see on the website.

> I've always had difficulties understanding the advantage of providing
> GLUT in an incomplete and unusable form (glut32.dll is some 200K
> uncompressed, GLUT can't be used without it, and the dll is from the
> same non-Haskell package that provides glut.h as well, so why include
> one but not the other?). Finding and adding a dll is easier than building
> the package, but for a Haskell Platform release this is bordering on the
> ridiculous, isn't it?-)
> "Batteries included, but you'll have to buy the lightbulbs separately, sorry"

I think that third-party C libraries will be included in some
form in the next versions, but for now it was decided to leave
glut32.dll out.

More information about the Haskell-platform mailing list