frenetic-lang / frenetic

The Frenetic Programming Language and Runtime System
http://www.frenetic-lang.org/
Other
223 stars 51 forks source link

Error at compiling : Ocamlbuild knows of no rules that apply to a target named async/frenetic_async.mly #569

Closed JohanPy closed 7 years ago

JohanPy commented 7 years ago

Hello,

I need to use NetKAT in a docker for testing purpose. I follow those instructions https://github.com/frenetic-lang/frenetic/wiki/Source-Build on a Ubuntu 14.04 image. The 2 scripts, root-bootstrap.sh & user-bootstrap.sh, run well. I modified the Ocaml version installed by the script to get the 4.04.2. But the 'make' command return an error :

File "lib/Frenetic_OpenFlow0x04.ml", line 780, characters 7-14: Error: Attribute `uint8_t' was not used Command exited with code 2. Compilation unsuccessful after building 28 targets (0 cached) in 00:00:03. E: Failure("Command ''/home/frenetic/.opam/4.04.1/bin/ocamlbuild' lib/frenetic.cma lib/frenetic.cmxa lib/frenetic.a lib/frenetic.cmxs ppx/ppx.cma ppx/ppx.cmxa ppx/ppx.a ppx/ppx.cmxs ppx/ppx.native async/frenetic_async.cma async/frenetic_async.cmxa async/frenetic_async.a async/frenetic_async.cmxs frenetic/frenetic.native frenetic/openflow.native bench/src/Main.native -use-ocamlfind -use-menhir -cflags -w,@5+8@11@12-40,-short-paths -tag debug -j 4' terminated with error code 10")

Did I miss something ?

smolkaj commented 7 years ago

Commit https://github.com/frenetic-lang/frenetic/commit/a4eaf858d50cb07e445b7665481f9987c0d899e3 (the latest on master) should have fixed this problem. Can you double check that your master branch is up to date?

JohanPy commented 7 years ago

Oh sorry, I was sure to be up-to-date but I was still in 72d3ffe.

I got a new error now : Solver failed: Ocamlbuild knows of no rules that apply to a target named async/frenetic_async.mly. This can happen if you ask Ocamlbuild to build a target with the wrong extension (e.g. .opt instead of .native) or if the source files live in directories that have not been specified as include directories. Compilation unsuccessful after building 155 targets (0 cached) in 00:00:37. E: Failure("Command ''/home/frenetic/.opam/4.04.2/bin/ocamlbuild' lib/frenetic.cma lib/frenetic.cmxa lib/frenetic.a lib/frenetic.cmxs ppx/ppx.cma ppx/ppx.cmxa ppx/ppx.a ppx/ppx.cmxs ppx/ppx.native async/frenetic_async.cma async/frenetic_async.cmxa async/frenetic_async.a async/frenetic_async.cmxs frenetic/frenetic.native frenetic/openflow.native bench/src/Main.native -use-ocamlfind -use-menhir -cflags -w,@5+8@11@12-40,-short-paths -package ppx_deriving,ppx_deriving.std,ppx_sexp_conv,ppx_fields_conv,ppx_type_conv,ppx_enumerate,ppx_compare -tag debug -j 4' terminated with error code 6") I just use 'make distclean' and 'make', do I need to restart from scratch ?

Thank you for your help.

smolkaj commented 7 years ago

I have seen that error a couple of times and don't really know what causes it. Trymake distclean && oasis setup-clean and then make again, hopefully that fixed it.

eichholz commented 7 years ago

Hi,

I'm also stuck with the Ocamlbuild knows of no rules that apply to a target named async/frenetic_async.mly error and running make distclean && oasis setup-clean doesn't help to resolve the error.

JohanPy commented 7 years ago

That doesn't fixe it for me too. But Frenetic compiles after a rebuild from scratch (this time I use opam switch to install the 4.04.2 version and I made all the install in root)

Thank for your help and your work on frenetic.

smolkaj commented 7 years ago

This is really annoying. Should anyone find ou the root of this problem, please do share.

Travisivart commented 7 years ago

I am also experiencing the same issue. I have tried multiple times and get the same result. For example, I created a slice on the Cornell Geni rack using Ubuntu 14.04. Here are the steps I follow until I get the error:

image

sudo adduser frenetic sudo usermod -aG sudo frenetic sudo -i -u frenetic git clone http://github.com/frenetic-lang/frenetic-vm cd frenetic-vm chmod a+x *.sh sudo ./root-bootstrap.sh

Then I edited the user-bootstrap.sh to use opam switch 4.04.2

Then I ran ./user-bootstrap.sh -y

Eventually, while it is compiling frenetic, it crashes with this error, the same error as above.

image

Oddly enough, when I installed Ubuntu 14.04.5 on my own vm at home using virsh and kvm, I am able to follow the above steps and it installs correctly.

I'll also grab other error or log files and attach them later today.

smolkaj commented 7 years ago

I'm working on porting frenetic to a new build system that seems to be more robust (and also much faster), see https://github.com/frenetic-lang/frenetic/tree/jbuilder. This should fix this problem, but it may take a while.

smolkaj commented 7 years ago

571 solve this issue by replacing the ocamlbuild-based build process with one based on jbuilder.

Travisivart commented 7 years ago

Thanks! This update worked perfectly. I was able to successfully compile on several of my test controllers.

smolkaj commented 7 years ago

Glad to hear it! Thanks for the feedback.