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 concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id D66ADBB81 for ; Sun, 27 Nov 2005 15:57:36 +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 jAREvaSq012171 for ; Sun, 27 Nov 2005 15:57:36 +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 PAA23436 for ; Sun, 27 Nov 2005 15:57:36 +0100 (MET) Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.205]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id jAREvZD3004922 for ; Sun, 27 Nov 2005 15:57:35 +0100 Received: by zproxy.gmail.com with SMTP id o1so2209025nzf for ; Sun, 27 Nov 2005 06:57:34 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=ixTBcjk9xDXMxTHWCkwXnQHR7s88ARUYXyPm3XI0u2S1QWWOBGkmpvErXnkpp1EBbj6Sd8xbAzI/3HmKlgRLZlnJ1ItxsUdTZQPCPWGomhUAcHUmeqX3b/UWjxij2ksOp3R79dIgNXbvftWQTHWYlAg5gyHaYDAe2fT9i9gDwQs= Received: by 10.64.249.18 with SMTP id w18mr2370405qbh; Sun, 27 Nov 2005 06:57:34 -0800 (PST) Received: by 10.65.35.3 with HTTP; Sun, 27 Nov 2005 06:57:34 -0800 (PST) Message-ID: <4a708d20511270657j2518f0b6m@mail.gmail.com> Date: Sun, 27 Nov 2005 15:57:34 +0100 From: Lukasz Stafiniak To: "Michael D. Adams" Subject: Re: [Caml-list] Efficency of varient types Cc: caml-list@inria.fr In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: X-Miltered: at concorde with ID 4389C960.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 4389C95F.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; lukasz:01 caml-list:01 ocaml:01 ocaml:01 char:01 char:01 metaocaml:01 native-code:01 compilation:01 metaocaml:01 lukasz:01 26,:98 int:01 int:01 variant:02 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_BY_IP autolearn=disabled version=3.0.3 2005/11/26, Michael D. Adams : > I have recently learned about OCaml and have been impressed by how > fast it is in the benchmarks. However I have discovered that variant > types can slow down a program quite a bit. [...] > I am working on a program that translates code from scheme into ocaml. > (Later I will try python into ocaml.) Because it is a dynamicly > typed language, the most natural translation would make everything a > function of a large variant type like: > > type value =3D Int of int > | Char of char > | String of string > (* etc. *) > Use MetaOCaml with native-code compilation and untagging. MetaOCaml retypechecks and outputs the untagged version if it can. Best Regards, Lukasz