
I disagree that this is a bug or misfeature in the Haskell Platform. The
problem is caused by a quirk in how Windows works.
There are a few other options I didn't mention. One is to delete the global
entry from the 'system' path variable and insert it into the 'user' path
variable somewhere after the "%appdata%\cabal\bin" entry. The downside here
is that other user accounts will be affected. Another option is to use a
custom shortcut or execute a batch script which manually sets PATH
variables as needed. This is the method I use personally.
On Mon, Jul 13, 2015 at 10:01 AM, Sven Panne
2015-07-13 18:41 GMT+02:00 Michael Steele
: On Windows the 'system' path variable always has precedence over the 'user' path variable (see [1]). You will need to rename, delete, or overwrite the version of cabal.exe installed globally for the one under %appdata% to be used.
To me that looks like a bug in the Haskell Platform installer: It puts the path to the tools shipped with the platform into the the system PATH and the path to the user-installed tools (i.e. the stuff below %APPDATA%) into the user part of the PATH. This way, you will always get the shipped alex/cabal/happy/HsColour, not the new stuff. This is a bit like putting e.g. /usr/bin before your $HOME/bin on *nices, which is exactly the wrong way round.
Furthermore, I've just seen that there is a 'C:\Program Files\Haskell\bin' at the start of my system PATH, pointing to nowhere. Is this a remnant of former GHC/platform installations? No clue where this comes from...
-- -- Michael Steele