caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Alain Frisch <alain@frisch.fr>
To: Richard Jones <rich@annexia.org>
Cc: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Re: OCaml and kernels
Date: Wed, 19 Aug 2009 21:31:39 +0200	[thread overview]
Message-ID: <4A8C531B.4040404@frisch.fr> (raw)
In-Reply-To: <20090819163100.GA4320@annexia.org>

Richard Jones wrote:
> On Wed, Aug 19, 2009 at 09:43:18PM +0900, Alexander Danilov wrote:
>> + out of box support for native executables creation for win32/mingw
> 
> Not sure what you mean here, because I've built Win32 native
> executables from OCaml using both the INRIA-supplied binaries and our
> cross-compiler.  Works perfectly well out of the box.

I guess Alexander means that ocamlopt requires external tools (assembler 
and linker). This can be an issue since masm/link cannot be 
redistributed (and cannot be found in a standalone package, not embedded 
in a full Visual Studio installation) and some people are reluctant to 
redistribute or install gas/ld (for whatever reason).

FWIW, we faced this problem at LexiFi, so we developed a direct COFF/x86 
backend for ocamlopt (just a straightforward replacement for emit_nt.mlp 
that produces x86 opcodes and put them in a .obj file). This avoids the 
need for an external assembler. We also extended flexlink with a 
stand-alone mode in order to produce DLLs from COFF files without 
relying on an external linker. This is enough to build .cmxs files from 
OCaml code, and this was enough for our needs. To produce an executable, 
more work would be needed on flexlink.


-- Alain



  reply	other threads:[~2009-08-19 19:31 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-11 21:50 Jane Street is hiring (as if you didn't already know) Yaron Minsky
2009-08-11 21:58 ` Yaron Minsky
2009-08-16 16:57 ` [Caml-list] " Romain Beauxis
2009-08-16 18:56   ` Yaron Minsky
2009-08-16 23:29     ` Andrej Bauer
2009-08-17 19:59     ` Romain Beauxis
2009-08-17 20:02       ` Alexy Khrabrov
2009-08-17 20:26         ` Romain Beauxis
2009-08-17 20:49           ` Kip Macy
2009-08-17 21:30           ` Matthew Macy
2009-08-17 22:44             ` Erik de Castro Lopo
2009-08-17 23:22               ` Matthew Macy
2009-08-17 23:33                 ` Erik de Castro Lopo
2009-08-18 10:59                   ` Florian Hars
2009-08-18 11:07                     ` Erik de Castro Lopo
2009-08-18 15:21                       ` OCaml and kernels (was: Re: [Caml-list] Jane Street is hiring) Richard Jones
2009-08-18 15:45                         ` David MENTRE
2009-08-18 15:56                         ` Philippe Strauss
2009-08-19 12:43                         ` OCaml and kernels Alexander Danilov
2009-08-19 16:31                           ` [Caml-list] " Richard Jones
2009-08-19 19:31                             ` Alain Frisch [this message]
2009-08-19  6:46                       ` [Caml-list] Jane Street is hiring (as if you didn't already know) Florian Hars
2009-08-18 10:21               ` Richard Jones

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=4A8C531B.4040404@frisch.fr \
    --to=alain@frisch.fr \
    --cc=caml-list@yquem.inria.fr \
    --cc=rich@annexia.org \
    /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).