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 A7779823D7 for ; Thu, 8 Mar 2018 18:28:33 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=alain.frisch@lexifi.com; spf=Pass smtp.mailfrom=bounce+475bf6.518c1a-caml-list=inria.fr@lexifi.com; spf=None smtp.helo=postmaster@so254-32.mailgun.net Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of alain.frisch@lexifi.com) identity=pra; client-ip=198.61.254.32; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="bounce+475bf6.518c1a-caml-list=inria.fr@lexifi.com"; x-sender="alain.frisch@lexifi.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of bounce+475bf6.518c1a-caml-list=inria.fr@lexifi.com designates 198.61.254.32 as permitted sender) identity=mailfrom; client-ip=198.61.254.32; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="bounce+475bf6.518c1a-caml-list=inria.fr@lexifi.com"; x-sender="bounce+475bf6.518c1a-caml-list=inria.fr@lexifi.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@so254-32.mailgun.net) identity=helo; client-ip=198.61.254.32; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="bounce+475bf6.518c1a-caml-list=inria.fr@lexifi.com"; x-sender="postmaster@so254-32.mailgun.net"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AwszKihMgHfd8d0Yblfol6mtUPXoX/o7sNwtQ0KIM?= =?us-ascii?q?zox0I/35rarrMEGX3/hxlliBBdydt6ofzbKO+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZLebxlGiTanfb9+MAi9oBnMuMURnYZsMLs6xAHTontPde?= =?us-ascii?q?RWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKHw65NfqtRbY?= =?us-ascii?q?UwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0vRz+s87lkRwPpiC?= =?us-ascii?q?cfNj427mfXitBrjKlGpB6tvgFzz5LIbI2QMvd1Y6HTcs4ARWdZQ8hfSSJBDIO/?= =?us-ascii?q?YYUBAeUOMuRXoJXyqVYVsRuzBhOhCP/zxjJGhHL727Ax3eQ7EQHB2QwtB84DsH?= =?us-ascii?q?DOo9X0MqcZTOC7zLPJzTXYc/xW2Sr25Y/SfRAlu/6MXLRwfdDfyUk1FgPFlUmf?= =?us-ascii?q?qYz+MjORyOsMvGmb7+RhVe61l2EnrARxryGpy8wxiYfJnpoYxk3A+Ch62oo4JM?= =?us-ascii?q?C0RFRlbdOkH5ZcrS+XO5VuTs8/QGxluDw2xqMItJKheCUG1o4rywPQZvGIdYWD?= =?us-ascii?q?/wjtW/yLIThigXJoYLK/iAi28Uin0uD8Tc603EhKoydKi9XBuG4B2wbW6sedS/?= =?us-ascii?q?t9+kih2SuJ1wzJ7OFLP1w0mbLaK54n3LEwioIevVnHEyL1gkn7jbKael869uWo?= =?us-ascii?q?5OnreLvrqoGEO49xkA7+M6AumsKlAeQ/NwgDR3OU+eOh1L3l4UL2XrJGg/I0n6?= =?us-ascii?q?TZq5/aK8UWqrS5DgNI0Yss9wuzAC2/3NsEh3YHKVZFdAuDj4joIFHOPOj1Dfa5?= =?us-ascii?q?g1S2kTdk3erKPrP7ApjWKnjMjrjgfbdz605d0gY80ddf55dMBrEbPP3zQlPxtM?= =?us-ascii?q?DfDhIhLwO72ePnCNFk2oMaWGKPGbOZPbjJsV6I4+IvO/ODaJUUuDb7Mfgl5uTh?= =?us-ascii?q?gWU3mV8HLuGV2s4xaXu/Gn19FGKbbHbltf2NCy9euAs1S+jjkxuFUzNfbjC4Vr?= =?us-ascii?q?gU4jwrCYynS4zEQ9bpyJ6G1yq/D5thXeFcDUzERVXvfIiASvFKUy+IJdNJjzoF?= =?us-ascii?q?S/2rU4Ql2AurswnmjbR9eLn64Cod4Lvn3dlzr8PJlAo59XQgBsCU0mfLQXt1hW?= =?us-ascii?q?gIbzs7zKFxoAp2zVLVgvswuOBRCdEGv6ABaQw9L5OJirUiU4mjCDKERc+ATROd?= =?us-ascii?q?evvjBDgwStwrxNpXORR5FsWjgBGF1C2vUeZMy+67Qacs+6eZ5EDfYt5nwi+chq?= =?us-ascii?q?0sn1goQ41EMmj03vcipTiWPJbAlgCir4jvdakY23SXpnyElzfS+RoCFgt5UKHK?= =?us-ascii?q?QHZZYEbK/4z0?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0B2AAB5caFahyD+PcZeGgEBAQEBAgEBA?= =?us-ascii?q?QEIAQEBAYUlFRODUJgWgVAygRaWSIUlgwwZBwEENBQBAgEBAQEBAQEBARIBAQE?= =?us-ascii?q?KCwkIKC6COCQBgkcBBSMECwEFCAEBNwEPAQoYAgImAgJXBgEMCAEBhRUEAao/b?= =?us-ascii?q?YFsOoMBAQEFgWmDeYIVCIEOhCeCLoFWgg+DBIUhgwmCYo1zjGAJggiOWQeJCoV?= =?us-ascii?q?Xi0WGAoEsNYFzMxojT4JDgiKCJ3aLOgEBAQ?= X-IPAS-Result: =?us-ascii?q?A0B2AAB5caFahyD+PcZeGgEBAQEBAgEBAQEIAQEBAYUlFRO?= =?us-ascii?q?DUJgWgVAygRaWSIUlgwwZBwEENBQBAgEBAQEBAQEBARIBAQEKCwkIKC6COCQBg?= =?us-ascii?q?kcBBSMECwEFCAEBNwEPAQoYAgImAgJXBgEMCAEBhRUEAao/bYFsOoMBAQEFgWm?= =?us-ascii?q?DeYIVCIEOhCeCLoFWgg+DBIUhgwmCYo1zjGAJggiOWQeJCoVXi0WGAoEsNYFzM?= =?us-ascii?q?xojT4JDgiKCJ3aLOgEBAQ?= X-IronPort-AV: E=Sophos;i="5.47,441,1515452400"; d="scan'208";a="257528980" Received: from so254-32.mailgun.net ([198.61.254.32]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 08 Mar 2018 18:28:32 +0100 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=lexifi.com; q=dns/txt; s=mx; t=1520530111; h=Content-Transfer-Encoding: Content-Type: In-Reply-To: MIME-Version: Date: Message-ID: From: References: Cc: To: Subject: Sender; bh=mcGRYC6KqiQY/1hwg3TvO/XmDVESsCxWwc14cPFhhqw=; b=B4Bnc8R8LXYbM74q520u6ACVGentShJEohEtxC6wVbWognCV1dymNEkRHGbFTJ02uK+Bap1R lc12XWqw+qt+jVHTVvB5diJl83faVDJ10U0v/AXU1L0Z8m5Mj+JJj8yU+eYPcuC6nAPQA7tJ ayf/GjibM9pvVz87ia7XjOjithI= X-Mailgun-Sid: WyI5N2Q2YyIsICJjYW1sLWxpc3RAaW5yaWEuZnIiLCAiNTE4YzFhIl0= X-Mailgun-Sending-Ip: 198.61.254.32 Sender: alain.frisch@lexifi.com Received: from [10.0.210.66] (Unknown [185.23.92.144]) by mxa.mailgun.org with ESMTP id 5aa172be.7f8cad4fac38-smtp-out-n02; Thu, 08 Mar 2018 17:28:30 -0000 (UTC) To: =?UTF-8?Q?Nicol=c3=a1s_Ojeda_B=c3=a4r?= , =?UTF-8?Q?Jocelyn_S=c3=a9rot?= Cc: caml users References: From: Alain Frisch Message-ID: <701b5731-23d5-3e31-bf3a-5ec21867aa02@lexifi.com> Date: Thu, 8 Mar 2018 18:28:29 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [Caml-list] A question about custom toplevels On 08/03/2018 15:18, Nicolás Ojeda Bär wrote: > I do not think this is currently possible. > > When you enter a phrase into the toplevel (custom or otherwise), it is > compiled much the same way as if it had been written in a file and > passed to ocamlc. > To do so the compiler needs access to the signature information stored > in the .cmi files of all referenced modules. This is completely > independent of whether the code of those modules is linked into the > toplevel or loaded separately which is what ocamlmktop is about. The Env module has the following: ======================================================= module Persistent_signature : sig type t = { filename : string; (** Name of the file containing the signature. *) cmi : Cmi_format.cmi_infos } (** Function used to load a persistent signature. The default is to look for the .cmi file in the load path. This function can be overridden to load it from memory, for instance to build a self-contained toplevel. *) val load : (unit_name:string -> t option) ref end ======================================================= This makes it possible to create a custom toplevel with some "embedded" .cmi files. -- Alain