Windows 10 (x64)
Я хочу использовать Haskell с Bazel (2.0.0). Я сделал на своей машине Windows 10 (x64) следующие шаги:
git clone https://github.com/tweag/rules_haskell/
cd rules_haskell
cd tutorial
bazel build //...
, что приводит к следующему выводу:
INFO: Call stack for the definition of repository 'rules_haskell_ghc_windows_amd64' which is a _ghc_bindist (rule definition at C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/ghc_bindist.bzl:289:16):
- C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/ghc_bindist.bzl:409:5
- C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/ghc_bindist.bzl:445:9
- C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/toolchain.bzl:320:5
- D:/dev/rules_haskell/tutorial/WORKSPACE:22:1
ERROR: An error occurred during the fetch of repository 'rules_haskell_ghc_windows_amd64':
Traceback (most recent call last):
File "C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/ghc_bindist.bzl", line 194
_find_python(ctx)
File "C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/ghc_bindist.bzl", line 461, in _find_python
repository_ctx.execute(<1 more arguments>)
Argument 0 of execute is neither a path nor a string.
ERROR: D:/dev/rules_haskell/tutorial/lib/BUILD.bazel:6:1: //lib:booleans depends on @rules_haskell_ghc_windows_amd64//:toolchain-impl in repository @rules_haskell_ghc_windows_amd64 which failed to fetch. no such package '@rules_haskell_ghc_windows_amd64//': Traceback (most recent call last):
File "C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/ghc_bindist.bzl", line 194
_find_python(ctx)
File "C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/ghc_bindist.bzl", line 461, in _find_python
repository_ctx.execute(<1 more arguments>)
Argument 0 of execute is neither a path nor a string.
ERROR: Analysis of target '//lib:booleans' failed; build aborted: no such package '@rules_haskell_ghc_windows_amd64//': Traceback (most recent call last):
File "C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/ghc_bindist.bzl", line 194
_find_python(ctx)
File "C:/users/verte/_bazel_verte/idi6e53f/external/rules_haskell/haskell/ghc_bindist.bzl", line 461, in _find_python
repository_ctx.execute(<1 more arguments>)
Argument 0 of execute is neither a path nor a string.
INFO: Elapsed time: 11.900s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (27 packages loaded, 44 targets configured)
Я установил msys2
и python3
(Везион 3.7.6) как описано здесь .
Кажется, что ошибка происходит в _find_python
. Моя переменная пути ($Env:Path
) содержит путь python.exe
.
У кого-нибудь получилось построить учебник по Windows 10?
Кажется, что это azure -pipeline может строить Haskell правила для Windows:
Кажется, что для этого нужно выполнить два шага:
Шаг 1 (Powershell):
Write-Host "Enable long path behavior"
# See https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file#maximum-path-length-limitation
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 displayName: "Enable da long paths"
Шаг 2 (bash):
# Remove 'C:\Program Files ' (ending on space) from PATH.
# See https://github.com/bazelbuild/bazel/issues/10481
export PATH="$(sed 's,:/c/Program Files $,,' <<<"$PATH")"
echo "PATH='$PATH'"
Я не знаю, как это можно воспроизвести на (локальной) Windows 10 машине
Ubuntu 18.04
git clone https://github.com/tweag/rules_haskell/
cd rules_haskell
cd tutorial
bazel build //...
Что приводит к следующему выводу:
INFO: Analyzed 3 targets (0 packages loaded, 0 targets configured).
INFO: Found 3 targets...
ERROR: /home/newton/dev/rules_haskell/tutorial/lib/BUILD.bazel:6:1: HaskellLinkDynamicLibrary lib/libHSlibZSbooleans-ghc8.6.5.so failed (Exit 1) ghc_wrapper failed: error executing command bazel-out/host/bin/external/rules_haskell/haskell/ghc_wrapper bazel-out/k8-fastbuild/bin/lib/compile_flags_booleans_HaskellLinkDynamicLibrary ... (remaining 1 argument(s) skipped)
Use --sandbox_debug to see verbose messages from the sandbox
/usr/bin/ld.gold: error: cannot find -lgmp
collect2: error: ld returned 1 exit status
`cc_wrapper-python' failed in phase `Linker'. (Exit code: 1)
INFO: Elapsed time: 0.554s, Critical Path: 0.37s
INFO: 0 processes.
FAILED: Build did NOT complete successfully
Сборка учебника с использованием Ubuntu (Bazel версии 2.0.0) вместо Windows делает тоже не работает для меня. Есть подсказки?