From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 978897EF1E for ; Tue, 19 Jul 2016 11:47:06 +0200 (CEST) IronPort-PHdr: 9a23:nleOqxXxWhsAELs8cLtUhdPAe3DV8LGtZVwlr6E/grcLSJyIuqrYZhyGt8tkgFKBZ4jH8fUM07OQ6PG4HzFZqs/e+Fk5M7V0HycfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aJBzzOEJPK/jvHcaK1oLshrj0psSYOloArQH+SIs6FA+xowTVu5teqqpZAYF19CH0pGBVcf9d32JiKAHbtR/94sCt4MwrqHwI6LoJvvRNWqTifqk+UacQTHF/azh0t4XXskzlTACMrlAcW30TmxwAVw7O7BjiW573minzsOdmxDOXMNGwRrcxD2eM9aBuHTPhjiYKMwkTZGfFjs042K5SphOso1p13oPScoWUHPdkZKrBfMoHSCxKXpACBGR6HoqgYt5XXKI6NuFCoty4/gNWoA== Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=daniel.buenzli@erratique.ch; spf=None smtp.mailfrom=daniel.buenzli@erratique.ch; spf=None smtp.helo=postmaster@smtp.webfaction.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=pra; client-ip=74.55.86.74; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=mailfrom; client-ip=74.55.86.74; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@smtp.webfaction.com) identity=helo; client-ip=74.55.86.74; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="postmaster@smtp.webfaction.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0C1AQCs9o1Xh0pWN0pcv3CGGgKBbhABAQEBAQEBAREBAQEIDQkJIS+CMgQBEgGCEwEFI1YQCw4MAiYCAkcQBhuIKASucY4OAQEIAQEBASOBAYl2hECDASuCLwEEmSSYJA6FZ5AeNYI7gVmIfAEBAQ X-IPAS-Result: A0C1AQCs9o1Xh0pWN0pcv3CGGgKBbhABAQEBAQEBAREBAQEIDQkJIS+CMgQBEgGCEwEFI1YQCw4MAiYCAkcQBhuIKASucY4OAQEIAQEBASOBAYl2hECDASuCLwEEmSSYJA6FZ5AeNYI7gVmIfAEBAQ X-IronPort-AV: E=Sophos;i="5.28,389,1464645600"; d="scan'208";a="227127945" Received: from mail6.webfaction.com (HELO smtp.webfaction.com) ([74.55.86.74]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 19 Jul 2016 11:46:46 +0200 Received: from [192.168.5.63] (165-142.dsl.iskon.hr [89.164.165.142]) by smtp.webfaction.com (Postfix) with ESMTP id 7727920EE05E; Tue, 19 Jul 2016 09:46:42 +0000 (UTC) Date: Tue, 19 Jul 2016 11:46:41 +0200 From: =?utf-8?Q?Daniel_B=C3=BCnzli?= To: Nick Chapman Cc: Alain Frisch , OCaml Mailing List Message-ID: <26A20AD7AE4E496E800C8505AA376189@erratique.ch> In-Reply-To: References: X-Mailer: sparrow 1.6.4 (build 1178) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Subject: Re: [Caml-list] ocamldep, transitive dependencies, build systems, flambda Le mardi, 5 juillet 2016 =C3=A0 11:17, Nick Chapman a =C3=A9crit : > There was a further issue we needed to solve to get our scheme working. S= uppose library A lists library B as a dependency and allows this dependence= to be exposed in its interface. Clients of library A will require access t= o the .cmi's of library B to be compiled but it seems unreasonable to requi= re them to explicitly list library B as a dependency. We solve this by auto= matically running ocamlinfo on the public .cmi's of a library to discover a= dditional library deps required by clients of the library. I think this is the best way of having underspecified dependencies. Suppose= the client starts using B aswell, it won't have anything to specify since = A is using it. Now suppose that for some reason A stops using B, suddenly y= our package will no longer compile because it's missing a dependency toward= s B. Best,=20=20 Daniel =20=20