From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTPS id B2D8F5D4 for ; Wed, 13 Jun 2018 18:07:21 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.51,220,1526335200"; d="scan'208";a="331682616" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 13 Jun 2018 20:07:19 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id CEF6982473; Wed, 13 Jun 2018 20:07:19 +0200 (CEST) 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 1C98E82416 for ; Wed, 13 Jun 2018 20:07:15 +0200 (CEST) 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 IronPort-PHdr: =?us-ascii?q?9a23=3At589rhNXhda/4EmD7aYl6mtUPXoX/o7sNwtQ0KIM?= =?us-ascii?q?zox0Iv39rarrMEGX3/hxlliBBdydt6oZzbKO+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZLebxlIiTanfb9+MAi9oBnMuMURnYZsMLs6xAHTontPde?= =?us-ascii?q?RWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKHw65NfqtRbY?= =?us-ascii?q?UwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0yRD+s7bpkSAXwhS?= =?us-ascii?q?kJNzA37mLZhNF3gq1UvB2vqAFwzpXIYIGMLvdyYrnQcc8YSGdHQ81fVzZBAoS5?= =?us-ascii?q?b4YXAeQOJ+BYr4jjqFsKtRSzGBW0BOXuyz9Mh3/9wKo33Pk7HgHA3QwvAdYOvG?= =?us-ascii?q?7Po9XoKqgSV+G0zK3JzTjYcfxWwy3955LUchAguPGMQKx/fdDNxkkvDg7IiEib?= =?us-ascii?q?p4LiPzOQzOsNsm6b4vJ+WuK1kW4osR1xojm2xscxlIbFnJ4aylDC+C5kw4g1Pc?= =?us-ascii?q?W1RUBmbdK+DZddtT2WO5FrTs88TWxkojs2x7MJtJKjYSQHx4krywTCZ/GJcoWE?= =?us-ascii?q?+AzvWPiVLDtihX9ofLSyjAuo/0e60O3zTMy03U5KriVbltnMsWgA1wfW6sibUv?= =?us-ascii?q?tx5Emg1iiU2ADd8O5LPVw0lavcK54n2LI/ip0TsUHbEi/3nkX5krOWe10q9+S1?= =?us-ascii?q?8ejrf7frqoOGO4NplA3zPL4iltGxDOk3KgQOWnKU+eW41L3t5035R7BKg+Urna?= =?us-ascii?q?bDtpDaJNoUpqqjDwBOz4Ys9RC/Djai0NQZhnQIMkhFeAidgIj1OlHOOe34Auml?= =?us-ascii?q?j1uwkDdn3+rGMaH5ApXRMnjDl6/scqpn5E5ZzAo/1NRf55NPCrEdO//zQU/wtN?= =?us-ascii?q?nADhAjKQC0wuDnCM981owEQ26PDLWZY+vutgqD7+crZu2Nf5Nd7D30Lvxg4//1?= =?us-ascii?q?kVc4n0UcdO+nx81ERmq/G6FKKkOYbH7bqEMHA2ML9l4yRerrhVnEWyNeYWS2Xo?= =?us-ascii?q?ox/CsyFIO/EIqFTYD70+/J5zuyApADPjMOMVuLC3q9L9zVCcdJUzqbJ4paqhJB?= =?us-ascii?q?ULGgT4E70hT36F330aBuMuvN5yBevpKxjIEptd2Wrgk78HlPN+rYy3uEFj0mk3?= =?us-ascii?q?kSTiM3xb1y50d9mA/ajPpIxsdAHNkW3MtnFwc3MZmGlr5hDszqHB3MdNmAQ0qn?= =?us-ascii?q?RdPgCjY0HIo8?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BuHgDLXCFbYoZ7qh9dHgEGDINIYm0SK?= =?us-ascii?q?IN5iGOjBoFkLgmBS4VHBgYzFQECAQEBAQEBAQEBBhoLCioBAyUMgjUignuBCwI?= =?us-ascii?q?YDgJJFi6DCYIDC6wFghyEWoNIJYFogQuIRoENhyELBAKBRIMZglUCh1aEYoR3h?= =?us-ascii?q?1sHAneEfYpGQYVzgSWEGwGHa4IfiQqBdIQECIFlAYNminkDbXyOKwEB?= X-IPAS-Result: =?us-ascii?q?A0BuHgDLXCFbYoZ7qh9dHgEGDINIYm0SKIN5iGOjBoFkLgm?= =?us-ascii?q?BS4VHBgYzFQECAQEBAQEBAQEBBhoLCioBAyUMgjUignuBCwIYDgJJFi6DCYIDC?= =?us-ascii?q?6wFghyEWoNIJYFogQuIRoENhyELBAKBRIMZglUCh1aEYoR3h1sHAneEfYpGQYV?= =?us-ascii?q?zgSWEGwGHa4IfiQqBdIQECIFlAYNminkDbXyOKwEB?= X-IronPort-AV: E=Sophos;i="5.51,220,1526335200"; d="scan'208";a="331682594" Received: from mail6.webfaction.com (HELO smtp.webfaction.com) ([31.170.123.134]) by mail2-smtp-roc.national.inria.fr with ESMTP; 13 Jun 2018 20:07:14 +0200 Received: from hehey.local.mail (141-136-229-69.dsl.iskon.hr [141.136.229.69]) by smtp.webfaction.com (Postfix) with ESMTPSA id 252C4611AF36D for ; Wed, 13 Jun 2018 18:07:13 +0000 (UTC) Date: Wed, 13 Jun 2018 20:07:11 +0200 From: =?utf-8?Q?Daniel_B=C3=BCnzli?= To: caml-list Message-ID: X-Mailer: Airmail (481) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Subject: [Caml-list] [ANN] Omod 0.0.1 Reply-To: =?utf-8?Q?Daniel_B=C3=BCnzli?= X-Loop: caml-list@inria.fr X-Sequence: 16938 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hello, I'd like to announce `omod` which provides data-driven module toplevel load= ers. Like `ocamlfind` it allows to load compilation objects and their dependenci= es in the toplevel. However `omod` works without additional metadata files = and with top level (compilation unit) module names rather than ocamlfind pa= ckage or archive names. This means you only need to know the name of the module you want to load ra= ther than having to remember in which `ocamlfind` package or archive it liv= es. It should work well in `ocaml`, `ocamlnat`[0] and `utop`. To get started ty= pe: ``` opam install omod ``` and follow the [tutorial][1]. More information on how `omod` came to be is = given below [2]. omod is ISC licensed and can be found at http://erratique.ch/software/omod Best, Daniel P.S. Currently `omod` doesn't work with opam system compilers. [0] One issue with `ocamlnat` is that some libraries lack their `cmxs` files. E= .g. the lack of `threads.cmxs` prevents the `Core` module from loading. But= other ones like `Irmin`, `Containers` or `Base` do however load in `ocamln= at` via `omod`. [1]: http://erratique.ch/software/omod/doc/Omod.html#tutorial [2] This is basically a dependency-less rewrite of `odig`'s toplevel loaders wh= ich will be removed from `odig`. It solves the following problems they had: 1. Too many dependencies. They brought too many dependencies in =C2=A0 =C2=A0the toplevel including `compiler-libs` which are problematic in =C2=A0 =C2=A0`ocamlnat`. `omod` has no dependency, so using it limits tople= vel =C2=A0 =C2=A0scope pollution to the `Omod` module only which loads fine in = `ocamlnat`. 2. Resolution for multiple load sequences. `odig` had no support for =C2=A0 =C2=A0choosing between multiple load solutions (e.g. for library =C2=A0 =C2=A0variants). `omod` has both a variant specification syntax and = an =C2=A0 =C2=A0interactive mode to resolve them. 3. Slow. They were too slow on large libraries as resolution was done in =C2=A0 =C2=A0the (bytecode) toplevel itself, `omod`s performance (and API) = should be =C2=A0 =C2=A0improved for scripting however it is reasonably fast for your = toplevel =C2=A0 =C2=A0interactive usage. 4. Outdated information in long running toplevel sessions. They =C2=A0 =C2=A0provided no mecanism to update the package information whenever =C2=A0 =C2=A0the package install base changed. To solve 1., 3. and 4. the `Omod` API invokes the `omod` binary with the `load` sub-command (whose textual output you can check when you suspect there's a problem) to find out the load sequences. --=20 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=