Open dbuenzli opened 7 years ago
Thanks for raising these issues. I'd like to fix them, before the release if possible. #534 addresses the odig
/ocamldoc
errors, which leaves two remaining issues.
First, the missing cmi
files, e.g.
odig: [WARNING] ctypes: /Users/dbuenzli/.opam/4.03.0/lib/ctypes/cstubs.cmi: no cmi found for Ctypes_ptr (287c9636cfa3a3f4131e054e4278d672)
These cmi
files are deliberately not included, as the modules involved are not intended to be part of the public interface. The types in these modules are used internally in various ctypes
modules, but should not be used by ctypes
users. Is there a way of communicating that fact to odig
?
Second, the installation, i.e.
Also installing the opam file in ctypes:lib and the README.md and CHANGES.md in ctypes:doc would be nice.
At the moment installation is performed by a call to ocamlfind install
. Would installing the extra files in doc
require changing the installation approach altogether (e.g. to using a .install
file)? A patch would certainly be welcome, if you feel inclined to dig around in the Makefile
.
The types in these modules are used internally in various ctypes modules, but should not be used by ctypes users. Is there a way of communicating that fact to odig?
I didn't look into this into details, but I suspect identifiers from these module do end up in the final interfaces and are accessible to the programmer (and hence not truly internal to the library) this is why they are needed. You should properly hide them at the API level via the module system if you don't want these to be requested; if you can't then maybe you could add the cmis
and have stop comments for the interface. Currently odig
follows @lpw25 (he'll correct me if I'm misquoting him) that whatever is formally accessible to the programmer should also appear in the doc (in the future odig
may offer the ability to refine that via an opamv2
x-field present in the opam
file you install in the lib
directory, or not).
At the moment installation is performed by a call to ocamlfind install.
AFAIK adding the opam
file to that invocation would work. But you need to rename it so something like this would do
cp ctypes.opam opam
ocamlfind install opam
Would installing the extra files in doc require changing the installation approach altogether (e.g. to using a .install file)?
Not necessarily your install: field could be changed to:
install: [
[make "install" "XEN=%{mirage-xen:enable}%" "DOCDIR=%{ctypes:doc}%]
]
and to a:
cp CHANGES.md LICENSE.md README.md $(DOCDIR)/
somewhere (don't bother about uninstall)..
(depending on your time frame I may have a closer look in the following days)
I'm going to release 0.12.1 shortly without the remaining changes here (cmi
s, documentation). I'll make a new release with those changes here as soon as they're ready.
Since I have been hearing rumors of an upcoming release... would it be possible to make sure
ctypes
works correctly withodig odoc
? I'm willing to give a hand if needed, just ask.Also installing the
opam
file inctypes:lib
and theREADME.md
andCHANGES.md
inctypes:doc
would be nice.So currently an
odig odoc
yields the following errors (these are ocamldoc language errors) and warnings (these are missing cmi files, I assume you are not using-pack
if you are the problem may be on my side, here are the rules or invokeodig help packaging
):