Skip to content

Add an ocaml.5.4.0 upper bound for binsec.0.8.2-0.11.0#29649

Merged
jmid merged 1 commit intoocaml:masterfrom
jmid:add-binsec-ocaml-bounds
Apr 4, 2026
Merged

Add an ocaml.5.4.0 upper bound for binsec.0.8.2-0.11.0#29649
jmid merged 1 commit intoocaml:masterfrom
jmid:add-binsec-ocaml-bounds

Conversation

@jmid
Copy link
Copy Markdown
Member

@jmid jmid commented Apr 4, 2026

Seen on #29634:
https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/4b172f8fb04e73775fb03ade1369a3fe5802d19c/variant/compilers,5.4,curses.1.0.12,revdeps,binsec.0.11.0

#=== ERROR while compiling binsec.0.11.0 ======================================#
# context              2.5.0 | linux/x86_64 | ocaml-base-compiler.5.4.1 | file:///home/opam/opam-repository
# path                 ~/.opam/5.4/.opam-switch/build/binsec.0.11.0
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p binsec -j 71 --promote-install-files=false @install
# exit-code            1
# env-file             ~/.opam/log/binsec-7-6cb972.env
# output-file          ~/.opam/log/binsec-7-6cb972.out
### output ###

[...]

# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlc.opt -w -40 -open Binsec -open Binsec_sse -open Binsec_cli -g -bin-annot -bin-annot-occurrences -I src/cli/command/sse/.binsec_cli_sse.objs/byte -I /home/opam/.opam/5.4/lib/ISO8601 -I /home/opam/.opam/5.4/lib/curses -I /home/opam/.opam/5.4/lib/dune-private-libs/dune-section -I /home/opam/.opam/5.4/lib/dune-private-libs/meta_parser -I /home/opam/.opam/5.4/lib/dune-site -I /home/opam/.opam/5.4/lib/dune-site/linker -I /home/opam/.opam/5.4/lib/dune-site/plugins -I /home/opam/.opam/5.4/lib/dune-site/private -I /home/opam/.opam/5.4/lib/dypgen -I /home/opam/.opam/5.4/lib/ocaml/str -I /home/opam/.opam/5.4/lib/ocaml/threads -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ocamlgraph -I /home/opam/.opam/5.4/lib/toml -I /home/opam/.opam/5.4/lib/zarith -I src/.binsec_kernel.objs/byte -I src/base/.binsec_base.objs/byte -I src/cli/.binsec_cli.objs/byte -I src/cli/main/.binsec.objs/byte -I src/dba/.binsec_kernel_dba.objs/byte -H src/domain/.binsec_domains.objs/byte -I src/domain/.binsec_domains.objs/public_cmi -I src/dwarf/.binsec_dwarf.objs/byte -I src/isa/.binsec_kernel_isa.objs/byte -I src/isa/armv7/.binsec_isa_armv7.objs/byte -I src/isa/armv8/.binsec_isa_armv8.objs/byte -I src/isa/ppc64/.binsec_isa_ppc64.objs/byte -I src/isa/riscv/.binsec_isa_riscv.objs/byte -I src/isa/sparcv8/.binsec_isa_sparcv8.objs/byte -I src/isa/x86_32/.binsec_isa_x86_32.objs/byte -I src/isa/x86_64/.binsec_isa_x86_64.objs/byte -I src/loader/.binsec_kernel_loader.objs/byte -I src/parser/.binsec_kernel_parser.objs/byte -I src/script/.binsec_script.objs/byte -I src/script/.binsec_script_ast.objs/byte -I src/smtlib/.binsec_smtlib.objs/byte -I src/smtlib/bindings/.binsec_smtlib_bindings.objs/byte -I src/sse/.binsec_sse.objs/byte -I src/sse/loader/.binsec_sse_loader.objs/byte -I src/sse/plugin/.binsec_sse_quick_merge.objs/byte -I src/symbolic/.binsec_symbolic.objs/byte -I src/unix/.binsec_unix.objs/byte -cmi-file src/cli/command/sse/.binsec_cli_sse.objs/byte/binsec_cli_sse__Screen.cmi -no-alias-deps -open Binsec_cli_sse -o src/cli/command/sse/.binsec_cli_sse.objs/byte/binsec_cli_sse__Screen.cmo -c -impl src/cli/command/sse/screen.ml)
# File "src/cli/command/sse/screen.enabled.ml", lines 349-401, characters 8-9:
# Error: Some record fields are undefined: out_width
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -open Binsec -open Binsec_sse -open Binsec_cli -g -I src/cli/command/sse/.binsec_cli_sse.objs/byte -I src/cli/command/sse/.binsec_cli_sse.objs/native -I /home/opam/.opam/5.4/lib/ISO8601 -I /home/opam/.opam/5.4/lib/curses -I /home/opam/.opam/5.4/lib/dune-private-libs/dune-section -I /home/opam/.opam/5.4/lib/dune-private-libs/meta_parser -I /home/opam/.opam/5.4/lib/dune-site -I /home/opam/.opam/5.4/lib/dune-site/linker -I /home/opam/.opam/5.4/lib/dune-site/plugins -I /home/opam/.opam/5.4/lib/dune-site/private -I /home/opam/.opam/5.4/lib/dypgen -I /home/opam/.opam/5.4/lib/ocaml/str -I /home/opam/.opam/5.4/lib/ocaml/threads -I /home/opam/.opam/5.4/lib/ocaml/unix -I /home/opam/.opam/5.4/lib/ocamlgraph -I /home/opam/.opam/5.4/lib/toml -I /home/opam/.opam/5.4/lib/zarith -I src/.binsec_kernel.objs/byte -I src/.binsec_kernel.objs/native -I src/base/.binsec_base.objs/byte -I src/base/.binsec_base.objs/native -I src/cli/.binsec_cli.objs/byte -I src/cli/.binsec_cli.objs/native -I src/cli/main/.binsec.objs/byte -I src/cli/main/.binsec.objs/native -I src/dba/.binsec_kernel_dba.objs/byte -I src/dba/.binsec_kernel_dba.objs/native -H src/domain/.binsec_domains.objs/byte -I src/domain/.binsec_domains.objs/native -I src/domain/.binsec_domains.objs/public_cmi -I src/dwarf/.binsec_dwarf.objs/byte -I src/dwarf/.binsec_dwarf.objs/native -I src/isa/.binsec_kernel_isa.objs/byte -I src/isa/.binsec_kernel_isa.objs/native -I src/isa/armv7/.binsec_isa_armv7.objs/byte -I src/isa/armv7/.binsec_isa_armv7.objs/native -I src/isa/armv8/.binsec_isa_armv8.objs/byte -I src/isa/armv8/.binsec_isa_armv8.objs/native -I src/isa/ppc64/.binsec_isa_ppc64.objs/byte -I src/isa/ppc64/.binsec_isa_ppc64.objs/native -I src/isa/riscv/.binsec_isa_riscv.objs/byte -I src/isa/riscv/.binsec_isa_riscv.objs/native -I src/isa/sparcv8/.binsec_isa_sparcv8.objs/byte -I src/isa/sparcv8/.binsec_isa_sparcv8.objs/native -I src/isa/x86_32/.binsec_isa_x86_32.objs/byte -I src/isa/x86_32/.binsec_isa_x86_32.objs/native -I src/isa/x86_64/.binsec_isa_x86_64.objs/byte -I src/isa/x86_64/.binsec_isa_x86_64.objs/native -I src/loader/.binsec_kernel_loader.objs/byte -I src/loader/.binsec_kernel_loader.objs/native -I src/parser/.binsec_kernel_parser.objs/byte -I src/parser/.binsec_kernel_parser.objs/native -I src/script/.binsec_script.objs/byte -I src/script/.binsec_script.objs/native -I src/script/.binsec_script_ast.objs/byte -I src/script/.binsec_script_ast.objs/native -I src/smtlib/.binsec_smtlib.objs/byte -I src/smtlib/.binsec_smtlib.objs/native -I src/smtlib/bindings/.binsec_smtlib_bindings.objs/byte -I src/smtlib/bindings/.binsec_smtlib_bindings.objs/native -I src/sse/.binsec_sse.objs/byte -I src/sse/.binsec_sse.objs/native -I src/sse/loader/.binsec_sse_loader.objs/byte -I src/sse/loader/.binsec_sse_loader.objs/native -I src/sse/plugin/.binsec_sse_quick_merge.objs/byte -I src/sse/plugin/.binsec_sse_quick_merge.objs/native -I src/symbolic/.binsec_symbolic.objs/byte -I src/symbolic/.binsec_symbolic.objs/native -I src/unix/.binsec_unix.objs/byte -I src/unix/.binsec_unix.objs/native -cmi-file src/cli/command/sse/.binsec_cli_sse.objs/byte/binsec_cli_sse__Screen.cmi -no-alias-deps -open Binsec_cli_sse -o src/cli/command/sse/.binsec_cli_sse.objs/native/binsec_cli_sse__Screen.cmx -c -impl src/cli/command/sse/screen.ml)
# File "src/cli/command/sse/screen.enabled.ml", lines 349-401, characters 8-9:
# Error: Some record fields are undefined: out_width

The issue is that OCaml 5.4.0 added a out_width field to the record type Format.formatter_out_functions
https://github.com/ocaml/ocaml/blob/5.4.0/stdlib/format.mli#L865

@jmid
Copy link
Copy Markdown
Member Author

jmid commented Apr 4, 2026

This is failing only on opam-2.0, so I'll merge

@jmid jmid merged commit 58be498 into ocaml:master Apr 4, 2026
4 of 5 checks passed
@jmid jmid deleted the add-binsec-ocaml-bounds branch April 4, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant