Требование "core" в utop выдает ошибку: Unix.Unix_error (Unix.ENOENT, "sysconf", "")
Когда я пытаюсь позвонить #require "core"
в utop
Я получаю ошибку:
utop # #require "core";;
Exception: Unix.Unix_error (Unix.ENOENT, "sysconf", "").
Raised by primitive operation at unknown location
Called from file "toplevel/topdirs.ml", line 144, characters 10-51
у меня есть .ocamlinit
файл, который выглядит так в моем текущем каталоге:
(* Added by OPAM. *)
let () =
try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")
with Not_found -> ()
;;
#use "topfind";;
#thread;;
#camlp4o;;
Что может быть причиной этой ошибки? Кажется, это ошибка от Findlib?
Я пытался стереть ~/.opam
каталог, перезапуск opam init
, opam switch set 4.05.0
и переустановка core
а также utop
, но эта ошибка сохраняется. Возможно ли, что мне также нужно переустановить opam
сам? В настоящее время я использую бинарную версию opam-1.2.2.
Я использую Arch Linux и считаю, что эта ошибка возникла после обновления всех пакетов в моей системе, но я не уверен.
Я все еще могу использовать jbuilder
для сборки исполняемых файлов, но при запуске исполняемых файлов они терпят неудачу с похожей ошибкой:
$ _build/install/default/bin/my_executable
Uncaught exception:
(Unix.Unix_error "Illegal seek" sysconf "")
Raised by primitive operation at unknown location
Я уверен, что это не исключение, вызванное моим кодом, но похоже на ошибку, возникающую в utop
,
у меня есть jbuild
файл, который выглядит так:
(jbuild_version 1)
(executable
((name main)
(libraries (my_library))))
(install
((section bin)
(files ((main.exe as my_executable)))))
редактировать: я пытался использовать разные версии opam
и компилятор, включая системный компилятор (который также является версией 4.05.0). Ничто не похоже на работу. Каждая комбинация выдает те же ошибки, что и выше.