From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id q2DIJoKC001482 for ; Tue, 13 Mar 2012 19:19:50 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av8LAHOPX0/RVde0kGdsb2JhbABDgiAEZYIxryQBA4EBCCIBAQEBCQkNBxQEI4IiAg8dARscAgMSEA8CBRYLAgsDAgECARERAQUBLwgBAR6HaASbaIJdCosyTIJxhR8/iHQBBQuBJIkeYoIUggyBFgSVUIVpgT2HHz2EBg X-IronPort-AV: E=Sophos;i="4.73,578,1325458800"; d="scan'208";a="135882386" Received: from mail-ey0-f180.google.com ([209.85.215.180]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 13 Mar 2012 19:19:44 +0100 Received: by eaal12 with SMTP id l12so733361eaa.39 for ; Tue, 13 Mar 2012 11:19:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=6yAd0OnEMrf9IX+qhd8ffyVOm+DakD8qo9KvCjvFlYQ=; b=oCnNE8TAumfrHgxtc2nvz0Dr4Va7XBpE8IM8tZP1Zmb1BnKmqvTVS7eh5kmoAevNDi azNZN88wtP6rKgJRJZZwcnIIInOLugT8ACR1pJryEAGv1LqUUAw6lX0+zKQC2Gkov1n7 5Xq+b4Du3D6HfrLUW3nwLb7/YPDRfRCCs2Ne89Ay5WDW27s1A1q1BMXA1AunRQuxAsLz 2EMwtnNpPVEMXgJnHmHgnSEyXpIgFS4xS3g85XGx8VdFRABLA8PU/CDEKPyyZjKFBVvJ ruAXzvnstPn3VByqXoacjTa5tAsHbm7PD7s75tdilTHgWM4EUidvTCNs58K/TlSHBkPo VpPQ== Received: by 10.213.6.206 with SMTP id a14mr1372616eba.281.1331662784117; Tue, 13 Mar 2012 11:19:44 -0700 (PDT) Received: from [172.27.6.206] ([213.106.240.92]) by mx.google.com with ESMTPS id u9sm4563027eem.11.2012.03.13.11.19.42 (version=SSLv3 cipher=OTHER); Tue, 13 Mar 2012 11:19:43 -0700 (PDT) Message-ID: <4F5F8FBD.5060205@gmail.com> Date: Tue, 13 Mar 2012 18:19:41 +0000 From: =?UTF-8?B?TWF0ZWogS2/FocOtaw==?= <5764c029b688c1c0d24a2e97cd764f@gmail.com> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20120216 Thunderbird/10.0.1 MIME-Version: 1.0 To: caml-list@yquem.inria.fr Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: [Caml-list] a question about "ocamlopt" and "ocamldep" Hi, The "ocamldep" tool generates Makefile dependencies for both situations: - when we use "ocamlc" - as well as when we use "ocamlopt" Dependencies, generated for "*.cmo" files, are corresponding "*.cmi" files. This is not surprising. However, dependencies, generated for "*.cmx" files, are always other "*.cmx" files. This is surprising. Why "*.cmx" files do not depend on "*.cmi" files? I have noticed this in a bigger project but this phenomenon appear to happen for arbitrarily small projects. Consider the following ocamldep-generated couple of rules: src/ml2c/typing/printtyp.cmo: src/ml2c/typing/types.cmi \ src/ml2c/typing/primitive.cmi src/ml2c/typing/predef.cmi \ src/ml2c/typing/path.cmi src/ml2c/typing/outcometree.cmi \ src/ml2c/typing/oprint.cmi src/ml2c/utils/misc.cmi \ src/ml2c/parsing/longident.cmi src/ml2c/typing/ident.cmi \ src/ml2c/typing/env.cmi src/ml2c/typing/ctype.cmi \ src/ml2c/utils/clflags.cmi src/ml2c/typing/btype.cmi \ src/ml2c/parsing/asttypes.cmi src/ml2c/typing/printtyp.cmi src/ml2c/typing/printtyp.cmx: src/ml2c/typing/types.cmx \ src/ml2c/typing/primitive.cmx src/ml2c/typing/predef.cmx \ src/ml2c/typing/path.cmx src/ml2c/typing/outcometree.cmx \ src/ml2c/typing/oprint.cmx src/ml2c/utils/misc.cmx \ src/ml2c/parsing/longident.cmx src/ml2c/typing/ident.cmx \ src/ml2c/typing/env.cmx src/ml2c/typing/ctype.cmx \ src/ml2c/utils/clflags.cmx src/ml2c/typing/btype.cmx \ src/ml2c/parsing/asttypes.cmx src/ml2c/typing/printtyp.cmi The second rule seems to be unnecessarily demanding (unless it makes no sense to compile *.cmi files if we use ocamlopt). It should read: src/ml2c/typing/printtyp.cmx: src/ml2c/typing/types.cmi \ src/ml2c/typing/primitive.cmi src/ml2c/typing/predef.cmi \ src/ml2c/typing/path.cmi src/ml2c/typing/outcometree.cmi \ src/ml2c/typing/oprint.cmi src/ml2c/utils/misc.cmi \ src/ml2c/parsing/longident.cmi src/ml2c/typing/ident.cmi \ src/ml2c/typing/env.cmi src/ml2c/typing/ctype.cmi \ src/ml2c/utils/clflags.cmi src/ml2c/typing/btype.cmi \ src/ml2c/parsing/asttypes.cmi src/ml2c/typing/printtyp.cmi Shouldn't it?