Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pp(...) tag used for *.cmx but ignored for *.cmo #5095

Closed
vicuna opened this Issue Jul 8, 2010 · 1 comment

Comments

Projects
None yet
1 participant
@vicuna
Copy link
Collaborator

vicuna commented Jul 8, 2010

Original bug ID: 5095
Reporter: gsutre
Assigned to: @xclerc
Status: closed (set by @xavierleroy on 2012-03-24T14:01:43Z)
Resolution: fixed
Priority: normal
Severity: minor
Version: 3.12.0+beta1 or 3.12.0+rc1
Fixed in version: 3.12.1+dev
Category: -for ocamlbuild use https://github.com/ocaml/ocamlbuild/issues
Monitored by: @ygrek

Bug description

Consider the following example:

$ cat _tags
<.cmo>: pp(foo)
<
.cmx>: pp(foo)
$ ocamlbuild -classic-display A.cmo A.cmx
/usr/pkg/bin/ocamldep.opt -modules A.ml > A.ml.depends
/usr/pkg/bin/ocamlc.opt -c -o A.cmo A.ml
/usr/pkg/bin/ocamlopt.opt -c -pp foo -o A.cmx A.ml

Here, the pp(foo) tag is ignored for the *.cmo declaration, but it is
used for the *.cmx declaration. Is this behavior intended? The code
says (ocaml_specific.ml):

pflag ["ocaml"; "compile"] "pp"
(fun param -> S [A "-pp"; A param]);

So I wonder why pp(foo) only applies to *.cmx.

Additional information

This bug report is extracted from the following message that I sent to the
caml mailing list:

http://caml.inria.fr/pub/ml-archives/caml-list/2010/06/f1c5394a6d6f0c4b50dc1fd176cac09d.en.html

@vicuna

This comment has been minimized.

Copy link
Collaborator Author

vicuna commented Nov 25, 2010

Comment author: @xclerc

You were right, the parametrized flag was defined for any compiler.
However, in "ocaml_compiler.ml", the "byte_compile_ocaml_implem"
was only looking for tags attached to the source file, and not for
tags attached to the object file to be produced (while its native
equivalent was correctly looking for the union of tag sets).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.