Skip to content

Time for a new release? owi.0.2 is not installable #550

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

Open
edwintorok opened this issue Mar 15, 2025 · 1 comment
Open

Time for a new release? owi.0.2 is not installable #550

edwintorok opened this issue Mar 15, 2025 · 1 comment

Comments

@edwintorok
Copy link

edwintorok commented Mar 15, 2025

Installing owi.0.2 is quite difficult (the current package on opam has unsolvable dependencies). I think it'd be useful to make another release from owi master (but not latest master, since that doesn't work either), see below for all the issues I ran into as I tried to get a working owi c.

owi.0.2 is not installable due to a conflict on pyml.

On 5.3.0 I get:

No agreement on the version of ocaml-variants:
    - (invariant) → ocaml-variants = 5.3.0+options
    - owi >= 0.2 → pyml → ocaml < 5.0 → ocaml-variants < 4.14.4~

OK, so pyml doesn't work with OCaml 5.x yet, lets try 4.14.2:

No agreement on the version of ocaml:
    - (invariant) → ocaml-variants = 4.14.2+options → ocaml = 4.14.2
    - owi >= 0.2 → ocaml >= 5.1

That doesn'twork because owi.0.2 requires OCaml 5.1+.
Looks like there is no version of OCaml that supports both owi.0.2 and pyml.

(owi 0.1 can be installed on 5.3 though).

Lets try pinning to dev branch:

opam pin --dev owi

This hangs at:

Processing: [owi.0.2: git]

It hangs at checking out a submodule:

/usr/libexec/git-core/git clone --no-checkout --depth=1 --separate-git-dir /var/home/edwin/.opam/4.14.2+rfp/.opam-switch/sources/owi/.git/modules/bench/testcomp/sv-benchmarks -- https://gitlab.com/sosy-lab/benchmarking/sv-benchmarks.git /var/home/edwin/.opam/4.14.2+rfp/.opam-switch/sources/owi/bench/testcomp/sv-benchmarks

I can work this around:

git clone https://github.com/OCamlPro/owi.git
cd owi
opam pin add -k path owi.0.2 .

This fails because I didn't have zig and the right version of rust installed.
Tried again after installing zig and rust-std-static-wasm32-unknown-unknown.noarch.
It'd be nice if zig and rust were optional dependencies.

Zig then failed with:

# (cd _build/default/src/lang_zig && /usr/bin/zig build-obj -target wasm32-freestanding owi.zig)
# error: unable to create compilation: ReadOnlyFileSystem

Tried again:

# (cd _build/default/src/lang_zig && /usr/bin/zig build-obj -target wasm32-freestanding owi.zig)
# /usr/lib/zig/std/std.zig:1:1: error: unable to load '/usr/lib/zig/std/std.zig': Unexpected

Is this because of the opam sandbox? Happens on Fedora 41 with Zig 0.13.0. Probably doesn't show up in the CI, because usually the opam sandbox is disabled there because it runs in a container.

Lets try again an older commit that didn't have Zig yet.

git checkout b9342e55f0a0e86eac73155ea9260c5299a0da23
opam install owi

This worked.

Might be useful to make a new opam release from that commit.

@zapashcanon
Copy link
Member

zapashcanon commented Mar 17, 2025

Hi @edwintorok,

Thanks for the detailed report. We've been doing some work recently to be able to publish a new release. For instance, adding some missing packages to opam-repository, see ocaml/opam-repository#27381 ; I'd like to get 0.3 out in a couple of weeks, I'll let you know once this is done.

If you want to try Owi, the easiest way for now would be to follow: https://github.com/OCamlPro/owi?tab=readme-ov-file#development-version (and then install a solver if you plan to perform symbolic execution, for instance with opam install z3) ; pyml is no more a dependency and the submodules should not be checked out, they are only useful for tests and benchmarks.

As for making zig and rustc optional dependencies, it is probably something we can do. It is not completely easy because we need them at build time and not at runtime (to build our bindings). I'll try to make this part of 0.3.

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

No branches or pull requests

2 participants