[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#441921: Please install native code files



Stefano Zacchiroli wrote:
Hi Mike,
can you please tell me which .cmx* files you're missing.
Sure.

[...]
Moreover, also checking which *.cmx* files have been built by
the world.opt target of camlp5 at the end of the build process I see:

[...]
  ./odyl/odyl.cmxa
  ./odyl/odyl.cmx
  ./compile/pa_o_fast.cmx

These three are used by otags, as well as the following which were not in either of your lists (although the corresponding .cmo's are installed by camlp5, so perhaps these are aren't built by world.opt).

  pa_o.cmx
  pa_op.cmx

Can you please tell me which extra .cmx* files you need and why so?

The above 5 files are used by otags. I imagine that if you decide to include them, it would probably make sense to ship the native versions of other files, such as the rest of the pa_* parsers.

As to why they are needed: otags uses camlp5 to parse OCaml files in order to extract identifiers for TAGS files. Because it's a stand alone application (i.e., it doesn't have to be dynamically loaded by the ocaml compiler), it can use the native code versions of the camlp5 parsers and achieve the expected speedup of native code over byte code.

However, it also has to be able to load user specified camlp5 modules (in order to properly parse the source files). Therefore, it reuses several of the files used to build the camlp5o binary (like odyl.cmx), so that it can be a drop in replacement for it.

Adding the native files doesn't seem to add a lot of space. On my amd64 etch box, a "du -hsc *.cmx*" in the ocaml/3.09.2/camlp4/ dir is only 178k, so, I would guess the corresponding camlp5 versions would be similar.

-mike




Reply to: