From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id B18D1BC57 for ; Sat, 15 May 2010 15:23:39 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhIFAMc97kvZSMDjdWdsb2JhbACSA4t+FQEXIAUfuliCbgiCGgQ X-IronPort-AV: E=Sophos;i="4.53,236,1272837600"; d="scan'208";a="50657167" Received: from fmmailgate02.web.de ([217.72.192.227]) by mail3-smtp-sop.national.inria.fr with ESMTP; 15 May 2010 15:23:17 +0200 Received: from smtp06.web.de ( [172.20.5.172]) by fmmailgate02.web.de (Postfix) with ESMTP id E485F160BE8E9 for ; Sat, 15 May 2010 15:23:16 +0200 (CEST) Received: from [78.43.204.177] (helo=frosties.localdomain) by smtp06.web.de with asmtp (TLSv1:AES256-SHA:256) (WEB.DE 4.110 #4) id 1ODHKm-0005V7-00 for caml-list@inria.fr; Sat, 15 May 2010 15:23:16 +0200 Received: from mrvn by frosties.localdomain with local (Exim 4.71) (envelope-from ) id 1ODHKr-0002pZ-EK for caml-list@inria.fr; Sat, 15 May 2010 15:23:21 +0200 From: Goswin von Brederlow To: caml-list@inria.fr Subject: Re: [Caml-list] about OcamIL References: <87fx1uh5r5.fsf@frosties.localdomain> <49505E67-4974-4F0B-A6B7-0E87214E92BB@gmail.com> <20100515104348.7c6b4fd2.mle+ocaml@mega-nerd.com> Date: Sat, 15 May 2010 15:23:21 +0200 In-Reply-To: (ben kuin's message of "Sat, 15 May 2010 11:45:05 +0200") Message-ID: <87eihdmh86.fsf@frosties.localdomain> User-Agent: Gnus/5.110009 (No Gnus v0.9) XEmacs/21.4.22 (linux, no MULE) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: goswin-v-b@web.de X-Sender: goswin-v-b@web.de X-Provags-ID: V01U2FsdGVkX19fqxblbyQx7+4Z2NvvF5atnnT+eJzHv9p5oM9+ 7w/Ob1ln9N/CZMaH6BRMpYrzKVJ+kq/JVsAOsJYoUMYXiImYlV DgXn0c92M= X-Spam: no; 0.00; ocaml:01 bytecode:01 ocamlopt:01 ocaml:01 showstopper:01 compiler:01 compiler:01 recompile:01 recompile:01 bytecode:01 blog:98 blog:98 mfg:98 binaries:01 binaries:01 ben kuin writes: > hi erik, > I highly appreciate your blog, so it hurts me a little but - I disagree: > >> The only evidence to support this is the widespead usage of >> Java and C#, but I think that is a language choice rather than >> a conscious decision to use a language that runs on a VM. >> >> People chose Java and C# because they are preferable to >> fundamentally unsafe langauges like C and C++. > > English is not my first language, maybe I misunderstand, but what > you're are saying here sound like a complete contradiction to me: > Like you say C and C++ are considered as 'unsafe' languages. But thats > because they offer features, that are not available when programming > for a vm. This has nothing to do with languages, it's a conscious > platform decision. Who says they are not available in a vm? There is nothing stopping you from compiling C code to run on a vm. It will be just as unsafe and crash in the vm as it is on a real cpu. Similary ocaml can be run in a vm or native. Why would the quality be improved by running it in a vm? Both bytecode and native use the same source (unless you mean things like --unsafe). >>> What if ocamlopt would be dropped for a faster ocaml vm? >> >> Why? Even if the Ocaml was able to target a faster VM, there >> are still many people who would chose to generate native >> binaries. > > I'd call that a questionable decision. As far as I know, using native > binaries means to open a whole range of potentially uncorrectionable > problems with abi incomptabilities between libraries or with changes > of the underlying os. > > As far as I know when you go native you always have to take abi > incompatibility and therefore recompilation into account. For business > apps, that's a showstopper. Has the native ABI ever changed in ocaml native code? I somewhat doubt that. That is just the C ABI. The compiled module interface though changes with every compiler version and every source change it seems. So every time you update the compiler or change a module you need to recompile everything. But that is a problem of the specific ocaml implementation and in no way a general problem. And correct me if I'm wrong but don't you have to recompile bytecode just as well every time you update the compiler? >> Erik (who uses Ocaml compiled to native binaries for mission >> critical code) > > Would you mind to share some infos about your experiences, maybe on your blog? MfG Goswin