Building on rosemary
(from freebsd)
2025-10-30 01:00.32 ---> using "77d5fe31836124b4684d554707425c4fde23f9ef3df0a804431a47419573778d" from cache
/: (user (uid 1000) (gid 1000))
/: (env OPAMPRECISETRACKING 1)
/: (env OPAMUTF8 never)
/: (env OPAMEXTERNALSOLVER builtin-0install)
/: (env OPAMCRITERIA +removed)
/: (env CI true)
/: (env OPAM_HEALTH_CHECK_CI true)
/: (run (shell "sudo ln -f /usr/local/bin/opam-dev /usr/local/bin/opam"))
2025-10-30 01:00.32 ---> using "7afea9128a2830beedf345f0b46af5484579ebada7710165f445c6c5b18563a9" from cache
/: (run (network host)
(shell "rm -rf ~/opam-repository && git clone -q 'https://github.com/ocaml/opam-repository' ~/opam-repository && git -C ~/opam-repository checkout -q 300331002901af913ffd09131828fbddec07ae4f"))
2025-10-30 01:00.33 ---> using "cf69749c8481f4d4964951c3d0842b80470d089581c1dca60ca68c910915888a" from cache
/: (run (shell "rm -rf ~/.opam && opam init -ya --bare ~/opam-repository"))
No configuration file found, using built-in defaults.
Checking for available remotes: rsync and local, git.
- you won't be able to use mercurial repositories unless you install the hg command on your system.
- you won't be able to use darcs repositories unless you install the darcs command on your system.
<><> Fetching repository information ><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
User configuration:
~/.profile is already up-to-date.
[NOTE] Make sure that ~/.profile is well sourced in your ~/.bashrc.
2025-10-30 01:00.33 ---> using "696d04b9721ebabc464710d14d8f66da99c324d6583da33e795abb15b17b7f45" from cache
/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam switch create --repositories=default '4.14.2' 'ocaml-base-compiler.4.14.2'"))
<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><>
Switch invariant: ["ocaml-base-compiler" {= "4.14.2"}]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> installed base-bigarray.base
-> installed base-threads.base
-> installed base-unix.base
-> installed ocaml-options-vanilla.1
-> retrieved ocaml-config.2 (2 extra sources)
-> retrieved ocaml-config.2 (2 extra sources)
-> retrieved ocaml-base-compiler.4.14.2 (https://github.com/ocaml/ocaml/archive/4.14.2.tar.gz)
-> installed ocaml-base-compiler.4.14.2
-> installed ocaml-config.2
-> installed ocaml.4.14.2
Done.
# To update the current shell environment, run: eval $(opam env --switch=4.14.2)
2025-10-30 01:00.34 ---> using "d77bf50a1f29bc955ed8b72db3728238179f96c2e1cdee2cb518d1baf0ea7854" from cache
/: (run (network host)
(shell "opam update --depexts"))
[WARNING] Unknown update command for bsd, skipping system update
2025-10-30 01:00.34 ---> using "014206913e36490514090ba54fe63fbbd44f75d150c1b4672b7955b26dd574ed" from cache
/: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
(network host)
(shell "opam remove -y merlin.4.19-414\
\nopam install -vy merlin.4.19-414\
\nres=$?\
\nif [ $res = 31 ]; then\
\n if opam show -f x-ci-accept-failures: merlin.4.19-414 | grep -q 'freebsd'; then\
\n echo \"This package failed and has been disabled for CI using the 'x-ci-accept-failures' field.\"\
\n exit 69\
\n fi\
\nfi \
\n\
\n\
\nexit $res"))
[NOTE] merlin.4.19-414 is not installed.
Nothing to do.
The following actions will be performed:
=== install 7 packages
- install csexp 1.5.2 [required by merlin-lib]
- install dot-merlin-reader 4.19-414 [required by merlin]
- install dune 3.20.2 [required by merlin]
- install merlin 4.19-414
- install merlin-lib 4.19-414 [required by merlin]
- install ocamlfind 1.9.8 [required by dot-merlin-reader]
- install yojson 3.0.0 [required by merlin]
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Processing 1/19: [csexp.1.5.2: extract]
Processing 2/19: [csexp.1.5.2: extract] [dot-merlin-reader.4.19-414, merlin.4.19-414, merlin-lib.4.19-414: http]
Processing 3/19: [csexp.1.5.2: extract] [dot-merlin-reader.4.19-414, merlin.4.19-414, merlin-lib.4.19-414: http] [dune.3.20.2: extract]
-> retrieved csexp.1.5.2 (cached)
Processing 3/19: [dot-merlin-reader.4.19-414, merlin.4.19-414, merlin-lib.4.19-414: http] [dune.3.20.2: extract]
Processing 4/19: [dot-merlin-reader.4.19-414, merlin.4.19-414, merlin-lib.4.19-414: http] [dune.3.20.2: extract] [ocamlfind.1.9.8: extract]
-> retrieved ocamlfind.1.9.8 (cached)
Processing 4/19: [dot-merlin-reader.4.19-414, merlin.4.19-414, merlin-lib.4.19-414: http] [dune.3.20.2: extract]
Processing 5/19: [dot-merlin-reader.4.19-414, merlin.4.19-414, merlin-lib.4.19-414: http] [dune.3.20.2: extract] [yojson.3.0.0: extract]
Processing 6/19: [dot-merlin-reader.4.19-414, merlin.4.19-414, merlin-lib.4.19-414: http] [dune.3.20.2: extract] [yojson.3.0.0: extract] [ocamlfind: ./configure]
Processing 6/19: [dot-merlin-reader.4.19-414 + 2 others: extract] [dune.3.20.2: extract] [yojson.3.0.0: extract] [ocamlfind: ./configure]
-> retrieved yojson.3.0.0 (cached)
Processing 6/19: [dot-merlin-reader.4.19-414 + 2 others: extract] [dune.3.20.2: extract] [ocamlfind: ./configure]
-> retrieved dune.3.20.2 (cached)
Processing 6/19: [dot-merlin-reader.4.19-414 + 2 others: extract] [ocamlfind: ./configure]
Processing 7/19: [dot-merlin-reader.4.19-414 + 2 others: extract] [dune: ocaml 39] [ocamlfind: ./configure]
-> retrieved dot-merlin-reader.4.19-414, merlin.4.19-414, merlin-lib.4.19-414 (https://github.com/ocaml/merlin/releases/download/v4.19-414/merlin-4.19-414.tbz)
Processing 7/19: [dune: ocaml 39] [ocamlfind: ./configure]
+ /home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8/./configure "-bindir" "/home/opam/.opam/4.14.2/bin" "-sitelib" "/home/opam/.opam/4.14.2/lib" "-mandir" "/home/opam/.opam/4.14.2/man" "-config" "/home/opam/.opam/4.14.2/lib/findlib.conf" "-no-custom" "-no-camlp4" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8)
- Welcome to findlib version 1.9.8
- Configuring core...
- Checking for #remove_directory...
- Testing threading model...
- systhread_supported: true
- Testing DLLs...
- Testing whether ppxopt can be supported...
- Checking for ocamlc -opaque...
- Checking for ocamlopt -g...
- Querying installation: META list not found
- make install will double-check installed META files
- Configuring libraries...
- unix: found
- dynlink: found
- bigarray: found
- compiler-libs: found
- dbm: not present (normal since 4.00)
- graphics: not present (normal since 4.09)
- num: not present (normal since 4.06)
- ocamlbuild: not present (normal since 4.03)
- ocamldoc: found (in +ocamldoc)
- raw_spacetime: not present (normal since 4.12)
- threads: found (in +threads)
- str: found
- labltk: not present (normal since 4.02)
- native dynlink: found
- camlp4: disabled
- bytes: found, installing fake library
- Configuration for stdlib written to site-lib-src/stdlib/META
- Configuration for unix written to site-lib-src/unix/META
- Configuration for dynlink written to site-lib-src/dynlink/META
- Configuration for bigarray written to site-lib-src/bigarray/META
- Configuration for compiler-libs written to site-lib-src/compiler-libs/META
- Configuration for ocamldoc written to site-lib-src/ocamldoc/META
- Configuration for threads written to site-lib-src/threads/META
- Configuration for str written to site-lib-src/str/META
- Configuration for bytes written to site-lib-src/bytes/META
- Detecting compiler arguments: (extractor built) ok
-
- About the OCAML core installation:
- Standard library: /home/opam/.opam/4.14.2/lib/ocaml
- Binaries: /home/opam/.opam/4.14.2/bin
- Manual pages: /home/opam/.opam/4.14.2/man
- Multi-threading type: posix
- The directory of site-specific packages will be
- site-lib: /home/opam/.opam/4.14.2/lib
- The configuration file is written to:
- findlib config file: /home/opam/.opam/4.14.2/lib/findlib.conf
- Software will be installed:
- Libraries: in <site-lib>/findlib
- Binaries: /home/opam/.opam/4.14.2/bin
- Manual pages: /home/opam/.opam/4.14.2/man
- topfind script: /home/opam/.opam/4.14.2/lib/ocaml
- Topfind ppxopt support: yes
- Toolbox: no
- Link custom runtime: no
- Need bytes compatibility: no
-
- Configuration has been written to Makefile.config
-
- You can now do 'make all', and optionally 'make opt', to build ocamlfind.
Processing 7/19: [dune: ocaml 39] [ocamlfind: gmake all]
+ /usr/local/bin/gmake "all" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8)
- for p in findlib; do ( cd src/$p; /usr/local/bin/gmake all ) || exit; done
- gmake[1]: Entering directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8/src/findlib'
- ocamllex fl_meta.mll
- 22 states, 392 transitions, table size 1700 bytes
- USE_CYGPATH="0"; \
- export USE_CYGPATH; \
- cat findlib_config.mlp | \
- ../../tools/patch '@CONFIGFILE@' '/home/opam/.opam/4.14.2/lib/findlib.conf' | \
- ../../tools/patch '@STDLIB@' '/home/opam/.opam/4.14.2/lib/ocaml' | \
- ../../tools/patch '@RELATIVE_PATHS@' 'false' | \
- sed -e 's;@AUTOLINK@;true;g' \
- -e 's;@SYSTEM@;freebsd;g' \
- >findlib_config.ml
- if [ "true" = "true" ]; then \
- cp topfind.ml.in topfind.ml; \
- else \
- sed -e '/PPXOPT_BEGIN/,/PPXOPT_END/ d' topfind.ml.in \
- > topfind.ml ; \
- fi
- ocamldep *.ml *.mli >depend
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_compat.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_split.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c findlib_config.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_metatoken.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_meta.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -c fl_metascanner.mli
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_metascanner.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -c fl_topo.mli
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_topo.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -c fl_package_base.mli
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_package_base.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -c findlib.mli
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c findlib.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_args.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_lint.ml
- ocamlc -I +compiler-libs -a -o findlib.cma fl_compat.cmo fl_split.cmo findlib_config.cmo fl_metatoken.cmo fl_meta.cmo fl_metascanner.cmo fl_topo.cmo fl_package_base.cmo findlib.cmo fl_args.cmo fl_lint.cmo
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c ocaml_args.ml
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c frontend.ml
- ocamlc -I +compiler-libs -o ocamlfind -g findlib.cma unix.cma \
- -I +unix -I +dynlink ocaml_args.cmo frontend.cmo
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -c topfind.mli
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c topfind.ml
- File "topfind.ml", line 128, characters 40-63:
- 128 | match Hashtbl.find Toploop.directive_table "ppx" with
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 258, characters 4-27:
- 258 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 268, characters 4-27:
- 268 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 280, characters 4-27:
- 280 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 293, characters 4-27:
- 293 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 307, characters 4-27:
- 307 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 319, characters 4-27:
- 319 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- ocamlc -I +compiler-libs -a -o findlib_top.cma topfind.cmo
- if [ "1" = "1" ]; then \
- cp topfind.in topfind.compat.in; \
- else \
- sed -e '/REMOVE_DIRECTORY_BEGIN/,/REMOVE_DIRECTORY_END/ d' topfind.in \
- > topfind.compat.in ; \
- fi
- USE_CYGPATH="0"; \
- export USE_CYGPATH; \
- cat topfind.compat.in | \
- ../../tools/patch '@SITELIB@' '/home/opam/.opam/4.14.2/lib' | \
- ../../tools/patch '@RELATIVE_PATHS@' 'false' \
- >topfind
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -c fl_dynload.mli
- ocamlc -I +compiler-libs -opaque -I +unix -I +dynlink -g -c fl_dynload.ml
- ocamlc -I +compiler-libs -a -o findlib_dynload.cma fl_dynload.cmo
- gmake[1]: Leaving directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8/src/findlib'
- /usr/local/bin/gmake all-config
- gmake[1]: Entering directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
- if [ "false" = "true" ]; then \
- /usr/local/bin/gmake findlib-relative; \
- else \
- /usr/local/bin/gmake findlib-absolute; \
- fi
- gmake[2]: Entering directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
- USE_CYGPATH="0"; \
- export USE_CYGPATH; \
- cat findlib.conf.in | \
- tools/patch '@SITELIB@' '/home/opam/.opam/4.14.2/lib' | \
- tools/patch '@FINDLIB_PATH@' '/home/opam/.opam/4.14.2/lib' -p >findlib.conf
- if ./tools/cmd_from_same_dir ocamlc; then \
- echo 'ocamlc="ocamlc.opt"' >>findlib.conf; \
- fi
- if ./tools/cmd_from_same_dir ocamlopt; then \
- echo 'ocamlopt="ocamlopt.opt"' >>findlib.conf; \
- fi
- if ./tools/cmd_from_same_dir ocamldep; then \
- echo 'ocamldep="ocamldep.opt"' >>findlib.conf; \
- fi
- if ./tools/cmd_from_same_dir ocamldoc; then \
- echo 'ocamldoc="ocamldoc.opt"' >>findlib.conf; \
- fi
- gmake[2]: Leaving directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
- gmake[1]: Leaving directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
Processing 7/19: [dune: ocaml 39] [ocamlfind: gmake opt]
+ /usr/local/bin/gmake "opt" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8)
- for p in findlib; do ( cd src/$p; /usr/local/bin/gmake opt ) || exit; done
- gmake[1]: Entering directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8/src/findlib'
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_compat.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_split.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c findlib_config.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_metatoken.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_meta.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_metascanner.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_topo.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_package_base.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c findlib.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_args.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_lint.ml
- ocamlopt -I +compiler-libs -g -a -o findlib.cmxa fl_compat.cmx fl_split.cmx findlib_config.cmx fl_metatoken.cmx fl_meta.cmx fl_metascanner.cmx fl_topo.cmx fl_package_base.cmx findlib.cmx fl_args.cmx fl_lint.cmx
- if [ 1 -gt 0 ]; then \
- ocamlopt -I +compiler-libs -g -shared -o findlib.cmxs fl_compat.cmx fl_split.cmx findlib_config.cmx fl_metatoken.cmx fl_meta.cmx fl_metascanner.cmx fl_topo.cmx fl_package_base.cmx findlib.cmx fl_args.cmx fl_lint.cmx; \
- fi
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c ocaml_args.ml
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c frontend.ml
- ocamlopt -I +compiler-libs -g -o ocamlfind_opt findlib.cmxa unix.cmxa \
- -I +unix -I +dynlink ocaml_args.cmx frontend.cmx
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c topfind.ml
- File "topfind.ml", line 128, characters 40-63:
- 128 | match Hashtbl.find Toploop.directive_table "ppx" with
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 258, characters 4-27:
- 258 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 268, characters 4-27:
- 268 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 280, characters 4-27:
- 280 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 293, characters 4-27:
- 293 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 307, characters 4-27:
- 307 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- File "topfind.ml", line 319, characters 4-27:
- 319 | Toploop.directive_table
- ^^^^^^^^^^^^^^^^^^^^^^^
- Alert deprecated: Toploop.directive_table
- ocamlopt -I +compiler-libs -g -a -o findlib_top.cmxa topfind.cmx
- if [ 1 -gt 0 ]; then \
- ocamlopt -I +compiler-libs -g -shared -o findlib_top.cmxs topfind.cmx; \
- fi
- ocamlopt -I +compiler-libs -g -opaque -I +unix -I +dynlink -c fl_dynload.ml
- ocamlopt -I +compiler-libs -g -a -o findlib_dynload.cmxa fl_dynload.cmx
- if [ 1 -gt 0 ]; then \
- ocamlopt -I +compiler-libs -g -shared -o findlib_dynload.cmxs fl_dynload.cmx; \
- fi
- gmake[1]: Leaving directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8/src/findlib'
-> compiled ocamlfind.1.9.8
Processing 7/19: [dune: ocaml 39]
Processing 8/19: [dune: ocaml 39] [ocamlfind: gmake install]
+ /usr/local/bin/gmake "install" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8)
- if [ "1" -eq 1 ]; then \
- for x in camlp4 dbm graphics labltk num ocamlbuild; do \
- if [ -f "/home/opam/.opam/4.14.2/lib/$x/META" ]; then \
- if ! grep -Fq '[distributed with Ocaml]' "//home/opam/.opam/4.14.2/lib/$x/META"; then \
- rm -f site-lib-src/$x/META; \
- fi; \
- fi; \
- done; \
- test -f "site-lib-src/num/META" || rm -f "site-lib-src/num-top/META"; \
- fi
- echo 'SITELIB_META =' > Makefile.packages.in
- for x in `ls site-lib-src`; do test ! -f "site-lib-src/$x/META" || echo $x >> Makefile.packages.in; done
- tr '\n' ' ' < Makefile.packages.in > Makefile.packages
- rm Makefile.packages.in
- install -d "/home/opam/.opam/4.14.2/bin"
- install -d "/home/opam/.opam/4.14.2/man"
- /usr/local/bin/gmake install-config
- gmake[1]: Entering directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
- install -d "`dirname \"/home/opam/.opam/4.14.2/lib/findlib.conf\"`"
- test -f "/home/opam/.opam/4.14.2/lib/findlib.conf" || cp findlib.conf "/home/opam/.opam/4.14.2/lib/findlib.conf"
- gmake[1]: Leaving directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
- for p in findlib; do ( cd src/$p; /usr/local/bin/gmake install ); done
- gmake[1]: Entering directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8/src/findlib'
- install -d "/home/opam/.opam/4.14.2/lib/findlib"
- install -d "/home/opam/.opam/4.14.2/bin"
- test 1 -eq 0 || install -d "/home/opam/.opam/4.14.2/lib/ocaml"
- test 1 -eq 0 || cp topfind "/home/opam/.opam/4.14.2/lib/ocaml/"
- files=` ../../tools/collect_files ../../Makefile.config \
- findlib.cmi findlib.mli findlib.cma findlib.cmxa findlib.a findlib.cmxs \
- findlib_config.cmi findlib_config.ml topfind.cmi topfind.mli \
- fl_args.cmi fl_lint.cmi fl_meta.cmi fl_split.cmi fl_topo.cmi ocaml_args.cmi \
- fl_package_base.mli fl_package_base.cmi fl_metascanner.mli fl_metascanner.cmi \
- fl_metatoken.cmi findlib_top.cma findlib_top.cmxa findlib_top.a findlib_top.cmxs \
- findlib_dynload.cma findlib_dynload.cmxa findlib_dynload.a findlib_dynload.cmxs fl_dynload.mli fl_dynload.cmi \
- META` && \
- cp $files "/home/opam/.opam/4.14.2/lib/findlib/"
- f="ocamlfind"; { test -f ocamlfind_opt && f="ocamlfind_opt"; }; \
- install -c $f "/home/opam/.opam/4.14.2/bin/ocamlfind"
- # the following "if" block is only needed for 4.00beta2
- if [ 1 -eq 0 -a -f "/home/opam/.opam/4.14.2/lib/ocaml/compiler-libs/topdirs.cmi" ]; then \
- cd "/home/opam/.opam/4.14.2/lib/ocaml/compiler-libs/"; \
- cp topdirs.cmi toploop.cmi "/home/opam/.opam/4.14.2/lib/findlib/"; \
- fi
- gmake[1]: Leaving directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8/src/findlib'
- /usr/local/bin/gmake install-meta
- gmake[1]: Entering directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
- for x in bigarray bytes compiler-libs dynlink ocamldoc stdlib str threads unix ; do install -d "/home/opam/.opam/4.14.2/lib/$x"; cp site-lib-src/$x/META "/home/opam/.opam/4.14.2/lib/$x/META.tmp" && mv "/home/opam/.opam/4.14.2/lib/$x/META.tmp" "/home/opam/.opam/4.14.2/lib/$x/META"; done
- install -d "/home/opam/.opam/4.14.2/lib/findlib"; cp Makefile.packages "/home/opam/.opam/4.14.2/lib/findlib/Makefile.packages"
- gmake[1]: Leaving directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
- test ! -f 'site-lib-src/num-top/META' || { cd src/findlib; /usr/local/bin/gmake install-num-top; }
- test ! -f 'site-lib-src/camlp4/META' || install -c tools/safe_camlp4 "/home/opam/.opam/4.14.2/bin"
- /usr/local/bin/gmake install-doc
- gmake[1]: Entering directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
- install -d "/home/opam/.opam/4.14.2/man/man1" "/home/opam/.opam/4.14.2/man/man3" "/home/opam/.opam/4.14.2/man/man5"
- cp doc/ref-man/ocamlfind.1 "/home/opam/.opam/4.14.2/man/man1"
- cp: doc/ref-man/ocamlfind.1: No such file or directory
- gmake[1]: [Makefile:91: install-doc] Error 1 (ignored)
- cp doc/ref-man/META.5 doc/ref-man/site-lib.5 doc/ref-man/findlib.conf.5 "/home/opam/.opam/4.14.2/man/man5"
- cp: doc/ref-man/META.5: No such file or directory
- cp: doc/ref-man/site-lib.5: No such file or directory
- cp: doc/ref-man/findlib.conf.5: No such file or directory
- gmake[1]: [Makefile:92: install-doc] Error 1 (ignored)
- gmake[1]: Leaving directory '/home/opam/.opam/4.14.2/.opam-switch/build/ocamlfind.1.9.8'
-> installed ocamlfind.1.9.8
Processing 8/19: [dune: ocaml 39]
+ /home/opam/.opam/4.14.2/bin/ocaml "boot/bootstrap.ml" "-j" "39" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/dune.3.20.2)
- ocamlc -output-complete-exe -g -o .duneboot.exe -I boot unix.cma boot/libs.ml boot/duneboot.ml
- ./.duneboot.exe -j 39
-
Processing 8/19: [dune: ./_boot/dune.exe build]
+ /home/opam/.opam/4.14.2/.opam-switch/build/dune.3.20.2/./_boot/dune.exe "build" "dune.install" "--release" "--profile" "dune-bootstrap" "-j" "39" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/dune.3.20.2)
-> compiled dune.3.20.2
-> installed dune.3.20.2
Processing 10/19: [csexp: dune build]
Processing 11/19: [csexp: dune build] [yojson: dune build]
+ /home/opam/.opam/4.14.2/bin/dune "build" "-p" "csexp" "-j" "39" "@install" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/csexp.1.5.2)
-> compiled csexp.1.5.2
Processing 11/19: [yojson: dune build]
-> installed csexp.1.5.2
Processing 12/19: [yojson: dune build]
Processing 13/19: [merlin-lib: dune build] [yojson: dune build]
+ /home/opam/.opam/4.14.2/bin/dune "build" "-p" "yojson" "-j" "39" "@install" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/yojson.3.0.0)
-> compiled yojson.3.0.0
Processing 13/19: [merlin-lib: dune build]
-> installed yojson.3.0.0
Processing 14/19: [merlin-lib: dune build]
+ /home/opam/.opam/4.14.2/bin/dune "build" "-p" "merlin-lib" "-j" "39" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/merlin-lib.4.19-414)
-> compiled merlin-lib.4.19-414
-> installed merlin-lib.4.19-414
Processing 16/19: [dot-merlin-reader: dune build]
+ /home/opam/.opam/4.14.2/bin/dune "build" "-p" "dot-merlin-reader" "-j" "39" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/dot-merlin-reader.4.19-414)
-> compiled dot-merlin-reader.4.19-414
-> installed dot-merlin-reader.4.19-414
Processing 18/19: [merlin: dune build]
+ /home/opam/.opam/4.14.2/bin/dune "build" "-p" "merlin" "-j" "39" (CWD=/home/opam/.opam/4.14.2/.opam-switch/build/merlin.4.19-414)
-> compiled merlin.4.19-414
-> installed merlin.4.19-414
Done.
<><> merlin.4.19-414 installed successfully <><><><><><><><><><><><><><><><><><>
=> merlin installed.
Quick setup for VIM
-------------------
Append this to your .vimrc to add merlin to vim's runtime-path:
let g:opamshare = substitute(system('opam var share'),'\n$','','''')
execute "set rtp+=" . g:opamshare . "/merlin/vim"
Also run the following line in vim to index the documentation:
:execute "helptags " . g:opamshare . "/merlin/vim/doc"
Quick setup for EMACS
-------------------
Add opam emacs directory to your load-path by appending this to your .emacs:
(let ((opam-share (ignore-errors (car (process-lines "opam" "var" "share")))))
(when (and opam-share (file-directory-p opam-share))
;; Register Merlin
(add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share))
(autoload 'merlin-mode "merlin" nil t nil)
;; Automatically start it in OCaml buffers
(add-hook 'tuareg-mode-hook 'merlin-mode t)
(add-hook 'caml-mode-hook 'merlin-mode t)
;; Use opam switch to lookup ocamlmerlin binary
(setq merlin-command 'opam)
;; To easily change opam switches within a given Emacs session, you can
;; install the minor mode https://github.com/ProofGeneral/opam-switch-mode
;; and use one of its "OPSW" menus.
))
Take a look at https://github.com/ocaml/merlin for more information
Quick setup with opam-user-setup
--------------------------------
Opam-user-setup support Merlin.
$ opam user-setup install
should take care of basic setup.
See https://github.com/OCamlPro/opam-user-setup
2025-10-30 01:02.58 ---> saved as "67ebed28d289b3b0726b8b381323b3c47188dda21534e9b27f18edb0b0bdb188"
Job succeeded