janestreet / opam-repository

Opam repository for the development version of Jane Street packages
89 stars 10 forks source link

Some things don't build with bleeding-edge-with-extensions #27

Open yminsky opened 1 year ago

yminsky commented 1 year ago

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:

#=== ERROR while compiling uuseg.15.0.0 =======================================#
# 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/uuseg.15.0.0
# command     ~/.opam/opam-init/hooks/sandbox.sh build ocaml pkg/pkg.ml build --dev-pkg false --with-uutf true --with-cmdliner true
# exit-code   1
# env-file    ~/.opam/log/uuseg-20765-d19954.env
# output-file ~/.opam/log/uuseg-20765-d19954.out
### output ###
# Error: This expression has type
# [...]
# 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 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-20765-d1b82d.env
# output-file ~/.opam/log/merlin-lib-20765-d1b82d.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?

<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions failed
│ λ build merlin-lib 4.9-414
│ λ build uuseg      15.0.0
yminsky commented 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?
wrbs commented 11 months ago

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?
matthewelse commented 10 months ago

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

fpottier commented 2 months ago

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.

patrick-nicodemus commented 1 month ago

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

francoisthire commented 1 day ago

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
└─