[Hackage] #720: Executables fail on windows if the executable
name has a dot in it
Hackage
cvs-ghc at haskell.org
Wed Jul 28 14:49:34 EDT 2010
#720: Executables fail on windows if the executable name has a dot in it
----------------------------+-----------------------------------------------
Reporter: j3h | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: Cabal library | Version:
Severity: normal | Keywords:
Difficulty: unknown | Ghcversion:
Platform: |
----------------------------+-----------------------------------------------
Comment(by duncan):
Currently the code does:
{{{
-- exeNameReal, the name that GHC really uses (with .exe on Windows)
let exeNameReal = exeName' <.>
(if null $ takeExtension exeName' then exeExtension
else "")
}}}
Where as I would expect it should be simply
{{{
-- exeNameReal, the name that GHC really uses (with .exe on Windows)
let exeNameReal = exeName' <.> exeExtension
}}}
since `p <.> "" = p`.
It is not clear to me why the code is like it is now. The code was added
by the patch
{{{
Mon Aug 21 15:30:21 BST 2006 Neil Mitchell
* Make -o use the filename as GHC will, i.e. with .exe on the end for
Windows.
This fixes a GHC 6.4.2 bug with relinking every time.
}}}
the code was
{{{
-- exeNameReal, the name that GHC really uses (with .exe on Windows)
let exeNameReal = exeName' `joinFileExt`
(if null $ snd $ splitFileExt exeName' then
exeExtension else "")
}}}
Previously it had relied on ghc adding the .exe extension. It is still not
obvious why it is coded the way it is, if it's an oversight or something
I'm missing. In principle the above allows people to make an executable
that does not use the .exe extension.
--
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/720#comment:2>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects
More information about the cabal-devel
mailing list