From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id LAA02016; Thu, 26 Aug 2004 11:09:19 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f 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 LAA01357 for ; Thu, 26 Aug 2004 11:09:18 +0200 (MET DST) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id i7Q99I48017810 for ; Thu, 26 Aug 2004 11:09:18 +0200 Received: from helium.pps.jussieu.fr (helium.pps.jussieu.fr [134.157.168.2]) by shiva.jussieu.fr (8.12.11/jtpda-5.4) with ESMTP id i7Q98d9J036473 for ; Thu, 26 Aug 2004 11:08:39 +0200 (CEST) X-Ids: 164 Received: from rubidium (rubidium.pps.jussieu.fr [134.157.168.37]) by helium.pps.jussieu.fr (8.11.6/jtpda-5.3.2) with SMTP id i7Q99HD74684 for ; Thu, 26 Aug 2004 11:09:17 +0200 (CEST) Message-ID: <002801c48b4b$d831d8d0$25a89d86@rubidium> From: "Raphael Montelatici" To: References: <200408250926.28629.jgoerzen@complete.org> <20040825143828.GA15785@annexia.org> <200408250950.04092.jgoerzen@complete.org> <200408251002.48722.jgoerzen@complete.org> Subject: Re: [Caml-list] Alternative Bytecodes for OCaml Date: Thu, 26 Aug 2004 11:05:33 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Miltered: at nez-perce with ID 412DA8BE.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at shiva.jussieu.fr with ID 412DA897.004 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Antivirus: scanned by sophie at shiva.jussieu.fr X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 bytecodes:01 compiles:01 ocamlopt:01 ocamlc:01 untyped:01 runtime:01 bootstrap:01 entail:01 ffi:01 developped:01 lacks:01 reflection:01 strangely:01 caml-list:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Hi all, Here are some explanations on OcamIL. OcamIL compiles Ocaml programs to verifiable MSIL bytecode. I have not advertised at all about it so far because I still consider it is not mature yet. Some implementation details: OcamIL is a modified ocamlopt compiler. Modifications are made as late as possible in order to achieve maximum compatibility with ocamlc/opt. One big issue is the compilation of an untyped intermediate language to a typed runtime. Two tracks have been followed : 1) type reconstruction and 2) type propagation 1) The current OcamIL distribution relies on the first approach. It gives enough good results to allow to bootstrap OCamIL and build an Ocaml toplevel for .NET. Interoperability with C# has been successfully tested. 2) However, it leads to unadequate data representations that entail poor performance. I'm currently working on the second approach. This involves a lot of code restructuration. Source files (as a patch to ocaml sources) together with a correct license will appear in the next release (expected late october ?) About interoperability: We do not want to add weird FFI features to the Ocaml syntax. We prefer an IDL approach, inspired by what have been done for Caml and Java by the OJacare project ( http://www.pps.jussieu.fr/~henry/ojacare/index.en.html ). About mono: OcamIL is developped and tested on windows, but I'm willing to make it compatible with Mono. However, mono still lacks .NET compatibility. OcamIL relies on parts of the Reflection library that are not available yet. Moreover, the mono bytecode interpreters behaves strangely: some executables produced by OcamIL don't run in the bytecode interpreter, but do run when previously compiled by the mono bytecode-to-nativecode compiler. Please Mono users wait for the next OcamIL release, which will be announced on this list. Raphael Montelatici ----- Original Message ----- From: "John Goerzen" To: Cc: ; Sent: Wednesday, August 25, 2004 5:02 PM Subject: Re: [Caml-list] Alternative Bytecodes for OCaml > [ I'm CCing the people listed as contacts on the OCamil page; I hope you > don't mind ] > > On Wednesday 25 August 2004 09:50 am, John Goerzen wrote: > > On Wednesday 25 August 2004 09:38 am, Richard Jones wrote: > > > On Wed, Aug 25, 2004 at 09:26:28AM -0500, John Goerzen wrote: > > > > * An ocamlc/ocamlrun that execute under Java or .NET and > > > > compile/run normal OCaml bytecode > > > > > > This interesting project was posted on the Wiki yesterday. It > > > generates code which runs on the .NET CLR. I'm not exactly sure > > > how, whether it's a modified compiler, or a translator of OCaml > > > bytecode: > > > > > > http://www.pps.jussieu.fr/~montela/ocamil/ > > > > That is indeed interesting. It looks like they have a good start. > > Unfortunately, there's one huge problem: there is no source code at > > all. (Doesn't that violate the OCaml license?) > > This is a very important point, BTW. > > I have been able to take their binaries and see at least something > happen with Mono: > > $ mono ocamiltop.exe > > ** ERROR **: Invalid IL code at IL0096 in Nativeint.Top:start (): > IL_0096: shl > > Well, it's a start. With source, I could probably do a lot more. > > > They are working in a pure Windows environment and have yet to port > > some libraries such as Str and Unix. These are both things I can > > help with, but without the source code, it's completely useless to > > me. > > > > > What will be interesting will be to see how well it allows one to > > > call .NET libraries, and how well it works on Mono. > > > > Indeed. (And how well it allows other .NET programs to call OCaml > > code.) > > > > -- John > > > > ------------------- > > To unsubscribe, mail caml-list-request@inria.fr Archives: > > http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs > > FAQ: http://caml.inria.fr/FAQ/ Beginner's list: > > http://groups.yahoo.com/group/ocaml_beginners > ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners