frenetic-lang / frenetic

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

Move to jbuilder-based build #571

Closed smolkaj closed 7 years ago

smolkaj commented 7 years ago

So far so good. Build time is down to 16 seconds from > 2 minutes on my machine.

basus commented 7 years ago

Currently seeing a couple errors on my machines (OS X Yosemite and Arch Linux):

File "lib/jbuild", line 14, characters 0-139:
Warning: File Frenetic_NetKAT_Tokens.ml is both generated by a rule and present in the source tree.
As a result, the rule is currently ignored, however this will become an error in the future.
To keep the current behavior and get rid of this warning, add a field (fallback) to the rule.

and then:


      ocamlc ppx/frenetic_ppx__Ppx_parser.{cmo,cmt} (exit 2)
(cd _build/default && /Users/basus/.opam/4.04.1/bin/ocamlc.opt -w -40 -g -bin-annot -I /Users/basus/.opam/4.04.1/lib/base -I /Users/basus/.opam/4.04.1/lib/base/caml -I /Users/basus/.opam/4.04.1/lib/base/shadow_stdlib -I /Users/basus/.opam/4.04.1/lib/base64 -I /Users/basus/.opam/4.04.1/lib/bin_prot -I /Users/basus/.opam/4.04.1/lib/bin_prot/shape -I /Users/basus/.opam/4.04.1/lib/biniou -I /Users/basus/.opam/4.04.1/lib/bytes -I /Users/basus/.opam/4.04.1/lib/core -I /Users/basus/.opam/4.04.1/lib/core_kernel -I /Users/basus/.opam/4.04.1/lib/core_kernel/base_for_tests -I /Users/basus/.opam/4.04.1/lib/cstruct -I /Users/basus/.opam/4.04.1/lib/easy-format -I /Users/basus/.opam/4.04.1/lib/fieldslib -I /Users/basus/.opam/4.04.1/lib/gen -I /Users/basus/.opam/4.04.1/lib/ipaddr -I /Users/basus/.opam/4.04.1/lib/jane-street-headers -I /Users/basus/.opam/4.04.1/lib/menhirLib -I /Users/basus/.opam/4.04.1/lib/num -I /Users/basus/.opam/4.04.1/lib/ocaml -I /Users/basus/.opam/4.04.1/lib/ocaml-compiler-libs/common -I /Users/basus/.opam/4.04.1/lib/ocaml-compiler-libs/shadow -I /Users/basus/.opam/4.04.1/lib/ocaml-migrate-parsetree -I /Users/basus/.opam/4.04.1/lib/ocaml/compiler-libs -I /Users/basus/.opam/4.04.1/lib/ocaml/threads -I /Users/basus/.opam/4.04.1/lib/ocamlgraph -I /Users/basus/.opam/4.04.1/lib/ocplib-endian -I /Users/basus/.opam/4.04.1/lib/ppx_assert/runtime-lib -I /Users/basus/.opam/4.04.1/lib/ppx_ast -I /Users/basus/.opam/4.04.1/lib/ppx_bench/runtime-lib -I /Users/basus/.opam/4.04.1/lib/ppx_compare/runtime-lib -I /Users/basus/.opam/4.04.1/lib/ppx_core -I /Users/basus/.opam/4.04.1/lib/ppx_deriving -I /Users/basus/.opam/4.04.1/lib/ppx_driver -I /Users/basus/.opam/4.04.1/lib/ppx_driver/print_diff -I /Users/basus/.opam/4.04.1/lib/ppx_expect/collector -I /Users/basus/.opam/4.04.1/lib/ppx_expect/common -I /Users/basus/.opam/4.04.1/lib/ppx_expect/config -I /Users/basus/.opam/4.04.1/lib/ppx_hash/runtime-lib -I /Users/basus/.opam/4.04.1/lib/ppx_inline_test/config -I /Users/basus/.opam/4.04.1/lib/ppx_inline_test/runtime-lib -I /Users/basus/.opam/4.04.1/lib/ppx_optcomp -I /Users/basus/.opam/4.04.1/lib/ppx_tools_versioned -I /Users/basus/.opam/4.04.1/lib/ppx_traverse_builtins -I /Users/basus/.opam/4.04.1/lib/result -I /Users/basus/.opam/4.04.1/lib/sedlex -I /Users/basus/.opam/4.04.1/lib/sexplib -I /Users/basus/.opam/4.04.1/lib/sexplib/0 -I /Users/basus/.opam/4.04.1/lib/sexplib/unix -I /Users/basus/.opam/4.04.1/lib/spawn -I /Users/basus/.opam/4.04.1/lib/stdio -I /Users/basus/.opam/4.04.1/lib/tcpip -I /Users/basus/.opam/4.04.1/lib/tcpip/unix -I /Users/basus/.opam/4.04.1/lib/typerep -I /Users/basus/.opam/4.04.1/lib/variantslib -I /Users/basus/.opam/4.04.1/lib/yojson -I lib -no-alias-deps -I ppx -open Frenetic_ppx -o ppx/frenetic_ppx__Ppx_parser.cmo -c -impl ppx/Ppx_parser.pp.ml)
File "ppx/Ppx_parser.mly", line 267, characters 123-148:
Error: This expression has type Ast_405.Parsetree.expression
       but an expression was expected of type Parsetree.expression
smolkaj commented 7 years ago

@basus: The first error is because you have an old file lying around (simply delete Frenetic_NetKAT_Tokens.ml, it is not checked in). The second error is because you are using OCaml 4.04.x, whereas I am using OCaml 4.05.0. However, we want the ppx extension to work across various ocaml versions, so this is a bug. Let me see if I can fix it.

smolkaj commented 7 years ago

@jnfoster @basus: If there are no complaints, I'm gonna go ahead and merge this in. Travis builds it successfully with OCaml 4.04.2 and 4.05.0. Current caveats:

jnfoster commented 7 years ago

Sounds great. I'm excited for this!!

-N

On Mon, Sep 18, 2017 at 9:03 PM, Steffen Smolka notifications@github.com wrote:

@jnfoster https://github.com/jnfoster @basus https://github.com/basus: If there are no complaints, I'm gonna go ahead and merge this in. Travis builds it successfully with OCaml 4.04.2 and 4.05.0. Current caveats:

  • the tests are not being built and run (but this has indeed been the case for a while)
  • the docs are not automatically pushed to http://frenetic-lang.github. io/frenetic/ by travis -> I will fix that

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/frenetic-lang/frenetic/pull/571#issuecomment-330397782, or mute the thread https://github.com/notifications/unsubscribe-auth/ABwi0jpTa3kU5bycPSlgWTfvEynytPIzks5sjxLegaJpZM4PbGvs .