Hey, Ok, now the next step would be the following. Carefully check that all > modules, that you're using in libraries are included in `Modules` or > `InternalModules`. It is the case > that sometimes when you forgot to include a module, oasis (actually > `ocamlbuild`), may produce a strange, and on a first glance, irrelevant > error message. > I checked and sadly the modules I'm trying to access are all in `Modules`. Perhaps interestingly, it can still clearly detect statically if the function exists or not because if I try to use a function that doesn't exist it instead gives me this error (which is what I would normally expect): File "ppx/skins.ml", line 39, characters 8-37: Error: Unbound value Forest_parser_helper.bad_func Command exited with code 2. > If it doesn't help then the `_build/_log` file might help us to debug the > issue. > Attached tarball. Too big to send via list otherwise. Thanks so much for helping with this again. I'm at a total loss. On Thu, Oct 27, 2016 at 10:59 AM, Jonathan DiLorenzo < > dilorenzo@cs.cornell.edu> wrote: > >> Hey Ivan, >> >> Thanks for your response. >> >> The first one is that you didn't run `oasis setup` after you made the >>> changes, so I would suggest cleaning current state >>> and starting from scratch. (I usually just do `git clean -idx` just to >>> be sure that I got rid of any generated files, like setup.data, et alas, >>> but be careful, >>> don't delete something that you need). >>> >> >> I tried cleaning up all the generated files. Same error unfortunately >> >> >>> Another idea is that you're using oasis 0.4.7 with ocaml-4.03.0+flambda, >>> they are currently incompatible, and can produce weird bugs. If that so, >>> then consider switching >>> either a compiler or oasis to different versions. >>> >> >> I am using oasis 0.4.7 and ocaml-4.03.0, but I don't appear to be using >> flambda. I tried passing in -config and it said that flambda was false at >> least, but I admit, I'm not especially familiar with it, so if there's some >> other way I should be checking for this please let me know. Hopefully, >> they're compatible sans flambda? >> >> >> On Thu, Oct 27, 2016 at 1:01 AM, Jonathan DiLorenzo < >>> dilorenzo@cs.cornell.edu> wrote: >>> >>>> Hey all, >>>> >>>> I'm trying to build my system using Oasis and OCamlbuild. I have 3 >>>> different libraries and for some reason I seem to only be able to refer >>>> from one to the other in seemingly random files. For example, I want my >>>> 'ppx' library to be able to use functions from my 'parser' library. One >>>> file (ppx_forest.ml) can use functions from it, while another in the >>>> same library (skins.ml) cannot, giving me this error: >>>> >>>> File "_none_", line 1: >>>> Error: No implementations provided for the following modules: >>>> Forest_parser_helper referenced from ppx/ppx.cmxa(Skins) >>>> Command exited with code 2. >>>> >>>> They can all refer to types I've defined therein though. >>>> >>>> I'm not fantastic at Oasis so maybe I'm just missing something basic? >>>> Any ideas? Any more information I can gather to give more context otherwise? >>>> >>>> Thanks in advance, >>>> Jonathan >>>> >>>> Excerpt of my Oasis file that may possibly be relevant: >>>> >>>> Library forest >>>> Path: lib >>>> BuildTools: ocamlbuild >>>> BuildDepends: pads, str, re, re.glob, core, threads, ppx_let >>>> CompiledObject: best >>>> Modules: Forest, PadsInterface >>>> >>>> Library parser >>>> Path: parsing >>>> BuildTools: ocamlbuild, menhir, ocamllex >>>> Findlibparent: forest >>>> Findlibname: parser >>>> BuildDepends: forest, ppx_deriving.show, compiler-libs.common >>>> CompiledObject: best >>>> Modules: Forest_parser_helper >>>> InternalModules: Forest_lexer, Forest_parser, Forest_types >>>> >>>> Library ppx >>>> Path: ppx >>>> BuildTools: ocamlbuild >>>> Findlibparent: forest >>>> Findlibname: ppx >>>> BuildDepends: re, re.str, forest.parser, forest, ppx_tools.metaquot >>>> CompiledObject: best >>>> Modules: Ppx_forest >>>> InternalModules: Ppx_forest_lib, Utility, Skins >>>> XMETAEnable: true >>>> XMETARequires: str re core threads ppx_tools.metaquot >>>> XMETAExtraLines: ppx = "ppx_forest" >>>> >>>> Executable ppx_forest >>>> Path: ppx >>>> MainIs: ppx_forest.ml >>>> BuildDepends: forest, forest.parser, forest.ppx, pads.ppx, >>>> ppx_tools.metaquot >>>> CompiledObject: best >>>> >>>> >>> >> >