Hi Kenneth, please see my comment here: https://github.com/alavrik/piqi-ocaml/issues/7 I've added a small change that should help. Anton On Tue, Jun 9, 2015 at 3:48 PM, Kenneth Adam Miller < kennethadammiller@gmail.com> wrote: > To be more clear, after I thought about it a bit more, I think what I need > is definitely one of two things, either: > > 1) to edit is the include path, either for ocamlbuild or oasis. The > problem is, the implementation for a module is already in the library > path... In this way, it will know where to find the appropriate ml, or cmi, > cmo/x > 2) tell piqi how to fully qualify the module into the other library. > -> http://piqi.org/doc/ocaml/#piqitoocamlmapping > Speak of the devil, I think that might be it! > > *edit* > OK, so I think I got it down... now it's just a piqi usage issue.I can > edit the library interface that I'm using to expose that functionality. Now > I need to know: > > .import [ module stmt .name XYZ ] > > once I expose the module name, and I should be able to force it to be > fully qualified with the above. Problem is, I need to have the module name > be Bap.Std.Bap_types.Bil_types.Bil_piqi; the periods are required. Problem: > I can't put periods or '/' in the name of the module in order to get it to > work. Variations on quotes didn't seem to make a difference either... > > How to get piqi to accept a fully qualified name? > > On Tue, Jun 9, 2015 at 4:34 PM, Kenneth Adam Miller < > kennethadammiller@gmail.com> wrote: > >> I've been using piqi for quite a while and it's done wonders for me. >> >> Lately though, I've had some issues with transforming some types provided >> by another library into a piqi representation. >> >> Essentially, I'm at a crossroads where I'm running into a compile error, >> and I'm not sure how to fix it. Here's the root of my problem: >> >> Error: This expression has type Stmt_piqi.stmt list list >> but an expression was expected of type >> Bapservice_piqi.Bapservice_piqi.lifted_region = >> Bapservice_piqi.Bapservice_piqi.stmt_list list >> Type Stmt_piqi.stmt list is not compatible with type >> Bapservice_piqi.Bapservice_piqi.stmt_list = >> Bapservice_piqi.Bapservice_piqi.stmt list >> Type Stmt_piqi.stmt is not compatible with type >> Bapservice_piqi.Bapservice_piqi.stmt = >> [ `cpuexn of Bapservice_piqi.Bapservice_piqi.cpuexn >> | `if_stmt of Bapservice_piqi.Bapservice_piqi.if_stmt >> | `jmp of Bapservice_piqi.Bapservice_piqi.jmp >> | `move of Bapservice_piqi.Bapservice_piqi.move >> | `special of Bapservice_piqi.Bapservice_piqi.special >> | `while_stmt of Bapservice_piqi.Bapservice_piqi.while_stmt ] >> >> >> >> lifted_region is defined in my piqi file as a stmt list list (a list of >> instructions). Here's the part that I don't know: in piqi do I import the >> module instead of including it in order to get the compiler to see that the >> types are equivalent? >> >> (because they are, this is very much like debugging a phantom type error. >> Stmt_piqi.stmt is the same as Bapservice_piqi.stmt). >> >> My thinking with the above question is that if I import the module in >> piqi, then the piqi command will *not* generate a whole new ml, different >> entirely to the ml that was compiled and included in the library that I'm >> using, bap (it currently *is*). In that case, the types will be equivalent >> and everything will compile nicely. >> >> But I attempted to import the module in my piqi file, and that results in >> some compile error that I don't know how to solve: >> >> Unbound module Stmt_piqi. >> >> Naturally, in my makefile for generating ml of piqi encoder/decoder ocaml >> modules, I have an include that points to the folder that contains the bap >> stmt.piqi file. So the piqi ocaml command succeeds, but now I need to tell >> ocaml how to resolve the stmt_piqi module (compiled away in >> bap.serialization). I'm using oasis, and I already have bap.serialization >> in my depends, and the generated piqi ml file is auto detected and the >> correct bap.serialization is propagated through as a specified package on >> the command line. >> >> How do I get the compiler to either see type equivalence of the >> Bapservice_piqi.stmt type or to know where to get the Stmt_piqi module? >> > > -- > You received this message because you are subscribed to the Google Groups > "piqi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to piqi+unsubscribe@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. >