Haskell IDE Engine 설치에 어려움 (Windows 10)

Haskell IDE Engine 설치에 어려움 (Windows 10)

2022-10-04 last update

7 minutes reading 하스켈 haskell-ide-engine
Haskell IDE Engine을 Windows 10에 설치할 때 에러 메시지도 내지 않고 컴파일이 멈추는 사건이 일어나 도하마리했기 때문에 일본어 문헌을 남겨 둡니다.
HIE에 한하지 않고, terminateProcess: permission denied (Permission denied)가 나와 곤란하고 있는 사람의 도움이 된다고 생각합니다.

환경


  • Windows 10 + cmd.exe (PowerShell에서도 나온다는 것)
  • ghc-8.6.5
  • stack-2.1.3
  • hie-0.12.0.0

  • 일어난 일


    > git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules
    > cd haskell-ide-engine
    > stack ./install.hs hie-8.6.5
    (中略)
    [4 of 9] Compiling Network.Socket
    (中略)
    Network\Socket.hsc:1844:1: warning: [-Wunsupported-calling-conventions]
    (ここでフリーズして先に進まない)
    

    후술하는 바와 같이, 실은 여기서 terminateProcess: permission denied (Permission denied)가 나와 정지하고 있다.

    근본 원인



    cmd.exe가 사용하는 문자 코드가 UTF-8이 아닙니다.

    대책


    > chcp 65001
    

    를 실행하여 문자 코드를 UTF-8로 변경한 다음 stack ./install.hs hie-8.6.5를 실행합니다.

    부대 정보



    덧붙여서, Registering library for ...에 무섭게 시간이 걸려 현실적인 시간으로 끝나지 않는 사건도 일어나고 있었지만, chcp 65001 후에는 일어나지 않았다.

    계속



    원인 상세



    가장 자세한 내용은 투쟁의 흔적를 참조하십시오.
    원인이 된 network-2.8.0.1 만 설치하려고하면,
    > stack install network-2.8.0.1
    (中略)
    [4 of 9] Compiling Network.Socket
    (中略)
    Network\Socket.hsc:1844:1: warning: [-Wunsupported-calling-conventions]
    terminateProcess: permission denied (Permission denied)
    

    와 나간다. invalid argument (invalid character) 가 나오면 문자 코드가 원인인 것에 곧 도착해 chcp 65001 를 실행해 해결할 수 있었지만, 그렇게 되지 않았던, 락.
    invalid argument (invalid character)가 아니라 permission denied (Permission denied)가 나온 이유는 stack-2.1.3은 process-1.6.3.0에 의존하고 있지만 process-1.6.3.0에는 Windows의 특정 오류를 무시하는 버그가 있습니다. 때문인 것 같다. process-1.6.5.0에서 수정된 것 같기 때문에 stack의 버전이 올라가면 이 기사의 필요성은 없어질 것이다. stack의 issue에도 본 이벤트와 그 대책을 써 놓았다.

    선행 문헌