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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 6EF717FC42 for ; Tue, 3 Mar 2015 14:40:45 +0100 (CET) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of gabriel.scherer@gmail.com) identity=pra; client-ip=209.85.213.170; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of gabriel.scherer@gmail.com designates 209.85.213.170 as permitted sender) identity=mailfrom; client-ip=209.85.213.170; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ig0-f170.google.com) identity=helo; client-ip=209.85.213.170; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="postmaster@mail-ig0-f170.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0ByAwCquPVUlKrVVdFag1RaBIMHrlWNdIF2hW4CgSAHTQEBAQEBARABAQEBBwsLCRIwhBABAQMBEhEdARsSCwEDAQsGAwIEBxodAgIiAREBBQEKEgYTEhCHeAEDCQgNnxqQTz4xiy6Ba4J3j3kKGScDClSESgEBAQEBAQQBAQEBAQEBARQBBQ6LBIJhggkEB4JogUMFhGgKjmeFaYFTkEISI4EMCYF+ghQ9MQEEgj4BAQE X-IPAS-Result: A0ByAwCquPVUlKrVVdFag1RaBIMHrlWNdIF2hW4CgSAHTQEBAQEBARABAQEBBwsLCRIwhBABAQMBEhEdARsSCwEDAQsGAwIEBxodAgIiAREBBQEKEgYTEhCHeAEDCQgNnxqQTz4xiy6Ba4J3j3kKGScDClSESgEBAQEBAQQBAQEBAQEBARQBBQ6LBIJhggkEB4JogUMFhGgKjmeFaYFTkEISI4EMCYF+ghQ9MQEEgj4BAQE X-IronPort-AV: E=Sophos;i="5.09,681,1418079600"; d="scan'208";a="101947258" Received: from mail-ig0-f170.google.com ([209.85.213.170]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 03 Mar 2015 14:40:44 +0100 Received: by igkb16 with SMTP id b16so27483144igk.1 for ; Tue, 03 Mar 2015 05:40:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=CFR3+GBAfAGELwE/jqLTRtXmNlIn1u0EvwFuu8Q0NuE=; b=l8LeN1GQrC9+UbQT4/hsRVebjS8hIEbLIgktArYHz7ZFyh3GSWWYjD1e5bQRym2kn6 ptJmlSPSiFBR0+/e37Z9GyiYqjB03r9x9qkDPVGgodqL7RrN9yt7q9oKqf64/QVN7VhC 6X7ws2u/kzdVDVVNFxR9Sh97l/EYU2FUrUE+BGmo58P2ts82qsA8IJLNNesjlXMCiRXN UbMohpLQyCY8qZEYTNOJKc/U0jIJwfJ1gp6l2jn3/s3x+BpcFZRHDFjuKqnJBYTSx5SN hhxAIQHn0jj1YMNQXLXIbbXP8wRZM4YnKRo/Fe5at6HZ/FXw29YNfwtZO0Xseq/tC4ej MJ+g== X-Received: by 10.50.129.9 with SMTP id ns9mr1904661igb.24.1425390043235; Tue, 03 Mar 2015 05:40:43 -0800 (PST) MIME-Version: 1.0 Received: by 10.36.13.16 with HTTP; Tue, 3 Mar 2015 05:40:02 -0800 (PST) In-Reply-To: <54F5B3F7.3030705@cea.fr> References: <54F5B3F7.3030705@cea.fr> From: Gabriel Scherer Date: Tue, 3 Mar 2015 14:40:02 +0100 Message-ID: To: =?UTF-8?Q?Fran=C3=A7ois_Bobot?= Cc: OCaml Mailing List Content-Type: multipart/alternative; boundary=047d7b343c9c318cce0510627bb9 Subject: Re: [Caml-list] Dependencies between plugins --047d7b343c9c318cce0510627bb9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Maxence Guesdon's static blog/website generator Stog ( https://zoggy.github.io/stog/index.html ) supports dynamic plugins, and its loading code is available at https://github.com/zoggy/stog/blob/e83c363c83465a7bfd1595816b3d9bc8331af560= /stog_dyn.ml#L119-L146 It also uses ocamlfind, but through the command-line rather than the Findlib library. On Tue, Mar 3, 2015 at 2:15 PM, Fran=C3=A7ois Bobot wrote: > Hi everyone, > > I'm wondering how people are handling dependencies between > libraries dynamically linked. > > Even if many libraries compile a cmxs and have in their META file > `archive(plugin,native)=3D...`. I know only one tool that uses this > information: the ocsigen server. The code to gather all the cmxs or cma is > not hard to write, thanks to findlib: > > https://github.com/ocsigen/ocsigenserver/blob/master/src/ > baselib/ocsigen_loader.ml#L165 > > Does someone wrote a library that does that? > > Gerd, do you think that something that does that could be added to > ocamlfind? One tricky thing is to know the library statically linked (ie. > `Ocsigen_config.builtin_packages`), perhaps ocamlfind can during linking > add this information. > > Regards, > > -- > Fran=C3=A7ois > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > --047d7b343c9c318cce0510627bb9 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Maxence Guesdon's static blog/website generator Stog (= =C2=A0https://zoggy.git= hub.io/stog/index.html ) supports dynamic plugins, and its loading code= is available at

=C2=A0=C2=A0
On Tue, Ma= r 3, 2015 at 2:15 PM, Fran=C3=A7ois Bobot <francois.bobot@cea.fr&g= t; wrote:
Hi everyone,

=C2=A0 =C2=A0 =C2=A0 =C2=A0 I'm wondering how people are handling depen= dencies between libraries dynamically linked.

Even if many libraries compile a cmxs and have in their META file `archive(= plugin,native)=3D...`. I know only one tool that uses this information: the= ocsigen server. The code to gather all the cmxs or cma is not hard to writ= e, thanks to findlib:

https://github.com/ocsigen/ocsigenserver/blob/master/src/baselib/ocsigen_loader.ml#L165
Does someone wrote a library that does that?

Gerd, do you think that something that does that could be added to ocamlfin= d? One tricky thing is to know the library statically linked (ie. `Ocsigen_= config.builtin_packages`), perhaps ocamlfind can during linking add = this information.

Regards,

--
Fran=C3=A7ois

--
Caml-list mailing list.=C2=A0 Subscription management and archives:
ht= tps://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners<= /a>
Bug reports:
http://caml.inria.fr/bin/caml-bugs

--047d7b343c9c318cce0510627bb9--