yesodweb / yesod

A RESTful Haskell web framework built on WAI.
http://www.yesodweb.com/
MIT License
2.64k stars 374 forks source link

linker error on windows #1020

Closed solatis closed 9 years ago

solatis commented 9 years ago

Ok, I've been fighting this issue for 2 days now, and suspect it might be a configuration error of some sorts. Steps to reproduce:

C:\Users\leon\Documents\GitHub\tmp> yesod init -- name project 'bar' and select 'simple'
C:\Users\leon\Documents\GitHub\tmp> cd bar
C:\Users\leon\Documents\GitHub\tmp\bar>
C:\Users\leon\Documents\GitHub\tmp\bar> cabal sandbox init
Writing a default package environment file to
C:\Users\leon\Documents\GitHub\tmp\bar\cabal.sandbox.config
Creating a new sandbox at
C:\Users\leon\Documents\GitHub\tmp\bar\.cabal-sandbox

C:\Users\leon\Documents\GitHub\tmp\bar> cabal install -j --enable-tests --max-backjumps=-1 --reorder-goals

[ .. snip .. ]

[1 of 1] Compiling Main             ( app\main.hs, dist\dist-sandbox-7efef30f\build\bar\bar-tmp\Main.p_o )
Linking dist/dist-sandbox-7efef30f\build\bar\bar.exe ...
ghc.exe: could not execute: C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-x86_64\ghc-7.10.1\lib/../mingw/bin/gcc.ex
e
cabal.exe: Error: some packages failed to install:
bar-0.0.0 failed during the building phase. The exception was:
ExitFailure 1

C:\Users\leon\Documents\GitHub\tmp\bar> ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.10.1
C:\Users\leon\Documents\GitHub\tmp\bar> cabal --version
cabal-install version 1.22.6.0
using version 1.22.4.0 of the Cabal library

C:\Users\leon\Documents\GitHub\tmp\bar> & "C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-x86_64\ghc-7.10.1\mingw\bin\gcc.exe" --version
gcc.exe (rubenvb-4.6.3) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I have tried many different things to make sure it's not my environment (delete MinGHC, reinstall MinGHC 7.8, upgrade to MinGHC 7.10, start fresh projects, etc) that I am looking for confirmation whether this is a reproduceable error.

It is worth pointing out that the same build runs fine under Linux, which raises my suspicions that this might be an untested corner case.

Also related is that yesod devel has no problems running.

Here is a gist that has the complete output of a -v3 invocation of cabal install: https://gist.github.com/solatis/fb4114624c1724e50aa9

snoyberg commented 9 years ago

Have you tried the 32-bit GHC? I've heard that there are issues with 64-bit. I almost always use 32-bit on Windows.

solatis commented 9 years ago

Just retried, same issue:

