Warning: the code isn't very good, but I'm posting since you asked for it: https://gist.github.com/agarwal/c75e56b200050343fdbb On Tue, Aug 4, 2015 at 4:39 PM, Jordan W wrote: > Please do share, if you don't mind (a github gist would be nice so others > can see it). > > On Mon, Aug 3, 2015 at 5:57 AM, Ashish Agarwal > wrote: > >> I don't use ocamlbuild, but I've recently been writing an OMake function >> to support packs. I can send it to you if you're interested. (AFAICT, the >> OCamlPackage function distributed with OMake is broken.) >> >> And FYI, probably the reason for problems only with native packs, is that >> -for-pack is a noop for bytecode packs. >> >> >> On Mon, Aug 3, 2015 at 1:38 AM, Jordan W wrote: >> >>> It is well known that there are unresolved issues with native >>> compilation of mlpacks. >>> >>> Consider an mlpack that successfully byte code compiles: >>> >>> path/to/depOne.mlpack consisting of: >>> >>> depOne/A >>> depOne/B >>> >>> Where depOne/a.ml contains >>> let foo = "hi" >>> Where depOne/b.ml contains >>> let foo = A.foo >>> >>> While this byte code compiles without issue, modules inside of mlpacks >>> will not be *native* compiled with their respective -for-pack X. To correct >>> this, it has been suggested that a _tags file be created with the following: >>> >>> : for-pack(DepOne) >>> >>> >>> With this, both native and byte compilation succeed for the previous >>> example. >>> However, *because* B references A, then if B is located in another >>> directory within the depOne root, native compilation will once again fail, >>> even though byte compilation succeeds - even with all of the special hacks >>> that have been suggested (_tags etc). >>> >>> For example: >>> Consider if path/to/depOne.mlpack consisted of the following items, >>> pointing to the new respective locations of A, B where B still refers to A >>> as it did before. >>> >>> depOne/A >>> depOne/deeper/B >>> >>> In this case, native compilation fails, and byte compilation succeeds. >>> >>> The errors that I see are: >>> >>> File "path/to/depOne.cmx", line 1: >>> Error: Files path/to/depOne/deeperDir/b.cmx >>> and path/to/depOne/a.cmx >>> make inconsistent assumptions over implementation A >>> Command exited with code 1. >>> >>> >>> Can anyone suggest a fix for this? >>> >>> Thank you, >>> Jordan >>> >> >> >