Open yminsky opened 1 year ago
And, using -vv, some more detailed errors, first for utop:
- ocamlfind ocamlc -c -g -bin-annot -safe-string -package uutf -package uucp -I src -I test -o src/uuseg_string.cmi src/uuseg_string.mli
- ocamlfind ocamlopt -c -g -bin-annot -safe-string -package uutf -package uucp -I src -I test -o src/uuseg_string.cmx src/uuseg_string.ml
- + ocamlfind ocamlopt -c -g -bin-annot -safe-string -package uutf -package uucp -I src -I test -o src/uuseg_string.cmx src/uuseg_string.ml
- File "src/uuseg_string.ml", line 30, characters 7-29:
- 30 | fold Uutf.String.fold_utf_8 Uutf.Buffer.add_utf_8 seg f acc0 s
- ^^^^^^^^^^^^^^^^^^^^^^
- Error: This expression has type
- ?pos:int ->
- ?len:int -> local_ 'a Uutf.String.folder -> 'a -> string -> 'a
- but an expression was expected of type
- ?pos:int -> ?len:int -> 'b Uutf.String.folder -> 'b -> string -> 'b
- Type local_ 'a Uutf.String.folder -> 'a -> string -> 'a
- is not compatible with type
- 'b Uutf.String.folder -> 'b -> string -> 'b
- Command exited with code 2.
- pkg.ml: [ERROR] cmd ['ocamlbuild' '-use-ocamlfind' '-classic-display' '-j' '4' '-tag' 'debug'
- '-build-dir' '_build' 'opam' 'pkg/META' 'CHANGES.md' 'LICENSE.md'
- 'README.md' 'src/uuseg.a' 'src/uuseg.cmxa' 'src/uuseg.cma'
- 'src/uuseg.cmx' 'src/uuseg.cmi' 'src/uuseg.mli'
- 'src/uuseg_line_break.cmx' 'src/uuseg_sentence.cmx' 'src/uuseg_word.cmx'
- 'src/uuseg_grapheme_cluster.cmx' 'src/uuseg_buf.cmx'
- 'src/uuseg_base.cmx' 'src/uuseg_string.a' 'src/uuseg_string.cmxa'
- 'src/uuseg_string.cma' 'src/uuseg_string.cmx' 'src/uuseg_string.cmi'
- 'src/uuseg_string.mli' 'test/usegtrip.native' 'doc/index.mld'
- 'test/examples.ml']: exited with 10
[ERROR] The compilation of uuseg.15.0.0 failed at "ocaml pkg/pkg.ml build --dev-pkg false --with-uutf true --with-cmdliner true".
And then, for Merlin:
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
⬇ retrieved dot-merlin-reader.4.9 (cached)
⬇ retrieved merlin.4.9-414 (cached)
+ /usr/bin/tar "xfj" "/home/yminsky/.opam/download-cache/sha256/e2/e23fc47813591269ff9d27c820988e520a662c89dd0af7ea652b21517499cbfd" "-C" "/tmp/opam-4558-3912ad"
⬇ retrieved merlin-lib.4.9-414 (cached)
+ /usr/bin/tar "xfz" "/home/yminsky/.opam/repo/default.tar.gz" "-C" "/tmp/opam-4558-e78e33"
+ /home/yminsky/.opam/opam-init/hooks/sandbox.sh "build" "dune" "build" "-p" "merlin-lib" "-j" "7" (CWD=/home/yminsky/.opam/4.14.1-jst/.opam-switch/build/merlin-lib.4.9-414)
- (cd _build/default && /home/yminsky/.opam/4.14.1-jst/bin/ocamlc.opt -w -40 -open Ocaml_utils -open Merlin_utils -open Ocaml_parsing -open Ocaml_preprocess -open Ocaml_typing -open Merlin_specific -open Merlin_extend -g -bin-annot -I src/kernel/.merlin_kernel.objs/byte -I src/config/.merlin_config.objs/byte -I src/dot-protocol/.merlin_dot_protocol.objs/byte -I src/extend/.merlin_extend.objs/byte -I src/ocaml/merlin_specific/.merlin_specific.objs/byte -I src/ocaml/parsing/.ocaml_parsing.objs/byte -I src/ocaml/preprocess/.ocaml_preprocess.objs/byte -I src/ocaml/typing/.ocaml_typing.objs/byte -I src/ocaml/utils/.ocaml_utils.objs/byte -I src/platform/.os_ipc.objs/byte -I src/utils/.merlin_utils.objs/byte -intf-suffix .ml -no-alias-deps -open Merlin_kernel -o src/kernel/.merlin_kernel.objs/byte/merlin_kernel__Mconfig_dot.cmo -c -impl src/kernel/mconfig_dot.ml)
- File "src/kernel/mconfig_dot.ml", line 63, characters 19-29:
- 63 | let white_regexp = Str.regexp "[ \t]+"
- ^^^^^^^^^^
- Error: Unbound module Str
- Hint: Did you mean Std?
- (cd _build/default && /home/yminsky/.opam/4.14.1-jst/bin/ocamlc.opt -w -40 -open Ocaml_utils -open Ocaml_parsing -open Ocaml_preprocess -open Ocaml_typing -open Merlin_utils -open Merlin_specific -open Merlin_extend -open Merlin_kernel -g -bin-annot -I src/analysis/.merlin_analysis.objs/byte -I src/config/.merlin_config.objs/byte -I src/extend/.merlin_extend.objs/byte -I src/frontend/.query_protocol.objs/byte -I src/kernel/.merlin_kernel.objs/byte -I src/ocaml/merlin_specific/.merlin_specific.objs/byte -I src/ocaml/parsing/.ocaml_parsing.objs/byte -I src/ocaml/preprocess/.ocaml_preprocess.objs/byte -I src/ocaml/typing/.ocaml_typing.objs/byte -I src/ocaml/utils/.ocaml_utils.objs/byte -I src/utils/.merlin_utils.objs/byte -intf-suffix .ml -no-alias-deps -open Merlin_analysis -o src/analysis/.merlin_analysis.objs/byte/merlin_analysis__Jump.cmo -c -impl src/analysis/jump.ml)
- File "src/analysis/jump.ml", line 144, characters 16-25:
- 144 | let targets = Str.split (Str.regexp "[, ]") target in
- ^^^^^^^^^
- Error: Unbound module Str
- Hint: Did you mean Std?
- (cd _build/default && /home/yminsky/.opam/4.14.1-jst/bin/ocamlc.opt -w -40 -open Ocaml_utils -open Ocaml_parsing -open Ocaml_typing -open Merlin_kernel -open Merlin_specific -open Merlin_utils -open Merlin_specific -open Merlin_analysis -open Merlin_kernel -g -bin-annot -I src/frontend/.query_commands.objs/byte -I src/analysis/.merlin_analysis.objs/byte -I src/config/.merlin_config.objs/byte -I src/frontend/.query_protocol.objs/byte -I src/kernel/.merlin_kernel.objs/byte -I src/ocaml/merlin_specific/.merlin_specific.objs/byte -I src/ocaml/parsing/.ocaml_parsing.objs/byte -I src/ocaml/typing/.ocaml_typing.objs/byte -I src/ocaml/utils/.ocaml_utils.objs/byte -I src/utils/.merlin_utils.objs/byte -intf-suffix .ml -no-alias-deps -o src/frontend/.query_commands.objs/byte/query_commands.cmo -c -impl src/frontend/query_commands.ml)
- File "src/frontend/query_commands.ml", line 42, characters 8-16:
- 42 | | `Print t ->
- ^^^^^^^^
- Error: This pattern matches values of type [? `Print of 'a ]
- but a pattern was expected which matches values of type
- [ `Concat of
- string * Merlin_extend.Extend_protocol.Reader.outcometree
- | `Print of Merlin_extend.Extend_protocol.Reader.outcometree
- | `String of string ]
- Merlin_extend.Extend_protocol.Reader.outcometree has an unknown layout,
- which might not be a sublayout of value.
- No .cmi file found containing Merlin_extend.Extend_protocol.Reader.outcometree.
- Hint: Adding "merlin_extend" to your dependencies might help.
- (cd _build/default && /home/yminsky/.opam/4.14.1-jst/bin/ocamlopt.opt -w -40 -open Ocaml_utils -open Merlin_utils -open Ocaml_parsing -open Ocaml_preprocess -open Ocaml_typing -open Merlin_specific -open Merlin_extend -g -I src/kernel/.merlin_kernel.objs/byte -I src/kernel/.merlin_kernel.objs/native -I src/config/.merlin_config.objs/byte -I src/config/.merlin_config.objs/native -I src/dot-protocol/.merlin_dot_protocol.objs/byte -I src/dot-protocol/.merlin_dot_protocol.objs/native -I src/extend/.merlin_extend.objs/byte -I src/extend/.merlin_extend.objs/native -I src/ocaml/merlin_specific/.merlin_specific.objs/byte -I src/ocaml/merlin_specific/.merlin_specific.objs/native -I src/ocaml/parsing/.ocaml_parsing.objs/byte -I src/ocaml/parsing/.ocaml_parsing.objs/native -I src/ocaml/preprocess/.ocaml_preprocess.objs/byte -I src/ocaml/preprocess/.ocaml_preprocess.objs/native -I src/ocaml/typing/.ocaml_typing.objs/byte -I src/ocaml/typing/.ocaml_typing.objs/native -I src/ocaml/utils/.ocaml_utils.objs/byte -I src/ocaml/utils/.ocaml_utils.objs/native -I src/platform/.os_ipc.objs/byte -I src/platform/.os_ipc.objs/native -I src/utils/.merlin_utils.objs/byte -I src/utils/.merlin_utils.objs/native -intf-suffix .ml -no-alias-deps -open Merlin_kernel -o src/kernel/.merlin_kernel.objs/native/merlin_kernel__Mconfig_dot.cmx -c -impl src/kernel/mconfig_dot.ml)
- File "src/kernel/mconfig_dot.ml", line 63, characters 19-29:
- 63 | let white_regexp = Str.regexp "[ \t]+"
- ^^^^^^^^^^
- Error: Unbound module Str
- Hint: Did you mean Std?
[ERROR] The compilation of merlin-lib.4.9-414 failed at "dune build -p merlin-lib -j 7".
#=== ERROR while compiling merlin-lib.4.9-414 =================================#
# context 2.1.3 | linux/x86_64 | dune.3.10.0 ocaml-base-compiler.4.14.1-18 | https://opam.ocaml.org#47a1176c
# path ~/.opam/4.14.1-jst/.opam-switch/build/merlin-lib.4.9-414
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p merlin-lib -j 7
# exit-code 1
# env-file ~/.opam/log/merlin-lib-4558-0a551d.env
# output-file ~/.opam/log/merlin-lib-4558-0a551d.out
### output ###
# Error: This pattern matches values of type [? `Print of 'a ]
# [...]
# | `String of string ]
# Merlin_extend.Extend_protocol.Reader.outcometree has an unknown layout,
# which might not be a sublayout of value.
# No .cmi file found containing Merlin_extend.Extend_protocol.Reader.outcometree.
# Hint: Adding "merlin_extend" to your dependencies might help.
# (cd _build/default && /home/yminsky/.opam/4.14.1-jst/bin/ocamlopt.opt -w -40 -open Ocaml_utils -open Merlin_utils -open Ocaml_parsing -open Ocaml_preprocess -open Ocaml_typing -open Merlin_specific -open Merlin_extend -g -I src/kernel/.merlin_kernel.objs/byte -I src/kernel/.merlin_kernel.objs/native -I src/config/.merlin_config.objs/byte -I src/config/.merlin_config.objs/native -I src/dot-pro[...]
# File "src/kernel/mconfig_dot.ml", line 63, characters 19-29:
# 63 | let white_regexp = Str.regexp "[ \t]+"
# ^^^^^^^^^^
# Error: Unbound module Str
# Hint: Did you mean Std?
I ran into issues with ocamlformat
and ocaml-lsp-server
(breaking on ocamlformat-lib
and dune-rpc
as well as merlin-lib
). It's a bit annoying as that's what I need to set up the ocaml platform vscode extension.
Errors (with -vv
)
#=== ERROR while compiling ocamlformat-lib.0.26.1 =============================#
# context 2.1.5 | linux/x86_64 | dune.3.10.0 ocaml-base-compiler.4.14.1-18 | https://opam.ocaml.org#1451371a
# path ~/.opam/4.14.1-jst/.opam-switch/build/ocamlformat-lib.0.26.1
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p ocamlformat-lib -j 15 @install
# exit-code 1
# env-file ~/.opam/log/ocamlformat-lib-7593-09d671.env
# output-file ~/.opam/log/ocamlformat-lib-7593-09d671.out
### output ###
# 134 | List.iter (fun x -> fprintf ppf " %a" Pprintast.tyvar x.txt) vs
# [...]
# Error: Unbound value Pprintast.tyvar
# (cd _build/default && /home/will/.opam/4.14.1-jst/bin/ocamlopt.opt -w -40 -noassert -w -9 -open Parser_shims -open Ocaml_common -g -I vendor/parser-extended/.parser_extended.objs/byte -I vendor/parser-extended/.parser_extended.objs/native -I /home/will/.opam/4.14.1-jst/lib/menhirLib -I /home/will/.opam/4.14.1-jst/lib/ocaml/compiler-libs -I vendor/ocaml-common/.ocaml_common.objs/byte -I vendor[...]
# File "vendor/parser-extended/parse.ml", line 165, characters 8-23:
# 165 | Pprintast.tyvar var var
# ^^^^^^^^^^^^^^^
# Error: Unbound value Pprintast.tyvar
# (cd _build/default && /home/will/.opam/4.14.1-jst/bin/ocamlopt.opt -w -40 -noassert -w -9 -open Parser_shims -open Ocaml_common -g -I vendor/parser-standard/.parser_standard.objs/byte -I vendor/parser-standard/.parser_standard.objs/native -I /home/will/.opam/4.14.1-jst/lib/menhirLib -I /home/will/.opam/4.14.1-jst/lib/ocaml/compiler-libs -I vendor/ocaml-common/.ocaml_common.objs/byte -I vendor[...]
# File "vendor/parser-standard/parse.ml", line 165, characters 8-23:
# 165 | Pprintast.tyvar var var
# ^^^^^^^^^^^^^^^
# Error: Unbound value Pprintast.tyvar
#=== ERROR while compiling dune-rpc.3.10.0 ====================================#
# context 2.1.5 | linux/x86_64 | dune.3.10.0 ocaml-base-compiler.4.14.1-18 | https://opam.ocaml.org#1451371a
# path ~/.opam/4.14.1-jst/.opam-switch/build/dune-rpc.3.10.0
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p dune-rpc -j 15 @install
# exit-code 1
# env-file ~/.opam/log/dune-rpc-7593-6ca67e.env
# output-file ~/.opam/log/dune-rpc-7593-6ca67e.out
### output ###
# [...]
# (cd _build/default && /home/will/.opam/4.14.1-jst/bin/ocamlc.opt -w -40 -alert -unstable -g -bin-annot -I otherlibs/dune-rpc/private/.dune_rpc_private.objs/byte -I /home/will/.opam/4.14.1-jst/lib/csexp -I /home/will/.opam/4.14.1-jst/lib/dyn -I /home/will/.opam/4.14.1-jst/lib/ordering -I /home/will/.opam/4.14.1-jst/lib/pp -I /home/will/.opam/4.14.1-jst/lib/stdune -I /home/will/.opam/4.14.1-jst[...]
# File "otherlibs/dune-rpc/private/where.ml", line 124, characters 17-41:
# 124 | ( `Host (Unix.string_of_inet_addr Unix.inet_addr_loopback)
# ^^^^^^^^^^^^^^^^^^^^^^^^
# Error: Unbound module Unix
# Hint: Did you mean Unit?
# (cd _build/default && /home/will/.opam/4.14.1-jst/bin/ocamlopt.opt -w -40 -alert -unstable -g -I otherlibs/dune-rpc/private/.dune_rpc_private.objs/byte -I otherlibs/dune-rpc/private/.dune_rpc_private.objs/native -I /home/will/.opam/4.14.1-jst/lib/csexp -I /home/will/.opam/4.14.1-jst/lib/dyn -I /home/will/.opam/4.14.1-jst/lib/ordering -I /home/will/.opam/4.14.1-jst/lib/pp -I /home/will/.opam/4[...]
# File "otherlibs/dune-rpc/private/where.ml", line 124, characters 17-41:
# 124 | ( `Host (Unix.string_of_inet_addr Unix.inet_addr_loopback)
# ^^^^^^^^^^^^^^^^^^^^^^^^
# Error: Unbound module Unix
# Hint: Did you mean Unit?
I had a go at getting things to work with ocaml-jst, it was a bit of a slog, but I've put all of the patches in a fork of the js opam repo, and the following sequence of commands seem to be fairly reliable at getting a working build (~tip of flambda-backend with dune, ocaml-lsp-server, ocamlformat etc.) This also includes the patches from a pull request on flambda-backend that adds support for arm64
opam repo add melse git+https://github.com/matthewelse/opam-repository#with-extensions
opam switch create 4.14.1-jst --repos melse,default --packages ocaml-base-compiler=4.14.1-22
# or, you can try:
opam switch create 4.14.1-jst+f2 --repos melse,default --packages ocaml-variants=4.14.1-22+options,ocaml-option-flambda2 --verbose
opam install dune.3.10.0 ppxlib.0.30.0 # important to use these versions, the default opam repo has newer versions than these
opam install ocaml-lsp-server ocamlformat core # etc.
I've tested this on arm64 and amd64 linux, ymmv
Indeed, my initial attempt to opam install core
failed, but after typing opam install ppxlib.0.30.0
, a second attempt at installing core
succeeded.
I got core
working with opam install ppxlib.0.30.0
.
I made a PR to fix the merlin problems in the original post.
https://github.com/ocaml/merlin/pull/1799
Just got an error while installing this repository regarding dune
version:
EDIT: I manage to fix it by changing the dune
version of my configuration file. I wonder whether the init-dune
installation should fail if my configuration file requires a higher version of dune
.
$ opam switch create 5.1.1+flambda2 --repos janestreet-bleeding-with-extensions,default
<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><>
Switch invariant: ["ocaml-variants" {= "5.1.1+flambda2"}]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
∗ installed base-bigarray.base
∗ installed base-threads.base
∗ installed base-unix.base
⬇ retrieved init-compiler.4.14.1 (cached)
⬇ retrieved ocaml-config.3 (cached)
∗ installed ocaml-options-vanilla.1
⬇ retrieved init-dune.3.9.3 (cached)
⬇ retrieved init-menhir.20210419 (https://gitlab.inria.fr/fpottier/menhir/-/archive/20210419/archive.tar.gz)
⬇ retrieved ocaml-variants.5.1.1+flambda2 (https://github.com/ocaml-flambda/flambda-backend/archive/refs/tags/5.1.1minus-20.tar.gz)
∗ installed init-compiler.4.14.1
[ERROR] The installation of init-dune failed at "sh -exc PATH=/home/saroupille/.opam/5.1.1+flambda2/init_deps/bin/:$PATH ./_boot/dune.exe install --prefix /home/saroupille/.opam/5.1.1+flambda2/init_deps/
dune".
#=== ERROR while installing init-dune.3.9.3 ===================================#
# context 2.1.2 | linux/x86_64 | | git+https://github.com/janestreet/opam-repository.git#with-extensions
# path ~/.opam/5.1.1+flambda2/.opam-switch/build/init-dune.3.9.3
# command ~/.opam/opam-init/hooks/sandbox.sh install sh -exc PATH=/home/saroupille/.opam/5.1.1+flambda2/init_deps/bin/:$PATH ./_boot/dune.exe install --prefix /home/saroupille/.opam/5.1.1+flambda2/init_deps/ dune
# exit-code 1
# env-file ~/.opam/log/init-dune-501242-03edb4.env
# output-file ~/.opam/log/init-dune-501242-03edb4.out
### output ###
# + PATH=/home/saroupille/.opam/5.1.1+flambda2/init_deps/bin/:/home/saroupille/.opam/5.1.1+flambda2/bin:/home/saroupille/google-cloud-sdk/bin:/home/saroupille/.local/bin:/home/saroupille/.opam/5.1.0/bin:/home/saroupille/.cargo/bin:/home/saroupille/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin ./_boot/dune.exe install --pr[...]
# File "/home/saroupille/.config/dune/config", line 1, characters 11-15:
# 1 | (lang dune 3.12)
# ^^^^
# Error: Version 3.12 of the dune language is not supported.
# Supported versions of this extension in version 3.12 of the dune language:
# - 1.0 to 1.12
# - 2.0 to 2.9
# - 3.0 to 3.9
<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions failed
│ ∗ install init-dune 3.9.3
└─
I tried to install some supporting packages (notably, merlin and utop), and ran into some failed builds. I'm not sure these are worth fixing, but it seemed at least worth reporting: