From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 0F959BB81 for ; Thu, 11 Nov 2004 19:46:06 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id iABIk5i4006252 for ; Thu, 11 Nov 2004 19:46:05 +0100 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id TAA06520 for ; Thu, 11 Nov 2004 19:46:04 +0100 (MET) Received: from alex.barettalocal.com (h213-255-109-130.albacom.net [213.255.109.130] (may be forged)) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id iABIk4tr025553 for ; Thu, 11 Nov 2004 19:46:04 +0100 Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1]) by alex.barettalocal.com (Postfix) with ESMTP id A1E0D2BAA6D; Thu, 11 Nov 2004 19:48:13 +0100 (CET) Message-ID: <4193B3ED.9070608@baretta.com> Date: Thu, 11 Nov 2004 19:48:13 +0100 From: Alex Baretta User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040913 X-Accept-Language: it, en-us, en MIME-Version: 1.0 To: Ocaml Subject: Re: [Caml-list] Native executable symtable References: <41933C5E.2010008@baretta.com> <20041111172749.GA12790@yquem.inria.fr> In-Reply-To: <20041111172749.GA12790@yquem.inria.fr> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 4193B36D.002 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 4193B36C.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; baretta:01 baretta:01 caml-list:01 symtable:01 wrote:01 pxp:01 pxp:01 ocaml:01 bytecode:01 abstractions:01 marshalling:01 abstract:01 abstract:01 marshal:01 defining:01 X-Spam-Checker-Version: SpamAssassin 3.0.0 (2004-09-13) on yquem.inria.fr X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=disabled version=3.0.0 X-Spam-Level: [I'm sorry for the duplicate: I pressed the button by mistake.] Xavier Leroy wrote: The insight about modules implementing abstract data types differently is very interesting. I had not thought about this. So, yes, what we really want is a *hard* checksum, taking into account the implementation, too. > let _ = Registry.record_module "Modulename" "checksum" We have considered the Checksum_registry module approach, but it hardly scales if you consider that a large portion of any project is composed of third-party libraries. What if the user of my network protocol intends to marshal PXP trees? I somehow need to fetch the checksums of the PXP modules defining the the relevant type. This is the reason for looking for a solution which integrates with the virtual machine (* i.e. the abstract machine executing the Ocaml program *). However, you are telling me that on this point, the bytecode VM and the native code VM implement two different abstractions. Apparently, what we'll need to do is to better integrate the present md5 digest generation phase with the build process, until our caml breeders will give us type safe marshalling. Alex -- ********************************************************************* http://www.barettadeit.com/ Baretta DE&IT A division of Baretta SRL tel. 02 370 111 55 fax. 02 370 111 54 Our technology: http://www.asxcaml.org/ http://www.freerp.org/