ARM-software/asl-interpreter

Build error Ubuntu Unbound value IdentSet.disjoint

cdietschrun opened this issue · 3 comments

I'm trying to build this repo on Ubuntu and receive this error:

`cd@cd-Virtual-Machine:~/source/asl-interpreter$ make testlexer.native asli pdf doc

Adding Z3 to the dynamic library path would not be necessary if we made

use of the Z3 package conditional on what target we were building

echo Execute the following: export DYLD_LIBRARY_PATH=opam config var z3:lib
Execute the following: export DYLD_LIBRARY_PATH=/home/cd/.opam/default/lib/z3
ocamlbuild -use-ocamlfind -tag thread -tag debug -cflags -safe-string -menhir "menhir --infer --explain" testlexer.native

  • ocamlfind ocamlc -c -safe-string -g -thread -package linenoise -package zarith -package z3 -package pprint -o asl_utils.cmo asl_utils.ml
    File "asl_utils.ml", line 46, characters 4-19:
    Error: Unbound value Bindings.update
    Command exited with code 2.
    Compilation unsuccessful after building 22 targets (21 cached) in 00:00:00.
    Makefile:65: recipe for target 'testlexer.native' failed
    `

any help here would be appreciated.

I realized I was using ocaml 4.05 and upgraded to 4.07 and rebuilt and have a similar fail. I'm using opam 2.04, I really hope I don't actually need to go to 2.05 for this?

cd@cd-Virtual-Machine:~/source/asl-interpreter$ make testlexer.native asli pdf doc
ott -aux_style_rules false -tex_wrap true -quotient_rules false -i asl.ott -o asl_parser.mly -o asl_lexer.mll -o asl_ast.ml -o asl.tex
Ott version 0.30 distribution of Sun 24 Nov 2019 21:57:16 CET
grep -v '^%%' opam config var ott:share/menhir_library_extra.mly >> asl_parser.mly

Adding Z3 to the dynamic library path would not be necessary if we made

use of the Z3 package conditional on what target we were building

echo Execute the following: export DYLD_LIBRARY_PATH=opam config var z3:lib
Execute the following: export DYLD_LIBRARY_PATH=/home/cd/.opam/4.07.0/lib/z3
ocamlbuild -use-ocamlfind -tag thread -tag debug -cflags -safe-string -menhir "menhir --infer --explain" testlexer.native

  • menhir --infer --explain --raw-depend --ocamldep 'ocamlfind ocamldep -modules' asl_parser.mly > asl_parser.mly.depends
    File "asl_parser.mly", line 124, characters 14-18:
    Warning: the token EOL2 is unused.
    File "asl_parser.mly", line 744, characters 0-11:
    Warning: symbol dummy_binop is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 782, characters 0-10:
    Warning: symbol expr_spice is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 152, characters 0-1:
    Warning: symbol l is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 522, characters 0-11:
    Warning: symbol lexpr_spice is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 490, characters 0-14:
    Warning: symbol nonempty_block is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 366, characters 0-8:
    Warning: symbol operator is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 566, characters 0-10:
    Warning: symbol stmt_spice is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 678, characters 0-5:
    Warning: symbol zexpr is unreachable from any of the start symbol(s).
  • menhir --infer --explain --ocamlc 'ocamlfind ocamlc -safe-string -g -thread -package linenoise -package zarith -package z3 -package pprint' --infer asl_parser.mly
    File "asl_parser.mly", line 124, characters 14-18:
    Warning: the token EOL2 is unused.
    File "asl_parser.mly", line 744, characters 0-11:
    Warning: symbol dummy_binop is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 782, characters 0-10:
    Warning: symbol expr_spice is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 152, characters 0-1:
    Warning: symbol l is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 522, characters 0-11:
    Warning: symbol lexpr_spice is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 490, characters 0-14:
    Warning: symbol nonempty_block is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 366, characters 0-8:
    Warning: symbol operator is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 566, characters 0-10:
    Warning: symbol stmt_spice is unreachable from any of the start symbol(s).
    File "asl_parser.mly", line 678, characters 0-5:
    Warning: symbol zexpr is unreachable from any of the start symbol(s).
  • ocamlfind ocamlc -c -safe-string -g -thread -package linenoise -package zarith -package z3 -package pprint -o tcheck.cmo tcheck.ml
    File "tcheck.ml", line 603, characters 12-29:
    Error: Unbound value IdentSet.disjoint
    Command exited with code 2.
    Compilation unsuccessful after building 24 targets (0 cached) in 00:00:00.
    Makefile:65: recipe for target 'testlexer.native' failed
    make: *** [testlexer.native] Error 10

I'm guessing this actually requires 4.08.0 and not 4.07.0

https://caml.inria.fr/pub/docs/manual-ocaml/libref/Set.S.html

shows disjoint is since 4.08.0. will retry tomorrow.

Confirmed that master requires 4.08.0 (as well as some latex packages to make your example make command work nicely). I will send a PR with doc fixes.