From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p88FuSWW007808 for ; Thu, 8 Sep 2011 17:56:28 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlYCADHlaE6BryEplGdsb2JhbABDhFWiKIEFFAEBAQEJCwkJFAQigUYBAQQBI1YFCwsYHA4CAgIdHhoGE4d1pgyRdYVcgREEi3WYVg X-IronPort-AV: E=Sophos;i="4.68,351,1312149600"; d="tgz'50?ml'50?mli'50?scan'50,208,49,50";a="118869567" Received: from smtp1.u-psud.fr ([129.175.33.41]) by mail1-smtp-roc.national.inria.fr with ESMTP; 08 Sep 2011 17:56:00 +0200 Received: from smtp1.u-psud.fr (localhost [127.0.0.1]) by localhost (MTA) with SMTP id 9342125619A; Thu, 8 Sep 2011 17:56:00 +0200 (CEST) Received: from ext.lri.fr (ext.lri.fr [129.175.15.4]) by smtp1.u-psud.fr (MTA) with ESMTP id 6CDD62561D7; Thu, 8 Sep 2011 17:56:00 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by ext.lri.fr (Postfix) with ESMTP id 6F44F40735; Thu, 8 Sep 2011 17:56:00 +0200 (CEST) X-Amavis-Hold: Exceeded storage quota 2786500 bytes by do_pax_cpio/pre; last chunk 30064775082 bytes X-Virus-Scanned: Debian amavisd-new at lri.fr Received: from ext.lri.fr ([127.0.0.1]) by localhost (ext.lri.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nlpW4M0HWoB0; Thu, 8 Sep 2011 17:56:00 +0200 (CEST) Received: from lri.fr (lri30-192 [129.175.30.192]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ext.lri.fr (Postfix) with ESMTPSA id 26BF24070F; Thu, 8 Sep 2011 17:56:00 +0200 (CEST) Date: Thu, 8 Sep 2011 17:55:32 +0200 From: AUGER Cedric To: Walter Cazzola Cc: Esther Baruk , caml-list@inria.fr Message-ID: <20110908175532.01f28fc2@lri.fr> In-Reply-To: References: X-Mailer: Claws Mail 3.7.9 (GTK+ 2.24.5; i386-portbld-freebsd8.1) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/7BlRj6G0pC7HM_kuN6NObsD" X-Validation-by: cedric.auger@lri.fr Subject: Re: [Caml-list] separate compilation --MP_/7BlRj6G0pC7HM_kuN6NObsD Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Le Thu, 8 Sep 2011 16:42:39 +0200 (CEST), Walter Cazzola a =C3=A9crit : > On Thu, 8 Sep 2011, Esther Baruk wrote: >=20 > > You must also put the signature of the module type CharPQueueAbs in > > the implementation (A.ml). >=20 > this means that can't I separate signature from the implementation? > That is do I have to keep both struct and sig in the same file? or do > you mean something different. >=20 > Thanks for the hints >=20 > Walter You seem to have misunderstood the system of modules, I send you your files with variants which are compilable. Never forgot that any object declared in an interface must be implemented (it wasn't the case in your files, since CharPQueueAbst was declared in the mli file, but not implemented in your ml file; note also the difference between "implemented" and "instanciated"). =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D Implementation Interface =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D module type X =3D module type X =3D sig sig type t type t val habitant : t val habitant : t end end module Habited =3D module Habited : X struct type t =3D bool let habitant =3D true let some_other =3D false end module Habited2 =3D module Habited2 : struct sig type t =3D bool type t let habitant =3D true val habitant : t let some_other =3D false val some_other : t end end module Habited3 =3D module Habited3 : struct sig type t =3D bool type t =3D bool let habitant =3D true val habitant : bool let some_other =3D false val some_other : t end end =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D You can generate an interface with the "-i" option. Note that interface of 'X' is itself; and the same module may have many possible interfaces --MP_/7BlRj6G0pC7HM_kuN6NObsD Content-Type: application/x-compressed-tar Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=archive.tgz H4sIAIfhaE4AA+1ZS2/jNhDes3/FID0oNlxD8hOImwJOsEBzaLFFW6C3gpHo mKgkaikqiYv98Z2hHpadOOlma6fpzneIZHJmOKRmviGZxSCJ1bvDwvf96XgM +Axmk6D9LDGdTSEIpqNhMJnMfB/8YDgO/HfgH9gvhyK3wqAroYyMCp+SkyZ/ wk45FWiebwSJjopYgl1nEi5Xwnz4uZCFXFzncN4BgFzd0ANKgcwobZRdwzmo 1EKN0x7kVsUxhDoNjbQSet2WVohm//hIZqEFVEr1HYjr3BoR2kblVsQgkwwH OWtpbvpUih/CbnXCt987f/BBjfWzrSnvQ5lZpVNw87vK39MQ1CfTqOPcWWpz oy06pAsLdiXhZD4/mYOyoHJIhErjNWAQRGA1WGkSlQqcqUhx6KywbpgevjtV HYokRsEslrcydkYiLfPUs7Aq0Hs0gaawuV/pXeOY5Ugp+hDqJEFXUSqr2lPI dWFCXEwdSViqWOa0Yl/+/S8w/7/cytN4Jv+HwajJf2x3+T8cDTn/jwFMw6sl rHWBya1vFQaXvdNVgP2OsYEBHrkX1afITst3+PG3X36Fi/cu2DH1pFkKDE69 7GAsk8ScXnINagme0/AgkmEsDJoV4LVYx6vsOjGP1BL8JCi9VKl8KEuJUloS lM65888Jq/K3XtYqZMtpUVqRo7lIHDV1cNJGJvpWumbvG8rFkwW5eeKByFFQ RXUqG5nFCr2mJTIylOpWRgMyTVNbDMJEOfsiNlJE61orUihrtVn3nWKkKfWN /FhgO+a1c00iY5IsZnuG620o0Vc4ekMOztdq+h+Qeh11VbxsTRHavdT8OPue g2M9+AQ/EYvgSjVavZI5e23x3mewKED5N5a2Yu9qsE0zLkhN3qV9GhxkbMsZ ERJhw1XVe6fsqm6HynEkdvL8lDT7pNovO6pHt5b/VImhTB/HXqKcUTcr20UL G5tAn9A58d05ZO12F5C7I1W+O0OQ1Za7bT0Z43drDb2tUk23pUe1B2PRBeF8 7tX0n2KY5bkwaziN1Z+yjinKO0rMbjsuFlX9bMUHnDY/zmAx2KrqXRpP3GA1 g6utHMDh+zQ4/RRl/cPajyWuMC5SnANNWqGjS12kTZIsqj44zSX+okzq/jv1 iXFYXL5+/Q/Go0lT/6ejqv7PuP4fA7z/Rw7mIvs/L7L/tFru1MrXTs4j4PL1 738CPOxV/D/1/cnM3f/4fP9zFCAN/yCNLI8poUiBNnDNFnDr8FVv9ihk3Ea0 2gnKe8yoeN0csdzZj85ptfZgMMA8w1Li3jAf3U4XeS+9kW4LuSPoaLeRxcLw dJGqa9Q+it5h6M4zVebFRWYvcRMDPagwZ5/v+YbD27T/4krzRKF52fI0w+9b o9ZCPGTiHfb9Gsj3P4CtNT/QWeA5/g/8zf4/8EfI/+PxjO//joID3f/1nV6u 61s/ENVll4xlIlOb0/UWHhesQC5x9xm8y367u+zXDmLGi7HL/4c4Czz3/9/R aFTz/3Q2pvuf8XQyYv4/BvbRbkMEb/dy57WX9k2A/rF96Cvg5/J/OJ015/8x CvrByOfz/3GgM9wfbB+8OrTFuXc04LKxTNgAPOG5LmKIi8GDA9ygEn+sqzFx XZr4C01c7jfxWFdjIvQ6Hc5tBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAY DAaDwWAwGAzG14m/AWwxR7cAUAAA --MP_/7BlRj6G0pC7HM_kuN6NObsD--