-
Notifications
You must be signed in to change notification settings - Fork 412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[coq] Composition with (boot) theories hangs with a cycle in Dune > 3.7 when coq lang > 0.6 #7908
[coq] Composition with (boot) theories hangs with a cycle in Dune > 3.7 when coq lang > 0.6 #7908
Comments
@rgrinberg it seems to the that the problem here is as follows:
And boom! Here we got a cycle. Is there any hope to avoid this? It would also be fine for us to use a weaker resolution method. |
Can you post the trace of the cycle? EDIT: I see the cycle is in the first post. I suppose we can change the computation of the artifacts db to do binaries and libraries separately. |
Happy to follow your lead on this. For a short-term fix, do we have a method that will resolve the binary more weakly ? |
Well there is |
If that doesn't trigger the cycle we could live with it, no? The only downside is that the Coq composed build wouldn't detect native or version, but that's not a big deal I think. |
I am surprised tho the cycle doesn't trigger even in a non-composed scenario wil multiple packages tho. We may likely have a problem there too, but maybe people haven't bumped the |
Could you prepare a small test case (with a fake coq package)? I'll have a look. |
I tried to prepare a case but I ended up creating a loop that hangs. Which is independently a strange occurrence.
|
Note that in my original case dune also hanged, but it did print the cycle information before getting stuck. |
Yeah those are separate issues. One is a bug with dune's cycle detection. The other is a true cycle in our rules that we need to workaround. Let's try to get a reproduction case of the latter. |
@Alizter case works as a reproduction case for the rule cycles, even with just a single package. The surprising thing is that if you rename the public name from |
I'm afraid I'm stuck on how to make progress on this; it is unfortunate as I cannot migrate a few project to |
I started printing dep nodes that are being added in the first second of dune running in my example and got this: Details ("fs_memo_for_watching_via_parent", In_source_tree "dune-workspace")
("fs_memo_for_watching_directly", In_source_tree ".")
("fs_memo_for_watching_via_parent", In_source_tree ".bin")
("fs_memo_for_watching_directly", In_source_tree ".bin")
("readdir-of-source-path", In_source_tree ".")
("fs_memo_for_watching_via_parent", In_source_tree "dune-project")
("fs_memo_for_watching_via_parent", In_source_tree ".");
("fs_memo_for_watching_directly", In_source_tree ".")
("fs_memo_for_watching_via_parent", In_source_tree "dune-project")
("ensure-dune-project-file-exists",
(false,
{ name = Named "foo"
; root = In_source_tree "."
; version = None
; dune_version = (3, 9)
; info =
{ source = None
; license = None
; homepage = None
; documentation = None
; bug_reports = None
; maintainers = None
; authors = None
}
; project_file = In_source_tree "dune-project"
; packages =
[ ("foo",
{ id = { name = "foo"; dir = In_source_tree "." }
; synopsis = None
; description = None
; depends = []
; conflicts = []
; depopts = []
; info =
{ source = None
; license = None
; homepage = None
; documentation = None
; bug_reports = None
; maintainers = None
; authors = None
}
; has_opam_file = Exists false
; tags = []
; version = None
; deprecated_package_names = map {}
; sites = map {}
; allow_empty = false
})
]
; implicit_transitive_deps = true
; wrapped_executables = true
; map_workspace_root = true
; executables_implicit_empty_intf = true
; accept_alternative_dune_file_name = false
; generate_opam_files = false
; warnings = <opaque>
; use_standard_c_and_cxx_flags = Some true
; file_key = "3c4086b92437"
; dialects =
map
{ "ocaml" :
{ name = "ocaml"
; file_kinds =
{ impl =
Some
{ kind = "impl"
; extension = ".ml"
; preprocess = None
; format =
Some
([ "chdir"
; template "%{workspace_root}"
; [ "run"
; "ocamlformat"
; "--impl"
; template "%{input_file}"
]
],
[ ".ocamlformat"
; ".ocamlformat-ignore"
; ".ocamlformat-enable"
])
}
; intf =
Some
{ kind = "intf"
; extension = ".mli"
; preprocess = None
; format =
Some
([ "chdir"
; template "%{workspace_root}"
; [ "run"
; "ocamlformat"
; "--intf"
; template "%{input_file}"
]
],
[ ".ocamlformat"
; ".ocamlformat-ignore"
; ".ocamlformat-enable"
])
}
}
}
; "reason" :
{ name = "reason"
; file_kinds =
{ impl =
Some
{ kind = "impl"
; extension = ".re"
; preprocess =
Some
[ "run"
; "refmt"
; "--print"
; "binary"
; template "%{input_file}"
]
; format =
Some
([ "run"; "refmt"; template "%{input_file}" ], [])
}
; intf =
Some
{ kind = "intf"
; extension = ".rei"
; preprocess =
Some
[ "run"
; "refmt"
; "--print"
; "binary"
; template "%{input_file}"
]
; format =
Some
([ "run"; "refmt"; template "%{input_file}" ], [])
}
}
}
}
; explicit_js_mode = true
; format_config = None
; subst_config = None
; strict_package_deps = false
; cram = true
; allow_approximate_merlin = <opaque>
; expand_aliases_in_sandbox = false
; opam_file_location = Relative_to_project
}))
("fs_memo_for_watching_via_parent", In_source_tree "dune")
("find-dir-raw", In_source_tree ".")
("Dune_files.interpret", <opaque>)
("dune_load", ())
("workspaces-internal", ())
("workspace", ())
("workspace", ())
("workspace", ())
("fs_memo_for_watching_via_parent", In_source_tree "dune.lock")
("instantiate-context", "default")
("native-context", ())
("build-contexts", ())
("dune_load", ())
("only_packages", ())
("build-contexts", ())
("workspace", ())
("context-db", ())
("filtered_stanzas", ())
("only_packages", ())
("dune_load", ())
("fs_memo_for_watching_via_parent",
External
"/home/ali/dune/_build/default/test/blackbox-tests/test-cases/.bin/ocamlc.opt")
("fs_memo_for_watching_via_parent",
External
"/home/ali/dune/_build/default/test/blackbox-tests/test-cases/.bin/ocamlc")
("fs_memo_for_watching_via_parent",
External "/home/ali/dune/_build/install/default/bin/ocamlc.opt")
("fs_memo_for_watching_via_parent",
External "/home/ali/dune/_build/install/default/bin/ocamlc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/2z3arz5ni43qdkbk95pmkl25kf77ww3i-glib-2.76.4-bin/bin/ocamlc.opt")
("fs_memo_for_watching_via_parent",
External
"/nix/store/2z3arz5ni43qdkbk95pmkl25kf77ww3i-glib-2.76.4-bin/bin/ocamlc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/xb0pnbnfgc5ap6xv8q6gdipvryb5zq0v-nodejs-slim-18.18.2/bin/ocamlc.opt")
("fs_memo_for_watching_via_parent",
External
"/nix/store/xb0pnbnfgc5ap6xv8q6gdipvryb5zq0v-nodejs-slim-18.18.2/bin/ocamlc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/ifr6srqgpvygd5vp14748d109ri31isv-pkg-config-wrapper-0.29.2/bin/ocamlc.opt")
("fs_memo_for_watching_via_parent",
External
"/nix/store/ifr6srqgpvygd5vp14748d109ri31isv-pkg-config-wrapper-0.29.2/bin/ocamlc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/lcpz2qk9i2j6zc8rq9a37abvlxvv4n6f-opam-2.1.5/bin/ocamlc.opt")
("fs_memo_for_watching_via_parent",
External "/nix/store/lcpz2qk9i2j6zc8rq9a37abvlxvv4n6f-opam-2.1.5/bin/ocamlc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/zwbx8f5a4w9m5hk5h4a89jj56rxi1ks4-ocaml4.14.1-ocamlformat-0.26.1/bin/ocamlc.opt")
("fs_memo_for_watching_via_parent",
External
"/nix/store/zwbx8f5a4w9m5hk5h4a89jj56rxi1ks4-ocaml4.14.1-ocamlformat-0.26.1/bin/ocamlc")
("fs_memo_for_watching_via_parent",
External "/nix/store/6v7cw9a64qapalpz1n60wpx4a70ram3l-dune/bin/ocamlc.opt")
("fs_memo_for_watching_via_parent",
External "/nix/store/6v7cw9a64qapalpz1n60wpx4a70ram3l-dune/bin/ocamlc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/bin/ocamlc.opt")
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("fs_memo_for_watching_via_parent",
External
"/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/bin/ocamlopt.opt")
("fs_memo_for_watching_via_parent",
External "/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/bin/ocaml")
("fs_memo_for_watching_via_parent",
External
"/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/bin/ocamldep.opt")
("fs_memo_for_watching_via_parent",
External
"/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/bin/ocamlmklib.opt")
("fs_memo_for_watching_via_parent",
External
"/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/bin/ocamlobjinfo.opt")
("ocaml_and_build_env_kind", ())
("ocaml_and_build_env_kind", ())
("default_ocamlpath", ())
("build-contexts", ())
("context-db-get", "default")
("build-contexts", ())
("<unnamed>", ())
("dune_load", ())
("filtered_stanzas", ())
("only_packages", ())
("dune_load", ())
("ocaml_and_build_env_kind", ())
("ocaml_and_build_env_kind", ())
("build-contexts", ())
("findlib", ())
("default_ocamlpath", ())
("findlib_paths", ())
("ocaml_and_build_env_kind", ())
("fs_memo_for_watching_via_parent",
External
"/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/lib/ocaml/bigarray.cma")
("fs_memo_for_watching_via_parent",
External
"/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/lib/ocaml/graphics.cma")
("fs_memo_for_watching_via_parent",
External
"/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/lib/ocaml/nums.cma")
("findlib", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("build-contexts", ())
("Artifacts_db.all", ())
("<unnamed>", ())
("<unnamed>", ())
("context-db-get", "default")
("<unnamed>", ())
("<unnamed>", ())
("Artifacts_db.all", ())
("make_sctx", ())
("Super_context.all", ())
("Super_context.all", ())
("filtered_stanzas", ())
("only_packages", ())
("dune_load", ())
("get_installed_binaries", ())
("<unnamed>", ())
("context-db-get", "default")
("<unnamed>", ())
("<unnamed>", ())
("find-dir-raw", In_source_tree ".")
("Dune_files.interpret", <opaque>)
("only_packages", ())
("ocaml_and_build_env_kind", ())
("env-nodes-memo", In_build_dir "default")
("env-nodes-memo", In_build_dir "default")
("context-db-get", "default")
("<unnamed>", ())
("<unnamed>", ())
("default_env", ())
("<unnamed>", ())
("context-db-get", "default")
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("workspace", ())
("<unnamed>", ())
("Build_config.set", ())
("find-dir-raw", In_source_tree ".")
("workspace", ())
("find-dir-raw", In_source_tree ".")
("Dune_files.interpret", <opaque>)
("only_packages", ())
("get-dir-status", In_build_dir "default")
("find-dir-raw", In_source_tree ".")
("context-db-get", "default")
("<unnamed>", ())
("<unnamed>", ())
("fs_memo_for_watching_via_parent",
External
"/home/ali/dune/_build/default/test/blackbox-tests/test-cases/.bin/coqc")
("fs_memo_for_watching_via_parent",
External "/home/ali/dune/_build/install/default/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/2z3arz5ni43qdkbk95pmkl25kf77ww3i-glib-2.76.4-bin/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/xb0pnbnfgc5ap6xv8q6gdipvryb5zq0v-nodejs-slim-18.18.2/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/ifr6srqgpvygd5vp14748d109ri31isv-pkg-config-wrapper-0.29.2/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/lcpz2qk9i2j6zc8rq9a37abvlxvv4n6f-opam-2.1.5/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/zwbx8f5a4w9m5hk5h4a89jj56rxi1ks4-ocaml4.14.1-ocamlformat-0.26.1/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/6v7cw9a64qapalpz1n60wpx4a70ram3l-dune/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/l1vs77vaaby67lfbnribaimqzpd19bci-ocaml-4.14.1/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/dd8zjwradbrhiqg920xs8gzzx1hn219l-ocaml4.14.1-findlib-1.9.6/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/znqwpxy9jlxcgi2ms2hga0ch87bbbr9g-patchelf-0.15.0/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/zlzz2z48s7ry0hkl55xiqp5a73b4mzrg-gcc-wrapper-12.3.0/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/0b9bsznqs6pdg42dxcwvrlmarjn2p6a1-gcc-12.3.0/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/nvh3jgs8pqghnsfzbv28004xkigiw8gc-glibc-2.38-23-bin/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/vwkvhj69z4qqgmpa2lwm97kabf12p26r-coreutils-9.3/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/h8d2j0prdf7pnpgyrgkxrrbfwnmxbq6y-binutils-wrapper-2.40/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/p58l5qmzifl20qmjs3xfpl01f0mqlza2-binutils-2.40/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/6ar18384i87dgwyqw2lr434lwnr3y5c0-file-5.45/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/rbsqynlfkqgm4qbxcl78np14lll56n6h-mercurial-6.5.2/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/ffll6glz3gwx342z0ch8wx30p5cnqz1z-python3-3.11.5/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/nsp7ik5nhjwn0sgd4x2s8jl75dszmdma-strace-6.6/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/d2ahd40prw6c57yfbpjlxwlj0zvs406b-ocaml4.14.1-merlin-4.12-414/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/y22170hg44jjxrbvir2i8pvdgfa5gmi0-ocaml4.14.1-ppx_base-0.16/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/aikpwzhbg50nqz9wipy2wcwg8vpn2z6s-ocaml4.14.1-mdx-2.3.1-bin/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/rp7icw4lnyifqzs9v8h1r49djxck16n1-ocaml4.14.1-cinaps-0.15.1/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/db6qpydlpsf8lgbip0ipgrsvcdlik4mf-ocaml4.14.1-menhir-20230608/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/s528zxigdsqbfcc59fhx6m9wdhwsld9x-ocaml4.14.1-odoc-2.2.1/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/mr05a9y8s27ja83w7n5r0cxgsjkifhyy-ocaml4.14.1-patdiff-0.16/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/i0mwibcsfc8a8ppjykv1335bvkrlxmv4-ocaml4.14.1-core_unix-0.16/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/ipl5c00mvc8ydldxjl528wq0bvvj6yj5-ocaml4.14.1-ppx_jane-0.16/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/8vlvldwf422fcfxd5kabdn6nh4ivlw4r-pcre-8.45-dev/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/cxpx3hcrf4kp968bc1s0md21r7ibxaar-pcre-8.45-bin/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/kkx7f7v8js1f6csppf5g9576zlcrpwnz-ccls-0.20230717/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/lglgvjg5vn4kmznc17ac0mvs8a1lvyk4-ocaml4.14.1-ocaml-lsp-server-n-a/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/7mhfp8g75h7lk7534pgpsg0aj0vyrp69-ocaml4.14.1-melange-dev/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/1l570gf13x3ii1l8aj2clv72givd0c9q-ocaml4.14.1-rescript-syntax-dev/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/0glncgfnkf522k56kvmbw0524zqc2ai9-ocaml4.14.1-js_of_ocaml-compiler-5.4.0/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/d9911dza8lpz5rdghaq599hfx530yjwn-ocaml4.14.1-yojson-2.1.1/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/lw6p4issadazgak0lhv5jmkn24c2q26n-ocaml4.14.1-utop-2.13.1/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/r6b2zl1zqr100ki5x6bbnpykj4rh6dc1-ocaml4.14.1-lambda-term-3.3.1/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/nm2b6r5fv634w5iygxrm6xjj0wg3776y-ocaml4.14.1-uutf-1.0.3/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/njnkwi1inzih1m9gq6zh4aqf0h6d3ygq-ocaml4.14.1-uuseg-15.0.0/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/vwkvhj69z4qqgmpa2lwm97kabf12p26r-coreutils-9.3/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/qyzfglbrqb5ck0dgljplin2bvc4995w7-findutils-4.9.0/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/x6y2i213maj6ibcn0qzgg7graif5qcvi-diffutils-3.10/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/g5p3ky90xa05ggg5szyb0pbbl2vp7n03-gnused-4.9/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/p2r51wfg9m3ga7pp7avslpfhfa7w5y83-gnugrep-3.11/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/cmn958i8qym0qvmvydl23fh3bm3fbhl7-gawk-5.2.2/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/f5qy259g9b4qh0hwz22z5j5bq3m53cpv-gnutar-1.35/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/kmr52zpw7wazxywqvzgpdx0vnn9prd3v-gzip-1.13/bin/coqc")
("fs_memo_for_watching_via_parent",
External
"/nix/store/w1mar48lwkavwy64mvj567lwaqnm2l11-bzip2-1.0.8-bin/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/9dh2csn531by6b1vr9jv85v4k17xwkid-gnumake-4.4.1/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/lf0wpjrj8yx4gsmw2s3xfl58ixmqk8qa-bash-5.2-p15/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/pinwlz7294p37d2sbkdpjildzxii42vv-patch-2.7.6/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/skrzk0g88jf9rg28labqsyxv7gg357q1-xz-5.4.4-bin/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/store/h5pshzq92r2xcv6w1p10cmkar4nyv0xp-file-5.45/bin/coqc")
("fs_memo_for_watching_via_parent", External "/run/wrappers/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/home/ali/.nix-profile/bin/coqc")
("fs_memo_for_watching_via_parent", External "/nix/profile/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/home/ali/.local/state/nix/profile/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/etc/profiles/per-user/ali/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/nix/var/nix/profiles/default/bin/coqc")
("fs_memo_for_watching_via_parent",
External "/run/current-system/sw/bin/coqc")
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("which", <opaque>)
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("find-dir-raw", In_source_tree ".")
("Dune_files.interpret", <opaque>)
("only_packages", ())
("gen-rules", In_build_dir "default")
("Super_context.all", ())
("Super_context.all", ())
("<unnamed>", ())
("<unnamed>", ())
("filtered_stanzas", ())
("only_packages", ())
("dune_load", ())
("lib-entries-map", <opaque>)
("<unnamed>", ())
("<unnamed>", ())
("filtered_stanzas", ())
("only_packages", ())
("dune_load", ())
("lib-entries-map", <opaque>)
("only_packages", ())
("context-db-get", "default")
("<unnamed>", ())
("<unnamed>", ())
("dune_load", ())
("only_packages", ())
("only_packages", ())
("<unnamed>", ())
("<unnamed>", ())
("filtered_stanzas", ())
("only_packages", ())
("dune_load", ())
("lib-entries-map", <opaque>)
("<unnamed>", ())
("<unnamed>", ())
("filtered_stanzas", ())
("only_packages", ())
("dune_load", ())
("lib-entries-map", <opaque>)
("only_packages", ())
("Super_context.all", ())
("get-dir-status", In_build_dir "default")
("dir-contents-get0", ("default", In_build_dir "default"))
("build-contexts", ())
("Build_config.set", ())
("gen-rules", In_build_dir "default")
("gen-rules", In_build_dir "default/.dune")
("<unnamed>", ())
("find-dir-raw", In_source_tree ".")
("find-dir-raw", In_source_tree ".dune")
("find-dir-raw", In_source_tree ".dune")
("load-dir", In_build_dir "default/.dune")
("find-dir-raw", In_source_tree ".")
("workspace", ())
("execution-parameters-of-dir", In_build_dir "default/.dune")
("context-db-get", "default")
("ocaml_and_build_env_kind", ())
("Rule.make", ())
("execute-rule", { id = 3; info = Internal })
("<unnamed>", ())
("build-file", In_build_dir "default/.dune/configurator")
("load-dir", In_build_dir "default/.dune")
("execution-parameters-of-dir", In_build_dir "default/.dune")
("context-db-get", "default")
("ocaml_and_build_env_kind", ())
("Rule.make", ())
("execute-rule", { id = 4; info = Internal })
("<unnamed>", ())
("build-file", In_build_dir "default/.dune/configurator.v2")
("force-configuration-files", ())
("env-nodes-memo", In_build_dir "default")
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("<unnamed>", ())
("find-dir-raw", In_source_tree ".")
("Dune_files.interpret", <opaque>)
("only_packages", ())
("context-db-get", "default")
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("find-dir-raw", In_source_tree ".")
("<unnamed>", ())
("ocaml_and_build_env_kind", ())
("ocaml_and_build_env_kind", ())
("env-nodes-memo", In_build_dir "default")
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("find-dir-raw", In_source_tree ".")
("ocaml_and_build_env_kind", ())
("ocaml_and_build_env_kind", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("context-db-get", "default")
("<unnamed>", ())
("<unnamed>", ())
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("<unnamed>", ())
("Artifacts.Bin.add_binaries", ())
("Artifacts.Bin.add_binaries", ())
("Artifacts.Bin.add_binaries", ())
("Build_config.set", ())
("workspace", ())
("gen-rules", In_build_dir "install")
("Super_context.all", ())
("dune_load", ())
("only_packages", ())
("install-rules-and-pkg-entries",
("default",
{ id = { name = "foo"; dir = In_source_tree "." }
; synopsis = None
; description = None
; depends = []
; conflicts = []
; depopts = []
; info =
{ source = None
; license = None
; homepage = None
; documentation = None
; bug_reports = None
; maintainers = None
; authors = None
}
; has_opam_file = Exists false
; tags = []
; version = None
; deprecated_package_names = map {}
; sites = map {}
; allow_empty = false
}))
("install-rule-scheme", "default")
("restrict-by-child-non-default-outer", ())
("filtered_stanzas", ())
("only_packages", ())
("dune_load", ())
("dune_load", ())
("only_packages", ())
("find-dir-raw", In_source_tree ".")
("env-nodes-memo", In_build_dir "default")
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("env-nodes-memo", In_build_dir "default")
("<unnamed>", ())
("Artifacts.Bin.add_binaries", ())
[130]
I haven't looked at it in full detail yet but there seems to be a lot of stuff I don't understand. |
Why for example, is It seems that |
Tested a bit more with |
Unsure why this wasn't closed by #9496 merge, doing it myself. Thanks Rudi !! |
CHANGES: - Do not ignore `(formatting ..)` settings in context or workspace files (ocaml/dune#8447, @rgrinberg) - Add command `dune cache clear` to completely delete all traces of the Dune cache. (ocaml/dune#8975, @nojb) - Fixed a bug where Dune was incorrectly parsing the output of coqdep when it was escaped, as is the case on Windows. (ocaml/dune#9231, fixes ocaml/dune#9218, @Alizter) - Copying mode for sandboxes will now follow symbolic links (ocaml/dune#9282, @rgrinberg) - Forbid the empty `(binaries ..)` field in the `env` stanza in the workspace file unless language version is at least 3.2. - [coq] Fix bug in computation of flags when composed with boot theories. (ocaml/dune#9347, fixes ocaml/dune#7909, @ejgallego) - Fixed a bug where the `(select)` field of the `(libraries)` field of the `(test)` stanza wasn't working properly. (ocaml/dune#9387, fixes ocaml/dune#9365, @Alizter) - Allow to disable Coq 0.8 deprecation warning (ocaml/dune#9439, @ejgallego) - Fix handling of the `PATH` argument to `dune init proj NAME PATH`. An intermediate directory called `NAME` is no longer created if `PATH` is supplied, so `dune init proj my_project .` will now initialize a project in the current working directory. (ocaml/dune#9447, fixes ocaml/dune#9209, @shonfeder) - Allow `OCAMLFIND_TOOLCHAIN` to be set per context in the workspace file through the `env` stanza. (ocaml/dune#9449, @rgrinberg) - Experimental doc rules: Correctly handle the case when a package depends upon its own sublibraries (ocaml/dune#9461, fixes ocaml/dune#9456, @jonludlam) - Resolve various public binaries to their build location, rather than to where they're copied in the `_build/install` directory (ocaml/dune#9496, fixes ocaml/dune#7908, @rgrinberg). - Menhir: generate `.conflicts` file by default. Add new field to the `(menhir)` stanza to control the generation of this file: `(explain <blang expression>)`. Introduce `(menhir (flags ...) (explain ...))` field in the `(env)` stanza, delete `(menhir_flags)` field. All changes are guarded under a new version of the Menhir extension, 3.0. (ocaml/dune#9512, @nojb) - Correctly ignore warning flags in vendored projects (ocaml/dune#9515, @rgrinberg) - Directory targets can now be caches. (ocaml/dune#9535, @rleshchinskiy) - Remove warning 30 from default set for projects where dune lang is at least 3.13 (ocaml/dune#9568, @gasche) - It is now possible to use special forms such as `(:include)` and variables `%{read-lines:}` in `(modules)` and similar fields. Note that the dependencies introduced in this way (ie the files being read) must live in a different directory than the stanza making use of them. (ocaml/dune#9578, @nojb) - Use watch exclusions in watch mode on MacOS (ocaml/dune#9643, fixes ocaml/dune#9517, @PoorlyDefinedBehaviour) - Fix merlin configuration for `(include_subdirs qualified)` modules (ocaml/dune#9659, fixes ocaml/dune#8297, @rgrinberg) - Fix handling of `enabled_if` in binary install stanzas. Previously, we'd ignore the result of `enabled_if` when evaluating `%{bin:..}` (ocaml/dune#9707, @rgrinberg) - Add `coqdoc_flags` field to `coq` field of `env` stanza allowing the setting of workspace-wide defaults for `coqdoc_flags`. (ocaml/dune#9280, fixes ocaml/dune#9139, @Alizter) - ctypes: fix an error where `(ctypes)` with no `(function_description)` would cause an error trying refer to a nonexistent `_stubs.a` dependency (ocaml/dune#9302, fix ocaml/dune#9300, @emillon)
CHANGES: ### Added - Add command `dune cache clear` to completely delete all traces of the Dune cache. (ocaml/dune#8975, @nojb) - Allow to disable Coq 0.8 deprecation warning (ocaml/dune#9439, @ejgallego) - Allow `OCAMLFIND_TOOLCHAIN` to be set per context in the workspace file through the `env` stanza. (ocaml/dune#9449, @rgrinberg) - Menhir: generate `.conflicts` file by default. Add new field to the `(menhir)` stanza to control the generation of this file: `(explain <blang expression>)`. Introduce `(menhir (flags ...) (explain ...))` field in the `(env)` stanza, delete `(menhir_flags)` field. All changes are guarded under a new version of the Menhir extension, 3.0. (ocaml/dune#9512, @nojb) - Directory targets can now be cached. (ocaml/dune#9535, @rleshchinskiy) - It is now possible to use special forms such as `(:include)` and variables `%{read-lines:}` in `(modules)` and similar fields. Note that the dependencies introduced in this way (ie the files being read) must live in a different directory than the stanza making use of them. (ocaml/dune#9578, @nojb) - Remove warning 30 from default set for projects where dune lang is at least 3.13 (ocaml/dune#9568, @gasche) - Add `coqdoc_flags` field to `coq` field of `env` stanza allowing the setting of workspace-wide defaults for `coqdoc_flags`. (ocaml/dune#9280, fixes ocaml/dune#9139, @Alizter) - ctypes: fix an error where `(ctypes)` with no `(function_description)` would cause an error trying refer to a nonexistent `_stubs.a` dependency (ocaml/dune#9302, fix ocaml/dune#9300, @emillon) ### Changed - Check that package names in `(depends)` and related fields in `dune-project` are well-formed. (ocaml/dune#9472, fixes ocaml/dune#9270, @ElectreAAS) ### Fixed - Do not ignore `(formatting ..)` settings in context or workspace files (ocaml/dune#8447, @rgrinberg) - Fixed a bug where Dune was incorrectly parsing the output of coqdep when it was escaped, as is the case on Windows. (ocaml/dune#9231, fixes ocaml/dune#9218, @Alizter) - Copying mode for sandboxes will now follow symbolic links (ocaml/dune#9282, @rgrinberg) - Forbid the empty `(binaries ..)` field in the `env` stanza in the workspace file unless language version is at least 3.2. - [coq] Fix bug in computation of flags when composed with boot theories. (ocaml/dune#9347, fixes ocaml/dune#7909, @ejgallego) - Fixed a bug where the `(select)` field of the `(libraries)` field of the `(test)` stanza wasn't working properly. (ocaml/dune#9387, fixes ocaml/dune#9365, @Alizter) - Fix handling of the `PATH` argument to `dune init proj NAME PATH`. An intermediate directory called `NAME` is no longer created if `PATH` is supplied, so `dune init proj my_project .` will now initialize a project in the current working directory. (ocaml/dune#9447, fixes ocaml/dune#9209, @shonfeder) - Experimental doc rules: Correctly handle the case when a package depends upon its own sublibraries (ocaml/dune#9461, fixes ocaml/dune#9456, @jonludlam) - Resolve various public binaries to their build location, rather than to where they're copied in the `_build/install` directory (ocaml/dune#9496, fixes ocaml/dune#7908, @rgrinberg). - Correctly ignore warning flags in vendored projects (ocaml/dune#9515, @rgrinberg) - Use watch exclusions in watch mode on MacOS (ocaml/dune#9643, fixes ocaml/dune#9517, @PoorlyDefinedBehaviour) - Fix merlin configuration for `(include_subdirs qualified)` modules (ocaml/dune#9659, fixes ocaml/dune#8297, @rgrinberg) - Fix handling of `enabled_if` in binary install stanzas. Previously, we'd ignore the result of `enabled_if` when evaluating `%{bin:..}` (ocaml/dune#9707, @rgrinberg)
CHANGES: ### Added - Add command `dune cache clear` to completely delete all traces of the Dune cache. (ocaml/dune#8975, @nojb) - Allow to disable Coq 0.8 deprecation warning (ocaml/dune#9439, @ejgallego) - Allow `OCAMLFIND_TOOLCHAIN` to be set per context in the workspace file through the `env` stanza. (ocaml/dune#9449, @rgrinberg) - Menhir: generate `.conflicts` file by default. Add new field to the `(menhir)` stanza to control the generation of this file: `(explain <blang expression>)`. Introduce `(menhir (flags ...) (explain ...))` field in the `(env)` stanza, delete `(menhir_flags)` field. All changes are guarded under a new version of the Menhir extension, 3.0. (ocaml/dune#9512, @nojb) - Directory targets can now be cached. (ocaml/dune#9535, @rleshchinskiy) - It is now possible to use special forms such as `(:include)` and variables `%{read-lines:}` in `(modules)` and similar fields. Note that the dependencies introduced in this way (ie the files being read) must live in a different directory than the stanza making use of them. (ocaml/dune#9578, @nojb) - Remove warning 30 from default set for projects where dune lang is at least 3.13 (ocaml/dune#9568, @gasche) - Add `coqdoc_flags` field to `coq` field of `env` stanza allowing the setting of workspace-wide defaults for `coqdoc_flags`. (ocaml/dune#9280, fixes ocaml/dune#9139, @Alizter) - ctypes: fix an error where `(ctypes)` with no `(function_description)` would cause an error trying refer to a nonexistent `_stubs.a` dependency (ocaml/dune#9302, fix ocaml/dune#9300, @emillon) ### Changed - Check that package names in `(depends)` and related fields in `dune-project` are well-formed. (ocaml/dune#9472, fixes ocaml/dune#9270, @ElectreAAS) ### Fixed - Do not ignore `(formatting ..)` settings in context or workspace files (ocaml/dune#8447, @rgrinberg) - Fixed a bug where Dune was incorrectly parsing the output of coqdep when it was escaped, as is the case on Windows. (ocaml/dune#9231, fixes ocaml/dune#9218, @Alizter) - Copying mode for sandboxes will now follow symbolic links (ocaml/dune#9282, @rgrinberg) - Forbid the empty `(binaries ..)` field in the `env` stanza in the workspace file unless language version is at least 3.2. - [coq] Fix bug in computation of flags when composed with boot theories. (ocaml/dune#9347, fixes ocaml/dune#7909, @ejgallego) - Fixed a bug where the `(select)` field of the `(libraries)` field of the `(test)` stanza wasn't working properly. (ocaml/dune#9387, fixes ocaml/dune#9365, @Alizter) - Fix handling of the `PATH` argument to `dune init proj NAME PATH`. An intermediate directory called `NAME` is no longer created if `PATH` is supplied, so `dune init proj my_project .` will now initialize a project in the current working directory. (ocaml/dune#9447, fixes ocaml/dune#9209, @shonfeder) - Experimental doc rules: Correctly handle the case when a package depends upon its own sublibraries (ocaml/dune#9461, fixes ocaml/dune#9456, @jonludlam) - Resolve various public binaries to their build location, rather than to where they're copied in the `_build/install` directory (ocaml/dune#9496, fixes ocaml/dune#7908, @rgrinberg). - Correctly ignore warning flags in vendored projects (ocaml/dune#9515, @rgrinberg) - Use watch exclusions in watch mode on MacOS (ocaml/dune#9643, fixes ocaml/dune#9517, @PoorlyDefinedBehaviour) - Fix merlin configuration for `(include_subdirs qualified)` modules (ocaml/dune#9659, fixes ocaml/dune#8297, @rgrinberg) - Fix handling of `enabled_if` in binary install stanzas. Previously, we'd ignore the result of `enabled_if` when evaluating `%{bin:..}` (ocaml/dune#9707, @rgrinberg)
I've discovered some issues when testing composition with Coq itself in Dune 3.8.
First issue is as follows, given:
(lang coq 0.7
) or 0.8Then Dune will fail with:
This seems to be related to the
Coq_config
resolution in boot. Note that the issue doesn't occur for lower versions of the Coq language.cc @Alizter
[1] To reproduce, you can use Coq's main branch:
The text was updated successfully, but these errors were encountered: