frenetic-lang / frenetic

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

Rename the Frenetic Async subpackage to prevent naming conflicts #564

Closed basus closed 7 years ago

basus commented 7 years ago

I've been porting Merlin to use Jane Street's jbuilder build system, which is optimized for building OCaml systems. It's much faster than the current oasis-based setup:

jbuilder build  14.86s user 5.72s system 222% cpu 9.252 total
make  29.50s user 5.82s system 95% cpu 36.927 total

jbuilder skips ocamlfind and calls ocamlopt directly. Unfortunately, building against Frenetic is problematic because the async sub-package that Frenetic exports conflicts with other packages named 'async' (in particular, the generated async.cmx files conflict during the ocamlopt invocation). This change renames the async library in the _oasis file to frenetic_async, causing a frenetic_async.cmx file to be generated instead, which avoids the conflict.

Everything else seems to be the same, in particular, you can install refer to async sub package as frenetic.async in ocamlfind and related tools.

smolkaj commented 7 years ago

Busy with POPL until Saturday. Happy to look at it afterwards. Remind me next week in case I forget

basus commented 7 years ago

Will do. No rush. Good luck.

basus commented 7 years ago

Looks like the Travis checks are failing because we need to run an oasis setup command first (possibly to regenerate the setup.data file). Anyone know how to force an oasis setup run, short of mucking with the .travis.yml file?

basus commented 7 years ago

Ready to roll. Someone check and merge please?