Using a sandbox located at
C:\Users\leon\Documents\GitHub\tmp\bar\.cabal-sandbox
Reading available packages...
Reading installed packages...
"C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\bin\ghc-pkg.exe" "dump" "--package-db=C:\Users\leon\Documents\GitHub\tmp\bar\.cabal-sandbox\i386-windows-ghc-7.10.1-packages.conf.d" "-v0"
"C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\bin\ghc.exe" "--print-libdir"
Found no modified add-source deps.
Component build order: library, executable 'bar'
creating dist\build
creating dist\build\autogen
Building bar-0.0.0...
"C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\bin\ghc-pkg.exe" "init" "dist\package.conf.inplace"
Preprocessing library bar-0.0.0...
Building library...
creating dist\build
"C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\bin\ghc.exe" "--make" "-fbuilding-cabal-package" "-j4" "-outputdir" "dist\build" "-odir" "dist\build" "-hidir" "dist\build" "-stubdir" "dist\build" "-i" "-idist\build" "-i." "-iapp" "-idist\build\autogen" "-Idist\build\autogen" "-Idist\build" "-optP-include" "-optPdist\build\autogen\cabal_macros.h" "-this-package-key" "bar_5VKdKdpJiTHAeLuFrm8Scd" "-hide-all-packages" "-no-user-package-db" "-package-db" "C:\Users\leon\Documents\GitHub\tmp\bar\.cabal-sandbox\i386-windows-ghc-7.10.1-packages.conf.d" "-package-db" "dist\package.conf.inplace" "-package-id" "aeson-0.8.1.1-14a2b09323859bee21295ff5318e34f7" "-package-id" "base-4.8.0.0-8eea4af8c36d744e7725aef46da8fe04" "-package-id" "bytestring-0.10.6.0-74639738103b2837892e28d17c5c0306" "-package-id" "classy-prelude-0.12.0.1-d7850701321fc6ad5c83bb16e05af22c" "-package-id" "classy-prelude-conduit-0.12.0-188c315042004e993375b5589a39a2ea" "-package-id" "classy-prelude-yesod-0.12.0-85e0afa91bfa1121f9319fc4060c865f" "-package-id" "conduit-1.2.4.2-11d794ef1508f35afe91390d226f317e" "-package-id" "containers-0.5.6.2-a9cf37ac850eb27546813a4434b0e1e3" "-package-id" "data-default-0.5.3-a87ad971de5440e984b68e075ccea45b" "-package-id" "directory-1.2.2.0-12cc0b39085ac3ab516a2ad00494fe1d" "-package-id" "fast-logger-2.3.1-26834c1386acb302afdcbf7393719328" "-package-id" "file-embed-0.0.8.2-a52082e04340c54f895944767c4c6604" "-package-id" "hjsmin-0.1.4.7-95b9a06c40c4a707f37aac9bbeb228f4" "-package-id" "http-conduit-2.1.5-bd84731a26f5b9d49a105d7dba8a04b4" "-package-id" "monad-control-1.0.0.4-5f003aa2bc2f8799801c2fe9f66cffc6" "-package-id" "monad-logger-0.3.13.1-8bcab1452ee2285c02978071db485f97" "-package-id" "safe-0.3.9-8a38da9cd04a87c60b0f5b475f275f81" "-package-id" "shakespeare-2.0.5-f79a45969d28c35024680ac5fd11ca95" "-package-id" "template-haskell-2.10.0.0-a5d7cca506cff6c2a24d2a2cf8911961" "-package-id" "text-1.2.1.1-927f5f66eeb142aef12e7847e75ca3fc" "-package-id" "time-1.5.0.1-3382350c026cfd0013a5e3025264687a" "-package-id" "unordered-containers-0.2.5.1-bae510b7cb90faf501978e0c86f420d0" "-package-id" "vector-0.10.12.3-2dd66414d4859257283daa5dad1f689e" "-package-id" "wai-extra-3.0.7.1-7d4c7871e030ac36e060bbde7607b850" "-package-id" "wai-logger-2.2.4.1-43d6dad22599269c92bba48baa8971e5" "-package-id" "warp-3.0.13.1-fc9d5004722d3b5662d13a2441b4fa6b" "-package-id" "yaml-0.8.11-4ccb0208e18df696f09e438de19ab071" "-package-id" "yesod-1.4.1.5-db903142d4259a3b3832cc9f3b700d1d" "-package-id" "yesod-core-1.4.11-63637dc349c258613bad2ad0d06ab71d" "-package-id" "yesod-form-1.4.4.1-995b186816b972bd9c48b27b6b884aed" "-package-id" "yesod-static-1.4.0.4-4af8c21f8041623ecceebed3e3f09311" "-XHaskell98" "-XTemplateHaskell" "-XQuasiQuotes" "-XOverloadedStrings" "-XNoImplicitPrelude" "-XCPP" "-XMultiParamTypeClasses" "-XTypeFamilies" "-XGADTs" "-XGeneralizedNewtypeDeriving" "-XFlexibleContexts" "-XEmptyDataDecls" "-XNoMonomorphismRestriction" "-XDeriveDataTypeable" "-XViewPatterns" "-XTupleSections" "-XRecordWildCards" "Application" "Foundation" "Import" "Import.NoFoundation" "Settings" "Settings.StaticFiles" "Handler.Common" "Handler.Home" "-Wall" "-fwarn-tabs" "-O2"
Linking...
[(InstalledPackageId
"aeson-0.8.1.1-14a2b09323859bee21295ff5318e34f7",PackageIdentifier {pkgName =
PackageName {unPackageName = "aeson"}, pkgVersion = Version {versionBranch =
[0,8,1,1], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"base-4.8.0.0-8eea4af8c36d744e7725aef46da8fe04",PackageIdentifier {pkgName =
PackageName {unPackageName = "base"}, pkgVersion = Version {versionBranch =
[4,8,0,0], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"bytestring-0.10.6.0-74639738103b2837892e28d17c5c0306",PackageIdentifier
{pkgName = PackageName {unPackageName = "bytestring"}, pkgVersion = Version
{versionBranch = [0,10,6,0], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"classy-prelude-0.12.0.1-d7850701321fc6ad5c83bb16e05af22c",PackageIdentifier
{pkgName = PackageName {unPackageName = "classy-prelude"}, pkgVersion =
Version {versionBranch = [0,12,0,1], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"classy-prelude-conduit-0.12.0-188c315042004e993375b5589a39a2ea",PackageIdentifier
{pkgName = PackageName {unPackageName = "classy-prelude-conduit"}, pkgVersion
= Version {versionBranch = [0,12,0], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"classy-prelude-yesod-0.12.0-85e0afa91bfa1121f9319fc4060c865f",PackageIdentifier
{pkgName = PackageName {unPackageName = "classy-prelude-yesod"}, pkgVersion =
Version {versionBranch = [0,12,0], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"conduit-1.2.4.2-11d794ef1508f35afe91390d226f317e",PackageIdentifier {pkgName
= PackageName {unPackageName = "conduit"}, pkgVersion = Version {versionBranch
= [1,2,4,2], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"containers-0.5.6.2-a9cf37ac850eb27546813a4434b0e1e3",PackageIdentifier
{pkgName = PackageName {unPackageName = "containers"}, pkgVersion = Version
{versionBranch = [0,5,6,2], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"data-default-0.5.3-a87ad971de5440e984b68e075ccea45b",PackageIdentifier
{pkgName = PackageName {unPackageName = "data-default"}, pkgVersion = Version
{versionBranch = [0,5,3], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"directory-1.2.2.0-12cc0b39085ac3ab516a2ad00494fe1d",PackageIdentifier
{pkgName = PackageName {unPackageName = "directory"}, pkgVersion = Version
{versionBranch = [1,2,2,0], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"fast-logger-2.3.1-26834c1386acb302afdcbf7393719328",PackageIdentifier
{pkgName = PackageName {unPackageName = "fast-logger"}, pkgVersion = Version
{versionBranch = [2,3,1], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"file-embed-0.0.8.2-a52082e04340c54f895944767c4c6604",PackageIdentifier
{pkgName = PackageName {unPackageName = "file-embed"}, pkgVersion = Version
{versionBranch = [0,0,8,2], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"hjsmin-0.1.4.7-95b9a06c40c4a707f37aac9bbeb228f4",PackageIdentifier {pkgName =
PackageName {unPackageName = "hjsmin"}, pkgVersion = Version {versionBranch =
[0,1,4,7], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"http-conduit-2.1.5-bd84731a26f5b9d49a105d7dba8a04b4",PackageIdentifier
{pkgName = PackageName {unPackageName = "http-conduit"}, pkgVersion = Version
{versionBranch = [2,1,5], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"monad-control-1.0.0.4-5f003aa2bc2f8799801c2fe9f66cffc6",PackageIdentifier
{pkgName = PackageName {unPackageName = "monad-control"}, pkgVersion = Version
{versionBranch = [1,0,0,4], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"monad-logger-0.3.13.1-8bcab1452ee2285c02978071db485f97",PackageIdentifier
{pkgName = PackageName {unPackageName = "monad-logger"}, pkgVersion = Version
{versionBranch = [0,3,13,1], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"safe-0.3.9-8a38da9cd04a87c60b0f5b475f275f81",PackageIdentifier {pkgName =
PackageName {unPackageName = "safe"}, pkgVersion = Version {versionBranch =
[0,3,9], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"shakespeare-2.0.5-f79a45969d28c35024680ac5fd11ca95",PackageIdentifier
{pkgName = PackageName {unPackageName = "shakespeare"}, pkgVersion = Version
{versionBranch = [2,0,5], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"template-haskell-2.10.0.0-a5d7cca506cff6c2a24d2a2cf8911961",PackageIdentifier
{pkgName = PackageName {unPackageName = "template-haskell"}, pkgVersion =
Version {versionBranch = [2,10,0,0], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"text-1.2.1.1-927f5f66eeb142aef12e7847e75ca3fc",PackageIdentifier {pkgName =
PackageName {unPackageName = "text"}, pkgVersion = Version {versionBranch =
[1,2,1,1], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"time-1.5.0.1-3382350c026cfd0013a5e3025264687a",PackageIdentifier {pkgName =
PackageName {unPackageName = "time"}, pkgVersion = Version {versionBranch =
[1,5,0,1], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"unordered-containers-0.2.5.1-bae510b7cb90faf501978e0c86f420d0",PackageIdentifier
{pkgName = PackageName {unPackageName = "unordered-containers"}, pkgVersion =
Version {versionBranch = [0,2,5,1], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"vector-0.10.12.3-2dd66414d4859257283daa5dad1f689e",PackageIdentifier {pkgName
= PackageName {unPackageName = "vector"}, pkgVersion = Version {versionBranch
= [0,10,12,3], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"wai-extra-3.0.7.1-7d4c7871e030ac36e060bbde7607b850",PackageIdentifier
{pkgName = PackageName {unPackageName = "wai-extra"}, pkgVersion = Version
{versionBranch = [3,0,7,1], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"wai-logger-2.2.4.1-43d6dad22599269c92bba48baa8971e5",PackageIdentifier
{pkgName = PackageName {unPackageName = "wai-logger"}, pkgVersion = Version
{versionBranch = [2,2,4,1], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"warp-3.0.13.1-fc9d5004722d3b5662d13a2441b4fa6b",PackageIdentifier {pkgName =
PackageName {unPackageName = "warp"}, pkgVersion = Version {versionBranch =
[3,0,13,1], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"yaml-0.8.11-4ccb0208e18df696f09e438de19ab071",PackageIdentifier {pkgName =
PackageName {unPackageName = "yaml"}, pkgVersion = Version {versionBranch =
[0,8,11], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"yesod-1.4.1.5-db903142d4259a3b3832cc9f3b700d1d",PackageIdentifier {pkgName =
PackageName {unPackageName = "yesod"}, pkgVersion = Version {versionBranch =
[1,4,1,5], versionTags = []}},ModuleRenaming True []),(InstalledPackageId
"yesod-core-1.4.11-63637dc349c258613bad2ad0d06ab71d",PackageIdentifier
{pkgName = PackageName {unPackageName = "yesod-core"}, pkgVersion = Version
{versionBranch = [1,4,11], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"yesod-form-1.4.4.1-995b186816b972bd9c48b27b6b884aed",PackageIdentifier
{pkgName = PackageName {unPackageName = "yesod-form"}, pkgVersion = Version
{versionBranch = [1,4,4,1], versionTags = []}},ModuleRenaming True
[]),(InstalledPackageId
"yesod-static-1.4.0.4-4af8c21f8041623ecceebed3e3f09311",PackageIdentifier
{pkgName = PackageName {unPackageName = "yesod-static"}, pkgVersion = Version
{versionBranch = [1,4,0,4], versionTags = []}},ModuleRenaming True [])]
"C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\mingw\bin\ar.exe" "-r" "dist\build\objs-7072\libHSbar-0.0.0-5VKdKdpJiTHAeLuFrm8Scd.a" "dist\build\Application.o" "dist\build\Foundation.o" "dist\build\Import.o" "dist\build\Import\NoFoundation.o" "dist\build\Settings.o" "dist\build\Settings\StaticFiles.o" "dist\build\Handler\Common.o" "dist\build\Handler\Home.o"
"C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\mingw\bin\ld.exe" "-x" "-r" "-o" "dist\build\HSbar-0.0.0-5VKdKdpJiTHAeLuFrm8Scd.o" "dist\build\Application.o" "dist\build\Foundation.o" "dist\build\Import.o" "dist\build\Import\NoFoundation.o" "dist\build\Settings.o" "dist\build\Settings\StaticFiles.o" "dist\build\Handler\Common.o" "dist\build\Handler\Home.o"
In-place registering bar-0.0.0...
"C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\bin\ghc-pkg.exe" "update" "-" "--global" "--no-user-package-db" "--package-db=C:\Users\leon\Documents\GitHub\tmp\bar\.cabal-sandbox\i386-windows-ghc-7.10.1-packages.conf.d" "--package-db=dist\package.conf.inplace"
Preprocessing executable 'bar' for bar-0.0.0...
Building executable bar...
creating dist\build\bar
creating dist\build\bar\bar-tmp
"C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\bin\ghc.exe" "--make" "-no-link" "-fbuilding-cabal-package" "-j4" "-static" "-outputdir" "dist\build\bar\bar-tmp" "-odir" "dist\build\bar\bar-tmp" "-hidir" "dist\build\bar\bar-tmp" "-stubdir" "dist\build\bar\bar-tmp" "-i" "-idist\build\bar\bar-tmp" "-iapp" "-idist\build\autogen" "-Idist\build\autogen" "-Idist\build\bar\bar-tmp" "-optP-include" "-optPdist\build\autogen\cabal_macros.h" "-hide-all-packages" "-no-user-package-db" "-package-db" "C:\Users\leon\Documents\GitHub\tmp\bar\.cabal-sandbox\i386-windows-ghc-7.10.1-packages.conf.d" "-package-db" "dist\package.conf.inplace" "-package-id" "bar-0.0.0-inplace" "-package-id" "base-4.8.0.0-8eea4af8c36d744e7725aef46da8fe04" "-XHaskell98" "app\main.hs" "-threaded" "-O2" "-rtsopts" "-with-rtsopts=-N"
Linking...
"C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\bin\ghc.exe" "--make" "-fbuilding-cabal-package" "-static" "-outputdir" "dist\build\bar\bar-tmp" "-odir" "dist\build\bar\bar-tmp" "-hidir" "dist\build\bar\bar-tmp" "-stubdir" "dist\build\bar\bar-tmp" "-i" "-idist\build\bar\bar-tmp" "-iapp" "-idist\build\autogen" "-Idist\build\autogen" "-Idist\build\bar\bar-tmp" "-optP-include" "-optPdist\build\autogen\cabal_macros.h" "-hide-all-packages" "-no-user-package-db" "-package-db" "C:\Users\leon\Documents\GitHub\tmp\bar\.cabal-sandbox\i386-windows-ghc-7.10.1-packages.conf.d" "-package-db" "dist\package.conf.inplace" "-package-id" "bar-0.0.0-inplace" "-package-id" "base-4.8.0.0-8eea4af8c36d744e7725aef46da8fe04" "-XHaskell98" "app\main.hs" "-o" "dist\build\bar\bar.exe" "-threaded" "-O2" "-rtsopts" "-with-rtsopts=-N"
Linking dist\build\bar\bar.exe ...
ghc.exe: could not execute: C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\lib/../mingw/bin/gcc.exe
C:\Users\leon\Documents\GitHub\tmp\bar> & "C:\Users\leon\AppData\Local\Programs\minghc-7.10.1-i386\ghc-7.10.1\lib/../min
gw/bin/gcc.exe" --version
realgcc.exe (GCC) 4.5.2
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I'm trying to guess there must be something wrong with my environment if this is not a problem anyone can reproduce, since it appears so trivial to reproduce.

Additional things I tried:

Since I am not the most proficient Haskell developer, what would be the next step to debug this issue be ? I am starting to believe this is some issue with a (incorrectly compiled) library being linked due to an environment variable, but cabal gives an awefully low amount of information to find out what error gcc is actually spewing out.

solatis commented 9 years ago

Ok the next step I'm going to take is to reinstall Windows in a VM and see if I can reproduce it there, to rule out any environment configuration errors.

snoyberg commented 9 years ago

This looks like the same issue being reported here: https://github.com/commercialhaskell/stack/issues/466

The working hypothesis there is that GHC is sending too long a command line to gcc for Windows to handle.

solatis commented 9 years ago

Ok. I had some real work distracting me the last week, I'm in the process of building an isolated vm that reproduces the problem, but that's not yet finished. I'll follow the progress on that ticket, and will post here once I have reproduced the problem in a vm.

On Sunday, July 5, 2015, Michael Snoyman notifications@github.com wrote:

This looks like the same issue being reported here: commercialhaskell/stack#466 https://github.com/commercialhaskell/stack/issues/466

The working hypothesis there is that GHC is sending too long a command line to gcc for Windows to handle.

— Reply to this email directly or view it on GitHub https://github.com/yesodweb/yesod/issues/1020#issuecomment-118619736.

Sent from my iPhone

freeman42x commented 9 years ago

@snoyberg Might be a path escaping issue (see https://github.com/commercialhaskell/stack/issues/466#issuecomment-118479814).

snoyberg commented 9 years ago

@razvan-panda That seems unlikely, given that (1) there's no error message about the package database being incorrect, and (2) many other targets can be built correctly.

freeman42x commented 9 years ago

@snoyberg Only way to find out for sure is to give it a try and see what command stack generates. We know that cabal-install generates it correctly is as it works when installed with cabal-install. I gave up for now since the haskell tools lack a lot in the code navigation/debugging capabilities and I'm not familiar with the codebase (and have other things to work on).

snoyberg commented 9 years ago

@razvan-panda I've pasted the command that stack generates multiple times. You've pasted the command stack generates. I think we have an inherent communications disconnect here. stack is calling runghc Setup.hs build, which is just a call into the Cabal library. That's why I'm so convinced that this is not a stack bug, but a GHC issue that stack is triggering.

snoyberg commented 9 years ago

Anyway, we shouldn't leak that stack issue over here...

snoyberg commented 9 years ago

The conclusion was: we cannot work around a GHC/Windows limitation like this, so closing.

solatis commented 9 years ago

is this something that you expect to be fixed in the near future by an upstream project such as cabal or ghc ?

On Monday, July 20, 2015, Michael Snoyman notifications@github.com wrote:

The conclusion was: we cannot work around a GHC/Windows limitation like this, so closing.

— Reply to this email directly or view it on GitHub https://github.com/yesodweb/yesod/issues/1020#issuecomment-122714679.

Sent from my iPhone

snoyberg commented 9 years ago

No, it doesn't look like it. It can be raised with GHC, and perhaps there's a way we could change how gcc.exe is called (I did some research into using the exec system calls).

On Fri, Jul 24, 2015 at 9:22 AM Leon Mergen notifications@github.com wrote:

is this something that you expect to be fixed in the near future by an upstream project such as cabal or ghc ?

On Monday, July 20, 2015, Michael Snoyman notifications@github.com wrote:

The conclusion was: we cannot work around a GHC/Windows limitation like this, so closing.

— Reply to this email directly or view it on GitHub https://github.com/yesodweb/yesod/issues/1020#issuecomment-122714679.

Sent from my iPhone

— Reply to this email directly or view it on GitHub https://github.com/yesodweb/yesod/issues/1020#issuecomment-124572016.

solatis commented 9 years ago

Is this limited to a specific version of Windows, or is more testing required ? I need to cross-compile my Yesod application on Windows, and I don't care which version of Windows that is... as long as it compiles.

I guess I'll do my own testing.

Met vriendelijke groet,

Leon Mergen

On Fri, Jul 24, 2015 at 11:56 PM, Michael Snoyman notifications@github.com wrote:

No, it doesn't look like it. It can be raised with GHC, and perhaps there's a way we could change how gcc.exe is called (I did some research into using the exec system calls).

On Fri, Jul 24, 2015 at 9:22 AM Leon Mergen notifications@github.com wrote:

is this something that you expect to be fixed in the near future by an upstream project such as cabal or ghc ?

On Monday, July 20, 2015, Michael Snoyman notifications@github.com wrote:

The conclusion was: we cannot work around a GHC/Windows limitation like this, so closing.

— Reply to this email directly or view it on GitHub <https://github.com/yesodweb/yesod/issues/1020#issuecomment-122714679 .

Sent from my iPhone

— Reply to this email directly or view it on GitHub https://github.com/yesodweb/yesod/issues/1020#issuecomment-124572016.

— Reply to this email directly or view it on GitHub https://github.com/yesodweb/yesod/issues/1020#issuecomment-124578393.

solatis commented 9 years ago

Ok, this is interesting: I tried Windows 7, 8 and 10 with MinGHC, which all generated the same error. However, after just installing Haskell Platform (2014.2) on Windows 10, the problem goes away!

Might have to do with the ancient cabal version. Will investigate further.

solatis commented 9 years ago

Ok, so upgrading cabal has no effect -- Cabal 1.22 with Haskell Platform still works. Downgrading cabal from MinGHC also doesn't fix the problem, so I'm thinking it is not a cabal issue.

I'm running out of my area of expertise to find out what exactly the difference in configuration might be that would cause this.

snoyberg commented 9 years ago

It's probably just an arbitrary thing about file paths. Remember: shorter file paths == short command line, which is the problem here.

snoyberg commented 9 years ago

GHC trac ticket opened: https://ghc.haskell.org/trac/ghc/ticket/10777#ticket