В Ocaml 4 я должен использовать модуль Quotation
для его функций Quotation.add
и Quotation.ExStr
. Похоже, для этого мне нужно установить библиотеку Camlp5
(кажется, препроцессор). Нашел много информации о Camlp, например:
- Camlp5: https://camlp5.readthedocs.io/en/latest/intro.html < / а>
- Camlp5: https://camlp5.github.io/doc/html/index.html < / а>
- Camlp4: https://caml.inria.fr/pub/docs/tutorial-camlp4/tutorial004.html
Но никаких инструкций по установке нет, поэтому я попробовал: opam install camlp5
с результатом:
┌─ The following actions failed
│ λ build conf-perl-ipc-system-simple 1
│ λ build conf-perl-string-shellquote 1
└─
╶─ No changes have been performed
Таким образом, кажется, что некоторых зависимостей нет, и я попробовал: opam depext --install camlp5
с результатом:
┌─ The following actions failed
│ λ build conf-perl-ipc-system-simple 1
│ λ build conf-perl-string-shellquote 1
└─
╶─ No changes have been performed
# Run eval $(opam env) to update the current shell environment
Так что вроде не работает.
Диагностика ошибок одинакова для обеих команд:
The following actions will be performed:
∗ install conf-perl-string-shellquote 1 [required by camlp5]
∗ install conf-perl-ipc-system-simple 1 [required by camlp5]
∗ install camlp5 8.00.01
===== ∗ 3 =====
Do you want to continue? [Y/n] y
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> ????
[camlp5.8.00.01] found in cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><> ????
[ERROR] The compilation of conf-perl-ipc-system-simple failed at
"/Users/.../.opam/opam-init/hooks/sandbox.sh build perl
-MIPC::System::Simple -e 1".
[ERROR] The compilation of conf-perl-string-shellquote failed at
"/Users/.../.opam/opam-init/hooks/sandbox.sh build perl
-MString::ShellQuote -e 1".
#=== ERROR while compiling conf-perl-string-shellquote.1 ======================#
# context 2.0.8 | macos/x86_64 | ocaml-base-compiler.4.10.2 | https://opam.ocaml.org#ff95b837
# path ~/.opam/4.10.2/.opam-switch/build/conf-perl-string-shellquote.1
# command ~/.opam/opam-init/hooks/sandbox.sh build perl -MString::ShellQuote -e 1
# exit-code 2
# env-file ~/.opam/log/conf-perl-string-shellquote-1585-1872ec.env
# output-file ~/.opam/log/conf-perl-string-shellquote-1585-1872ec.out
### output ###
# Can't locate String/ShellQuote.pm in @INC (you may need to install the String::ShellQuote module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras[...]
# BEGIN failed--compilation aborted.
#=== ERROR while compiling conf-perl-ipc-system-simple.1 ======================#
# context 2.0.8 | macos/x86_64 | ocaml-base-compiler.4.10.2 | https://opam.ocaml.org#ff95b837
# path ~/.opam/4.10.2/.opam-switch/build/conf-perl-ipc-system-simple.1
# command ~/.opam/opam-init/hooks/sandbox.sh build perl -MIPC::System::Simple -e 1
# exit-code 2
# env-file ~/.opam/log/conf-perl-ipc-system-simple-1585-d2c37b.env
# output-file ~/.opam/log/conf-perl-ipc-system-simple-1585-d2c37b.out
### output ###
# Can't locate IPC/System/Simple.pm in @INC (you may need to install the IPC::System::Simple module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extra[...]
# BEGIN failed--compilation aborted.
Я пробовал похожие и альтернативные в течение нескольких часов и не могу этого добиться. Любая помощь?
PS1: Я работаю в MAC. PS2: Если кто-то хочет, мой контекст для этой проблемы заключается в том, что я хочу использовать функции одного каталога, который для меня является черным ящиком, и все примеры написаны с помощью синтаксического анализатора, например <<y+2=5>>
, поэтому я не знаю грамматики и нужно добиться, чтобы синтаксический анализатор запустился.
РЕДАКТИРОВАТЬ 1 (решение, предложенное Ivg)
После того, как Ivg попробовал обе команды предлагаемого решения (отвечая local::lib
на один из вопросов и yes
на другие), вторая из ошибок, похоже, была исправлена при выполнении opam install camlp5
:
<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><> ????
┌─ The following actions failed
│ λ build conf-perl-ipc-system-simple 1
└─
┌─ The following changes have been performed (the rest was aborted)
│ ∗ install conf-perl-string-shellquote 1
└─
Где был весь терминал:
... ~ % opam install camlp5
The following actions will be performed:
∗ install conf-perl-string-shellquote 1 [required by camlp5]
∗ install conf-perl-ipc-system-simple 1 [required by camlp5]
∗ install camlp5 8.00.01
===== ∗ 3 =====
Do you want to continue? [Y/n] y
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> ????
[camlp5.8.00.01] found in cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><> ????
[ERROR] The compilation of conf-perl-ipc-system-simple failed at
"/Users/.../.opam/opam-init/hooks/sandbox.sh build perl
-MIPC::System::Simple -e 1".
∗ installed conf-perl-string-shellquote.1
#=== ERROR while compiling conf-perl-ipc-system-simple.1 ======================#
# context 2.0.8 | macos/x86_64 | ocaml-base-compiler.4.10.2 | https://opam.ocaml.org#ff95b837
# path ~/.opam/4.10.2/.opam-switch/build/conf-perl-ipc-system-simple.1
# command ~/.opam/opam-init/hooks/sandbox.sh build perl -MIPC::System::Simple -e 1
# exit-code 2
# env-file ~/.opam/log/conf-perl-ipc-system-simple-20351-1872ec.env
# output-file ~/.opam/log/conf-perl-ipc-system-simple-20351-1872ec.out
### output ###
# Can't locate IPC/System/Simple.pm in @INC (you may need to install the IPC::System::Simple module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4/darwin-thread-multi-2level /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2le[...]
# BEGIN failed--compilation aborted.
РЕДАКТИРОВАТЬ 2 (решено, повторение)
Вдруг это сработало. Написал еще раз sudo cpan IPC::System::Simple
(сейчас вопросов не было) и после этого opam install conf-perl-ipc-system-simple
.
Все равно модуль Quoation
у меня не открывается.
brew install camlp5
, который был успешно установлен. Затем я открыл верхний уровень письмаocaml
. Затем я сделал иopen Quotation
, иopen Camlp5
, но никто не работает. - person Theo Deep   schedule 17.05.2021