From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p37KbMme010540 for ; Thu, 7 Apr 2011 22:37:22 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiIEAA8gnk3RVdQ2imdsb2JhbACESpQxhgkBhwEIFAEBAQoJDQcSBiGmE4osgl+FCYkOAQEDBoRveASFUId1iTM6gSI X-IronPort-AV: E=Sophos;i="4.63,319,1299452400"; d="scan'208";a="80416340" Received: from mail-vw0-f54.google.com ([209.85.212.54]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 07 Apr 2011 22:37:17 +0200 Received: by vws18 with SMTP id 18so4117953vws.27 for ; Thu, 07 Apr 2011 13:37:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:date:x-google-sender-auth :message-id:subject:from:to:content-type; bh=vLpd+FUTvEtfntPXyaQii/z19/vuiUL1+0UiQoc8KT0=; b=TktyhcE41YOqC5B8gsqR9FZ1+KoxxP+QWY8V8IVc0NiYqP+2T9cRAdBOfqio18O37E WPENY4Xl5ovAgYdX2YehP0mG20JZrNG/4w/VjO6+aiLVsWqEAZI4qPGGaiLFyB1bfThY glskcOxjM4v/oQiRSOiUSVzUclK/TFkfFk/Ys= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=Fz+WuUO091tbZtmGA5+KGRevGdfUtcn49b5quVpFb392qTah4GitdTnf9azQtfR8fA Df/k5KAj9Q+WhSBKJRG40VetVsLhUX4d1cTInlJEC05O9DiMIcofbdCM1WZaOnKBMIG7 h9QExUWLK8BmyeZe+C0oq2Vq2/Isxk4nmXBtM= MIME-Version: 1.0 Received: by 10.220.62.8 with SMTP id v8mr408564vch.6.1302208635059; Thu, 07 Apr 2011 13:37:15 -0700 (PDT) Sender: arthur.peters@gmail.com Received: by 10.220.210.69 with HTTP; Thu, 7 Apr 2011 13:37:15 -0700 (PDT) Date: Thu, 7 Apr 2011 13:37:15 -0700 X-Google-Sender-Auth: IZI87Hv9T1AWZwi-Dr3ED5NK3c0 Message-ID: From: Arthur Peters To: caml-list@inria.fr Content-Type: multipart/alternative; boundary=e0cb4e8877051dbcaa04a05a138d Subject: [Caml-list] Documentation of the OCaml Lambda Intermediate Language --e0cb4e8877051dbcaa04a05a138d Content-Type: text/plain; charset=UTF-8 I am digging into the lambda language (as printed by -dlambda and as represented by the types in bytecomp/lambda.ml). And it mostly makes sense however I still have a constant stream of questions. So I was wondering: Is there any internal documentation for the lambda IL? The specific questions on my mind at the moment are: 1. How are types represented in the lambda IL? (they seem to be implicit but it's not clear) This is especially an issue with polymorphic primitives like "field" and "apply". 2. What do each of the operation (primitive and lambda) mean? What do they do and what types to they imply (if that's handled that way)? Just for some background I am a grad student in a compilers course and I am looking to build a simple LLVM code generator that takes lambda and output LLVM bytecode (allowing it to use all the fun JIT and optimization, etc features of LLVM). Out of curiosity has this been attempted before? Thanks a lot! -Arthur --e0cb4e8877051dbcaa04a05a138d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I am digging into the lambda language (as printed by -dlambda and as repres= ented by the types in bytecomp/lambda.ml).= And it mostly makes sense however I still have a constant stream of questi= ons. So I was wondering: Is there any internal documentation for the lambda= IL?

The specific questions on my mind at the moment are:
1. How are type= s represented in the lambda IL? (they seem to be implicit but it's not = clear) This is especially an issue with polymorphic primitives like "f= ield" and "apply".
2. What do each of the operation (primitive and lambda) mean? What do they = do and what types to they imply (if that's handled that way)?

Ju= st for some background I am a grad student in a compilers course and I am l= ooking to build a simple LLVM code generator that takes lambda and output L= LVM bytecode (allowing it to use all the fun JIT and optimization, etc feat= ures of LLVM). Out of curiosity has this been attempted before?

Thanks a lot!
-Arthur
--e0cb4e8877051dbcaa04a05a138d--