GHC issueshttps://gitlab.haskell.org/ghc/ghc/-/issues2019-07-07T18:35:55Zhttps://gitlab.haskell.org/ghc/ghc/-/issues/10435catastrophic exception-handling disablement on Windows Server 2008 R22019-07-07T18:35:55Zmalcolm wallacecatastrophic exception-handling disablement on Windows Server 2008 R2We have found a very strange RTS bug that only manifests on some Windows machines, running Windows Server 2008 R2. It does not occur on our Windows 7 machines. We are not sure whether the installed version of Visual C runtime system matt...We have found a very strange RTS bug that only manifests on some Windows machines, running Windows Server 2008 R2. It does not occur on our Windows 7 machines. We are not sure whether the installed version of Visual C runtime system matters.
The context is a ghc-compiled executable, that calls a function from a C++ DLL. The C++ function throws an exception internally, then catches it, and returns normally. The symptom of the bug is that, from ghc-7.8.1 onwards, including ghc-7.10.1, the C++ exception is not caught by the C++ code, but terminates the program catastrophically, with exit code 127. When the Haskell executable is compiled by ghc-7.2.3 or before, the bug does not happen.
If, instead of having the main function in Haskell, we write a wrapper main function in C++, that calls the Haskell from a DLL (and the Haskell then calls back into C++), the bug does not happen. Hence, we surmise there is some ghc RTS initialisation that is specific to Windows, that deals with exception handling, and that is incorrect for certain versions of Windows.
Attached to the ticket, please find (a) a C++ module, which exports a single function that throws an exception and catches it; (b) a Haskell module which imports the C++ via the FFI, and calls it; (c) a build script which compiles the C++ to a DLL, using the MSVC compiler, compiles the Haskell with ghc, and links them together.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------------------------- |
| Version | 7.10.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Runtime System |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | malcolm.wallace@me.com, simonmar |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"catastrophic exception-handling disablement on Windows Server 2008 R2","status":"New","operating_system":"","component":"Runtime System","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"OwnedBy","contents":"simonmar"},"version":"7.10.1","keywords":["exceptions","windows,"],"differentials":[],"test_case":"","architecture":"","cc":["malcolm.wallace@me.com","simonmar"],"type":"Bug","description":"We have found a very strange RTS bug that only manifests on some Windows machines, running Windows Server 2008 R2. It does not occur on our Windows 7 machines. We are not sure whether the installed version of Visual C runtime system matters.\r\n\r\nThe context is a ghc-compiled executable, that calls a function from a C++ DLL. The C++ function throws an exception internally, then catches it, and returns normally. The symptom of the bug is that, from ghc-7.8.1 onwards, including ghc-7.10.1, the C++ exception is not caught by the C++ code, but terminates the program catastrophically, with exit code 127. When the Haskell executable is compiled by ghc-7.2.3 or before, the bug does not happen.\r\n\r\nIf, instead of having the main function in Haskell, we write a wrapper main function in C++, that calls the Haskell from a DLL (and the Haskell then calls back into C++), the bug does not happen. Hence, we surmise there is some ghc RTS initialisation that is specific to Windows, that deals with exception handling, and that is incorrect for certain versions of Windows.\r\n\r\nAttached to the ticket, please find (a) a C++ module, which exports a single function that throws an exception and catches it; (b) a Haskell module which imports the C++ via the FFI, and calls it; (c) a build script which compiles the C++ to a DLL, using the MSVC compiler, compiles the Haskell with ghc, and links them together.","type_of_failure":"OtherFailure","blocking":[]} -->7.10.3Simon MarlowSimon Marlowhttps://gitlab.haskell.org/ghc/ghc/-/issues/9297Packages linked against certain Windows .dll files give warnings at runtime2019-07-07T18:40:59ZRyan ScottPackages linked against certain Windows .dll files give warnings at runtimeI am using GHC 7.8.3 on Windows 7, x86_64. When GHC loads certain packages at runtime, it gives some interesting warnings:
```
> ghci -package haskeline
GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-p...I am using GHC 7.8.3 on Windows 7, x86_64. When GHC loads certain packages at runtime, it gives some interesting warnings:
```
> ghci -package haskeline
GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package array-0.5.0.0 ... linking ... done.
Loading package deepseq-1.3.0.2 ... linking ... done.
Loading package bytestring-0.10.4.0 ... linking ... done.
Loading package Win32-2.3.0.2 ... linking ... done.
Loading package containers-0.5.5.1 ... linking ... done.
Loading package filepath-1.3.0.2 ... linking ... done.
Loading package old-locale-1.0.0.6 ... linking ... done.
Loading package time-1.4.2 ... linking ... done.
Loading package directory-1.2.1.0 ... linking ... done.
Loading package transformers-0.3.0.0 ... linking ... done.
Loading package haskeline-0.7.1.2 ... linking ... ghc.exe: warning: SetConsoleCursorPosition from kernel32 is linked instead of __imp_SetConsoleCursorPosition
ghc.exe: warning: FillConsoleOutputCharacterA from kernel32 is linked instead of __imp_FillConsoleOutputCharacterA
ghc.exe: warning: FillConsoleOutputAttribute from kernel32 is linked instead of __imp_FillConsoleOutputAttribute
done.
Prelude>
```
Besides `haskeline`, other packages with similar problems include `unix-compat`, `network`, and `regex-posix`. To see them all at once, you can run the \[`hermit-web` https://github.com/ku-fpg/hermit-web\] executable:
```
> hermit-web Last.hs
[starting HERMIT-Web v0.1.0.0 on Last.hs]
[starting HERMIT v0.5.0.0 on Last.hs]
% ghc Last.hs -fforce-recomp -O2 -dcore-lint -fsimple-list-literals -fexpose-all-unfoldings -fplugin=HERMIT.Web -fplugin-opt=HERMIT.Web:*:
[1 of 1] Compiling Main ( Last.hs, Last.o )
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package array-0.5.0.0 ... linking ... done.
Loading package deepseq-1.3.0.2 ... linking ... done.
Loading package bytestring-0.10.4.0 ... linking ... done.
Loading package containers-0.5.5.1 ... linking ... done.
Loading package Win32-2.3.0.2 ... linking ... done.
Loading package filepath-1.3.0.2 ... linking ... done.
Loading package old-locale-1.0.0.6 ... linking ... done.
Loading package time-1.4.2 ... linking ... done.
Loading package directory-1.2.1.0 ... linking ... done.
Loading package pretty-1.1.1.1 ... linking ... done.
Loading package process-1.2.0.0 ... linking ... done.
Loading package Cabal-1.18.1.3 ... linking ... done.
Loading package binary-0.7.1.0 ... linking ... done.
Loading package bin-package-db-0.0.0.0 ... linking ... done.
Loading package hoopl-3.10.0.1 ... linking ... done.
Loading package hpc-0.6.0.1 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package transformers-0.3.0.0 ... linking ... done.
Loading package ghc-7.8.3 ... linking ... done.
Loading package haskeline-0.7.1.2 ... linking ... ghc: warning: SetConsoleCursorPosition from kernel32 is linked instead of __imp_SetConsoleCursorPosition
ghc: warning: FillConsoleOutputCharacterA from kernel32 is linked instead of __imp_FillConsoleOutputCharacterA
ghc: warning: FillConsoleOutputAttribute from kernel32 is linked instead of __imp_FillConsoleOutputAttribute
done.
Loading package text-1.1.1.3 ... linking ... done.
Loading package hashable-1.2.2.0 ... linking ... done.
Loading package scientific-0.3.2.2 ... linking ... done.
Loading package attoparsec-0.12.1.0 ... linking ... done.
Loading package dlist-0.7.1 ... linking ... done.
Loading package mtl-2.1.3.1 ... linking ... done.
Loading package syb-0.4.2 ... linking ... done.
Loading package unordered-containers-0.2.5.0 ... linking ... done.
Loading package primitive-0.5.3.0 ... linking ... done.
Loading package vector-0.10.11.0 ... linking ... done.
Loading package aeson-0.7.0.6 ... linking ... done.
Loading package blaze-builder-0.3.3.2 ... linking ... done.
Loading package data-default-class-0.0.1 ... linking ... done.
Loading package data-default-instances-base-0.0.1 ... linking ... done.
Loading package data-default-instances-containers-0.0.1 ... linking ... done.
Loading package data-default-instances-dlist-0.0.1 ... linking ... done.
Loading package data-default-instances-old-locale-0.0.1 ... linking ... done.
Loading package data-default-0.5.3 ... linking ... done.
Loading package ansi-terminal-0.6.1.1 ... linking ... done.
Loading package kure-2.16.2 ... linking ... done.
Loading package marked-pretty-0.1 ... linking ... done.
Loading package random-1.0.1.1 ... linking ... done.
Loading package operational-0.2.3.2 ... linking ... done.
Loading package stm-2.4.3 ... linking ... done.
Loading package exceptions-0.6.1 ... linking ... done.
Loading package temporary-1.2.0.3 ... linking ... done.
Loading package hermit-0.5.0.0 ... linking ... done.
Loading package case-insensitive-1.2.0.0 ... linking ... done.
Loading package http-types-0.8.5 ... linking ... done.
Loading package transformers-base-0.4.2 ... linking ... done.
Loading package monad-control-0.3.3.0 ... linking ... done.
Loading package lifted-base-0.2.3.0 ... linking ... done.
Loading package mmorph-1.0.3 ... linking ... done.
Loading package resourcet-1.1.2.2 ... linking ... done.
Loading package nats-0.2 ... linking ... done.
Loading package semigroups-0.15.1 ... linking ... done.
Loading package void-0.6.1 ... linking ... done.
Loading package conduit-1.1.6 ... linking ... done.
Loading package regex-base-0.93.2 ... linking ... done.
Loading package regex-posix-0.95.2 ... linking ... ghc: warning: isupper from msvcrt is linked instead of __imp_isupper
ghc: warning: toupper from msvcrt is linked instead of __imp_toupper
ghc: warning: tolower from msvcrt is linked instead of __imp_tolower
ghc: warning: isalpha from msvcrt is linked instead of __imp_isalpha
ghc: warning: isalpha from msvcrt is linked instead of __imp_isalpha
ghc: warning: isalpha from msvcrt is linked instead of __imp_isalpha
ghc: warning: iscntrl from msvcrt is linked instead of __imp_iscntrl
ghc: warning: isupper from msvcrt is linked instead of __imp_isupper
ghc: warning: isgraph from msvcrt is linked instead of __imp_isgraph
ghc: warning: isprint from msvcrt is linked instead of __imp_isprint
ghc: warning: ispunct from msvcrt is linked instead of __imp_ispunct
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalpha from msvcrt is linked instead of __imp_isalpha
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
ghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum
done.
Loading package regex-compat-0.95.1 ... linking ... done.
Loading package parsec-3.1.5 ... linking ... done.
Loading package network-2.5.0.0 ... linking ... ghc: warning: WSACleanup from ws2_32 is linked instead of __imp_WSACleanup
ghc: warning: WSAStartup from ws2_32 is linked instead of __imp_WSAStartup
ghc: warning: WSACleanup from ws2_32 is linked instead of __imp_WSACleanup
ghc: warning: accept from ws2_32 is linked instead of __imp_accept
ghc: warning: inet_ntoa from ws2_32 is linked instead of __imp_inet_ntoa
ghc: warning: getnameinfo from ws2_32 is linked instead of __imp_getnameinfo
ghc: warning: getaddrinfo from ws2_32 is linked instead of __imp_getaddrinfo
ghc: warning: freeaddrinfo from ws2_32 is linked instead of __imp_freeaddrinfo
done.
Loading package vault-0.3.0.3 ... linking ... done.
Loading package wai-3.0.0.2 ... linking ... done.
Loading package base64-bytestring-1.0.0.1 ... linking ... done.
Loading package fast-logger-2.1.5 ... linking ... done.
Loading package zlib-0.5.4.1 ... linking ... done.
Loading package streaming-commons-0.1.3.1 ... linking ... done.
Loading package stringsearch-0.3.6.5 ... linking ... done.
Loading package byteorder-1.0.4 ... linking ... done.
Loading package wai-logger-2.1.1 ... linking ... done.
Loading package word8-0.0.4 ... linking ... done.
Loading package wai-extra-3.0.1 ... linking ... done.
Loading package conduit-extra-1.1.1 ... linking ... done.
Loading package simple-sendfile-0.2.15 ... linking ... done.
Loading package unix-compat-0.4.1.3 ... linking ... ghc: warning: GetVersionExA from kernel32 is linked instead of __imp_GetVersionExA
ghc: warning: GetModuleHandleA from kernel32 is linked instead of __imp_GetModuleHandleA
ghc: warning: GetProcAddress from kernel32 is linked instead of __imp_GetProcAddress
ghc: warning: _snprintf from msvcrt is linked instead of __imp__snprintf
ghc: warning: GetSystemInfo from kernel32 is linked instead of __imp_GetSystemInfo
ghc: warning: GetSystemMetrics from user32 is linked instead of __imp_GetSystemMetrics
ghc: warning: GetVersionExA from kernel32 is linked instead of __imp_GetVersionExA
ghc: warning: _snprintf from msvcrt is linked instead of __imp__snprintf
ghc: warning: GetSystemInfo from kernel32 is linked instead of __imp_GetSystemInfo
ghc: warning: GetComputerNameA from kernel32 is linked instead of __imp_GetComputerNameA
ghc: warning: CryptAcquireContextA from advapi32 is linked instead of __imp_CryptAcquireContextA
ghc: warning: CryptGenRandom from advapi32 is linked instead of __imp_CryptGenRandom
ghc: warning: _stat64 from msvcrt is linked instead of __imp__stat64
ghc: warning: _open from msvcrt is linked instead of __imp__open
ghc: warning: _stat64 from msvcrt is linked instead of __imp__stat64
done.
Loading package warp-3.0.0.4 ... linking ... done.
Loading package scotty-0.8.1 ... linking ... done.
Loading package hermit-web-0.1.0.0 ... linking ... done.
Setting phasers to stun... (port 3000) (ctrl-c to quit)
```
These warnings seem to be related to Windows-specific `.dll` files, including `kernel32.dll`, `user32.dll`, `msvcrt.dll`, `advapi32.dll`, and `ws2_32.dll`. As far as I can tell, there are no problems other than the warnings themselves, but I can't be sure.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | -------------- |
| Version | 7.8.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Runtime System |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | simonmar |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Packages linked against certain Windows .dll files give warnings at runtime","status":"New","operating_system":"","component":"Runtime System","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"OwnedBy","contents":"simonmar"},"version":"7.8.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":["simonmar"],"type":"Bug","description":"I am using GHC 7.8.3 on Windows 7, x86_64. When GHC loads certain packages at runtime, it gives some interesting warnings:\r\n\r\n{{{\r\n> ghci -package haskeline\r\nGHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help\r\nLoading package ghc-prim ... linking ... done.\r\nLoading package integer-gmp ... linking ... done.\r\nLoading package base ... linking ... done.\r\nLoading package array-0.5.0.0 ... linking ... done.\r\nLoading package deepseq-1.3.0.2 ... linking ... done.\r\nLoading package bytestring-0.10.4.0 ... linking ... done.\r\nLoading package Win32-2.3.0.2 ... linking ... done.\r\nLoading package containers-0.5.5.1 ... linking ... done.\r\nLoading package filepath-1.3.0.2 ... linking ... done.\r\nLoading package old-locale-1.0.0.6 ... linking ... done.\r\nLoading package time-1.4.2 ... linking ... done.\r\nLoading package directory-1.2.1.0 ... linking ... done.\r\nLoading package transformers-0.3.0.0 ... linking ... done.\r\nLoading package haskeline-0.7.1.2 ... linking ... ghc.exe: warning: SetConsoleCursorPosition from kernel32 is linked instead of __imp_SetConsoleCursorPosition\r\nghc.exe: warning: FillConsoleOutputCharacterA from kernel32 is linked instead of __imp_FillConsoleOutputCharacterA\r\nghc.exe: warning: FillConsoleOutputAttribute from kernel32 is linked instead of __imp_FillConsoleOutputAttribute\r\ndone.\r\nPrelude>\r\n}}}\r\n\r\nBesides {{{haskeline}}}, other packages with similar problems include {{{unix-compat}}}, {{{network}}}, and {{{regex-posix}}}. To see them all at once, you can run the [{{{hermit-web}}} https://github.com/ku-fpg/hermit-web] executable:\r\n\r\n{{{\r\n> hermit-web Last.hs\r\n[starting HERMIT-Web v0.1.0.0 on Last.hs]\r\n[starting HERMIT v0.5.0.0 on Last.hs]\r\n% ghc Last.hs -fforce-recomp -O2 -dcore-lint -fsimple-list-literals -fexpose-all-unfoldings -fplugin=HERMIT.Web -fplugin-opt=HERMIT.Web:*:\r\n[1 of 1] Compiling Main ( Last.hs, Last.o )\r\nLoading package ghc-prim ... linking ... done.\r\nLoading package integer-gmp ... linking ... done.\r\nLoading package base ... linking ... done.\r\nLoading package array-0.5.0.0 ... linking ... done.\r\nLoading package deepseq-1.3.0.2 ... linking ... done.\r\nLoading package bytestring-0.10.4.0 ... linking ... done.\r\nLoading package containers-0.5.5.1 ... linking ... done.\r\nLoading package Win32-2.3.0.2 ... linking ... done.\r\nLoading package filepath-1.3.0.2 ... linking ... done.\r\nLoading package old-locale-1.0.0.6 ... linking ... done.\r\nLoading package time-1.4.2 ... linking ... done.\r\nLoading package directory-1.2.1.0 ... linking ... done.\r\nLoading package pretty-1.1.1.1 ... linking ... done.\r\nLoading package process-1.2.0.0 ... linking ... done.\r\nLoading package Cabal-1.18.1.3 ... linking ... done.\r\nLoading package binary-0.7.1.0 ... linking ... done.\r\nLoading package bin-package-db-0.0.0.0 ... linking ... done.\r\nLoading package hoopl-3.10.0.1 ... linking ... done.\r\nLoading package hpc-0.6.0.1 ... linking ... done.\r\nLoading package template-haskell ... linking ... done.\r\nLoading package transformers-0.3.0.0 ... linking ... done.\r\nLoading package ghc-7.8.3 ... linking ... done.\r\nLoading package haskeline-0.7.1.2 ... linking ... ghc: warning: SetConsoleCursorPosition from kernel32 is linked instead of __imp_SetConsoleCursorPosition\r\nghc: warning: FillConsoleOutputCharacterA from kernel32 is linked instead of __imp_FillConsoleOutputCharacterA\r\nghc: warning: FillConsoleOutputAttribute from kernel32 is linked instead of __imp_FillConsoleOutputAttribute\r\ndone.\r\nLoading package text-1.1.1.3 ... linking ... done.\r\nLoading package hashable-1.2.2.0 ... linking ... done.\r\nLoading package scientific-0.3.2.2 ... linking ... done.\r\nLoading package attoparsec-0.12.1.0 ... linking ... done.\r\nLoading package dlist-0.7.1 ... linking ... done.\r\nLoading package mtl-2.1.3.1 ... linking ... done.\r\nLoading package syb-0.4.2 ... linking ... done.\r\nLoading package unordered-containers-0.2.5.0 ... linking ... done.\r\nLoading package primitive-0.5.3.0 ... linking ... done.\r\nLoading package vector-0.10.11.0 ... linking ... done.\r\nLoading package aeson-0.7.0.6 ... linking ... done.\r\nLoading package blaze-builder-0.3.3.2 ... linking ... done.\r\nLoading package data-default-class-0.0.1 ... linking ... done.\r\nLoading package data-default-instances-base-0.0.1 ... linking ... done.\r\nLoading package data-default-instances-containers-0.0.1 ... linking ... done.\r\nLoading package data-default-instances-dlist-0.0.1 ... linking ... done.\r\nLoading package data-default-instances-old-locale-0.0.1 ... linking ... done.\r\nLoading package data-default-0.5.3 ... linking ... done.\r\nLoading package ansi-terminal-0.6.1.1 ... linking ... done.\r\nLoading package kure-2.16.2 ... linking ... done.\r\nLoading package marked-pretty-0.1 ... linking ... done.\r\nLoading package random-1.0.1.1 ... linking ... done.\r\nLoading package operational-0.2.3.2 ... linking ... done.\r\nLoading package stm-2.4.3 ... linking ... done.\r\nLoading package exceptions-0.6.1 ... linking ... done.\r\nLoading package temporary-1.2.0.3 ... linking ... done.\r\nLoading package hermit-0.5.0.0 ... linking ... done.\r\nLoading package case-insensitive-1.2.0.0 ... linking ... done.\r\nLoading package http-types-0.8.5 ... linking ... done.\r\nLoading package transformers-base-0.4.2 ... linking ... done.\r\nLoading package monad-control-0.3.3.0 ... linking ... done.\r\nLoading package lifted-base-0.2.3.0 ... linking ... done.\r\nLoading package mmorph-1.0.3 ... linking ... done.\r\nLoading package resourcet-1.1.2.2 ... linking ... done.\r\nLoading package nats-0.2 ... linking ... done.\r\nLoading package semigroups-0.15.1 ... linking ... done.\r\nLoading package void-0.6.1 ... linking ... done.\r\nLoading package conduit-1.1.6 ... linking ... done.\r\nLoading package regex-base-0.93.2 ... linking ... done.\r\nLoading package regex-posix-0.95.2 ... linking ... ghc: warning: isupper from msvcrt is linked instead of __imp_isupper\r\nghc: warning: toupper from msvcrt is linked instead of __imp_toupper\r\nghc: warning: tolower from msvcrt is linked instead of __imp_tolower\r\nghc: warning: isalpha from msvcrt is linked instead of __imp_isalpha\r\nghc: warning: isalpha from msvcrt is linked instead of __imp_isalpha\r\nghc: warning: isalpha from msvcrt is linked instead of __imp_isalpha\r\nghc: warning: iscntrl from msvcrt is linked instead of __imp_iscntrl\r\nghc: warning: isupper from msvcrt is linked instead of __imp_isupper\r\nghc: warning: isgraph from msvcrt is linked instead of __imp_isgraph\r\nghc: warning: isprint from msvcrt is linked instead of __imp_isprint\r\nghc: warning: ispunct from msvcrt is linked instead of __imp_ispunct\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalpha from msvcrt is linked instead of __imp_isalpha\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\nghc: warning: isalnum from msvcrt is linked instead of __imp_isalnum\r\ndone.\r\nLoading package regex-compat-0.95.1 ... linking ... done.\r\nLoading package parsec-3.1.5 ... linking ... done.\r\nLoading package network-2.5.0.0 ... linking ... ghc: warning: WSACleanup from ws2_32 is linked instead of __imp_WSACleanup\r\nghc: warning: WSAStartup from ws2_32 is linked instead of __imp_WSAStartup\r\nghc: warning: WSACleanup from ws2_32 is linked instead of __imp_WSACleanup\r\nghc: warning: accept from ws2_32 is linked instead of __imp_accept\r\nghc: warning: inet_ntoa from ws2_32 is linked instead of __imp_inet_ntoa\r\nghc: warning: getnameinfo from ws2_32 is linked instead of __imp_getnameinfo\r\nghc: warning: getaddrinfo from ws2_32 is linked instead of __imp_getaddrinfo\r\nghc: warning: freeaddrinfo from ws2_32 is linked instead of __imp_freeaddrinfo\r\ndone.\r\nLoading package vault-0.3.0.3 ... linking ... done.\r\nLoading package wai-3.0.0.2 ... linking ... done.\r\nLoading package base64-bytestring-1.0.0.1 ... linking ... done.\r\nLoading package fast-logger-2.1.5 ... linking ... done.\r\nLoading package zlib-0.5.4.1 ... linking ... done.\r\nLoading package streaming-commons-0.1.3.1 ... linking ... done.\r\nLoading package stringsearch-0.3.6.5 ... linking ... done.\r\nLoading package byteorder-1.0.4 ... linking ... done.\r\nLoading package wai-logger-2.1.1 ... linking ... done.\r\nLoading package word8-0.0.4 ... linking ... done.\r\nLoading package wai-extra-3.0.1 ... linking ... done.\r\nLoading package conduit-extra-1.1.1 ... linking ... done.\r\nLoading package simple-sendfile-0.2.15 ... linking ... done.\r\nLoading package unix-compat-0.4.1.3 ... linking ... ghc: warning: GetVersionExA from kernel32 is linked instead of __imp_GetVersionExA\r\nghc: warning: GetModuleHandleA from kernel32 is linked instead of __imp_GetModuleHandleA\r\nghc: warning: GetProcAddress from kernel32 is linked instead of __imp_GetProcAddress\r\nghc: warning: _snprintf from msvcrt is linked instead of __imp__snprintf\r\nghc: warning: GetSystemInfo from kernel32 is linked instead of __imp_GetSystemInfo\r\nghc: warning: GetSystemMetrics from user32 is linked instead of __imp_GetSystemMetrics\r\nghc: warning: GetVersionExA from kernel32 is linked instead of __imp_GetVersionExA\r\nghc: warning: _snprintf from msvcrt is linked instead of __imp__snprintf\r\nghc: warning: GetSystemInfo from kernel32 is linked instead of __imp_GetSystemInfo\r\nghc: warning: GetComputerNameA from kernel32 is linked instead of __imp_GetComputerNameA\r\nghc: warning: CryptAcquireContextA from advapi32 is linked instead of __imp_CryptAcquireContextA\r\nghc: warning: CryptGenRandom from advapi32 is linked instead of __imp_CryptGenRandom\r\nghc: warning: _stat64 from msvcrt is linked instead of __imp__stat64\r\nghc: warning: _open from msvcrt is linked instead of __imp__open\r\nghc: warning: _stat64 from msvcrt is linked instead of __imp__stat64\r\ndone.\r\nLoading package warp-3.0.0.4 ... linking ... done.\r\nLoading package scotty-0.8.1 ... linking ... done.\r\nLoading package hermit-web-0.1.0.0 ... linking ... done.\r\nSetting phasers to stun... (port 3000) (ctrl-c to quit)\r\n}}}\r\n\r\nThese warnings seem to be related to Windows-specific {{{.dll}}} files, including {{{kernel32.dll}}}, {{{user32.dll}}}, {{{msvcrt.dll}}}, {{{advapi32.dll}}}, and {{{ws2_32.dll}}}. As far as I can tell, there are no problems other than the warnings themselves, but I can't be sure.","type_of_failure":"OtherFailure","blocking":[]} -->7.10.3Simon MarlowSimon Marlow