English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2009-03-05 (20:39)
From: Jon Harrop <jon@f...>
Subject: Re: [Caml-list] stl?
On Thursday 05 March 2009 09:09:14 Richard Jones wrote:
> On Thu, Mar 05, 2009 at 01:06:34AM +0000, Jon Harrop wrote:
> > Indeed. Which raises the question of how I should put an OCaml front
> > end onto HLVM...
> Use the output of camlp4 (the AST).  It's reasonably well documented
> in the camlp4 wiki.

I can parse it easily enough. The type inference and checking is the hard 
part. I'm afraid that OCaml's current implementation might not be very useful 
in that respect anyway if it removes types too soon and makes assumptions 
about the run-time representation.

Perhaps the output of -dlambda would be suitable:

$ cat >a.ml
type t = A of int | B of int | C of int;;
function A n -> n | B n -> 1+n | C n -> 2+n;;
$ ocamlc -dlambda a.ml -o a 2>a.lambda
$ cat a.lambda
(setglobal A!
    (function param/72
      (switch* param/72
       case tag 0: (field 0 param/72)
       case tag 1: (+ 1 (field 0 param/72))
       case tag 2: (+ 2 (field 0 param/72))))
    (makeblock 0)))

Is this format documented anywhere?

Dr Jon Harrop, Flying Frog Consultancy Ltd.