Требование "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). Ничто не похоже на работу. Каждая комбинация выдает те же ошибки, что и выше.

0 ответов

Другие вопросы по тегам