caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Stéphane Glondu" <steph@glondu.net>
To: oleg@okmij.org
Cc: caml-list@inria.fr, ontologiae@gmail.com, caml@inria.fr
Subject: Re: [Caml-list] Why NOT to compile OCaml via C
Date: Fri, 09 Dec 2011 08:52:57 +0100	[thread overview]
Message-ID: <4EE1BE59.4020804@glondu.net> (raw)
In-Reply-To: <20111209065758.94306.qmail@eeoth.pair.com>

Le 09/12/2011 07:57, oleg@okmij.org a écrit :
> There are at least two other reasons ocamlopt emitting assembly. One
> is garbage collection. OCaml GC is precise. Therefore, when sweeping
> through the stack, GC has to know if 0x80aa4000 is an unboxed integer
> or a heap pointer. So-called frame tables generated by the compiler
> tell GC which stack slots contain OCaml values. GC ignores other slots
> and hence expensive tests it had to do otherwise. One can build frame
> tables only when one has full control of the generated code and the
> frame layout. The third reason is exceptions. In OCaml, exceptions are
> pervasive and should be fast. They are indeed well implemented, via
> special exception frames and a dedicated exception frame `register'
> (which is a real register on x64).

C sure is not a good target language, but assembly is not either.
The assembly backends of ocamlopt (and GHC... there is no support at all
on some Debian ports) look like a maintenance burden that their authors
obviously cannot cope with. I find the idea of making ocamlopt a GCC (or
LLVM) frontend the most sensible and constructive one I've seen in these
discussions.

However, one barrier is the licensing: QPL is incompatible with almost
any license (even QT does no longer use it!). Has it ever been
considered to switch the "public" license to e.g. GPLv3 (which looks
constraining enough, and compatible with GCC)?


Cheers,

-- 
Stéphane



  reply	other threads:[~2011-12-09  7:53 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-09  6:57 oleg
2011-12-09  7:52 ` Stéphane Glondu [this message]
2011-12-09  9:58   ` Gabriel Scherer
2011-12-09 10:06     ` [Caml-devel] " Jonathan Protzenko
2011-12-09 11:03     ` Mehdi Dogguy
2011-12-09 12:08     ` Benedikt Meurer
2011-12-09 12:37       ` Gabriel Scherer
2011-12-09 14:05         ` Benedikt Meurer
2011-12-09 14:30           ` Török Edwin
2011-12-09 14:51             ` Benedikt Meurer
2011-12-09 23:38             ` oliver
2011-12-09 21:22           ` Richard W.M. Jones
2011-12-10  9:36             ` Benedikt Meurer
2011-12-10 11:34   ` Jon Harrop
2011-12-09 23:01 ` oliver
2011-12-09 23:18 ` Goswin von Brederlow
2011-12-10  0:20   ` Till Varoquaux
2011-12-10  7:35   ` oleg
2011-12-10 15:40   ` Basile Starynkevitch
2011-12-10 23:56     ` Peter Hawkins
2011-12-11  8:24       ` Basile Starynkevitch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EE1BE59.4020804@glondu.net \
    --to=steph@glondu.net \
    --cc=caml-list@inria.fr \
    --cc=caml@inria.fr \
    --cc=oleg@okmij.org \
    --cc=ontologiae@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).