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 9DE4FBB81 for ; Sat, 20 Nov 2004 21:07:30 +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 iAKK7T9k014175 for ; Sat, 20 Nov 2004 21:07:29 +0100 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id VAA28447 for ; Sat, 20 Nov 2004 21:07:29 +0100 (MET) Received: from smtp.unc.edu (listserv0.isis.unc.edu [152.2.0.38]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id iAKK7R3G014159 (version=TLSv1/SSLv3 cipher=IDEA-CBC-SHA bits=128 verify=FAIL) for ; Sat, 20 Nov 2004 21:07:28 +0100 Received: from [152.2.131.132] (digitalove-lt-cs.cs.unc.edu [152.2.131.132]) (authenticated bits=0) by smtp.unc.edu (8.12.9/8.12.9) with ESMTP id iAKK6v2C022877; Sat, 20 Nov 2004 15:06:58 -0500 (EST) In-Reply-To: References: <41935E30.3020104@yahoo.it> <20041111160949.GA13998@annexia.org> <419F664F.9020905@yahoo.it> <419F8664.8010501@baretta.com> <419F92C0.4010200@barettadeit.com> Mime-Version: 1.0 (Apple Message framework v619) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit Cc: caml-list@inria.fr From: Ritesh Kumar Subject: Re: [Caml-list] Native executable symtable Date: Sat, 20 Nov 2004 15:07:04 -0500 To: malc X-Mailer: Apple Mail (2.619) X-Miltered: at concorde with ID 419FA401.002 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 419FA3FF.002 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; kumar:01 caml-list:01 symtable:01 malc:01 ocaml:01 ocaml:01 userspace:01 convincing:01 runtime:01 compiler:01 malc:01 wrote:01 baretta:01 wrote:01 referenced:01 X-Spam-Checker-Version: SpamAssassin 3.0.0 (2004-09-13) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.0 X-Spam-Level: Actually malc, it is a bit dissapointing (not on you but on the general Ocaml community) that you said that. Before I converted myself into an Ocaml programmer I quite vigorously fought with google to find out the answer to the very same question your patch addresses. I eventually came across some old newsgroup/mail-list postings which said why shared libraries are good/bad ideas in Ocaml and what are the pros and cons. I know I am not an expert in this field but id does seem that having ocaml shared libraries is a big step towards wider deployment ( and what's more, perhaps an entire userspace of its own!). I didn't find the reasons given against shared libraries very convincing. Among other things I value dynamic module linking (during program runtime) as it is with languages like Java/C a lot as they give numerous opportunities to the programmer. The patch that you have developed is a good step forward. I think it has a lot of utility and it should be part of the main opt compiler. Ritesh -- Impossibility is a relative concept. On Nov 20, 2004, at 2:17 PM, malc wrote: > On Sat, 20 Nov 2004, Alex Baretta wrote: > >>>> What does this patch do? I clicked on the link but could not make >>>> any sense out the page you referenced. >>> I don't know how to put it more bluntly than that (already on the >>> page): >>> >>> What is it? >>> A patch, against OCaml 3.07, making it possible to: create, link >>> against and dynamically load shared objects on i386 ELF and Win32 >>> platforms. >>> >> >> I read this, but I don't see how this differs from the behavior of >> vanilla Ocaml. I commonly use shared-object libraries in my code, and >> the Ocaml compiler can generate DLLs out of libraries for use within >> C code. The problem addressed by ASMDynlink dynlinking Ocaml compiled >> code within a running native code application. What has Vitaly's >> patch to do with this? > > Keyword here is "for use within C code", this patch is "for use within > OCaml code", also adressing name mangling, shared GC and runtime. > Additionally it Natdynlink module is introduced (Natdynlnk mimics the > behaviour of Dynlink, but works with natively compiled OCaml shared > object). A little bit of research on the page would have (like, for > instance, getting the examples provided or reading README) would have > given you just as much information. > >> >> I also don't understand your sarcasm. > > Sarcasm spurs from the fact that first version of this patch was > introduced in 2001 and developed till 2003. I had hoped that this will > result in some reaction, if not from Inria developers then from OCaml > users, alas this was not the case. Nothing w.r.t. native shared object > and/or dynamic linking of native code has changed since then. I myself > asked and waited for something akin to this for a bit, then decided to > went ahead and did it on my own, big mistake, all signs are there that > people do not need this functionality bad enough to do anything. > So be it. > > -- > mailto:malc@pulsesoft.com > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs