caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Elliott Oti <elliott@elliottoti.com>
To: caml-list@inria.fr
Subject: Re: [Caml-list] Road to native windows OCaml...
Date: Tue, 14 Oct 2008 07:43:41 +0200	[thread overview]
Message-ID: <48F4318D.7070607@elliottoti.com> (raw)
In-Reply-To: <200810131935.53365.kuba@mareimbrium.org>

Ocaml works fine on windows with the mingw and msys toolchain. Cygwin is 
not needed. What you are doing with (1) and (2) would be duplicating msys.

With regards to (4), you need at the very least to be able to parse 
header files correctly, & provide link stubs. This would again be 
duplicating parts of the mingw toolchain.

In addition, binding to C code is not just a matter of wrapping the bare 
C functions. First C function declarations are underspecified (is char* 
a string? is int* an array of ints or a pointer to an in-out parameter? 
How long is the array?). Second, C types do not always match easily to 
ML types (converting C to ML is easy, the other way round is often 
harder). Third, it is often necessary to do extra processing in an FFI 
function i.e. between receiving the ocaml parameters and calling the c 
function.

(3) would be nice, though. And fleshing out the non-functional win32 
stubs in the Unix library (fork etc).

Regards,

Elliott

Kuba Ober wrote:
> I've looked briefly at what it'd take to have OCaml
> fully working natively (with mingw/VS), without any Cygwin
> needed for compilation.
>
> What I've surmised is this:
>
> 1. I need some "hacked up" make implementation, good enough just
>    to let it build; this would be a-la web2c in concept. This "make"
>    would implement bits and pieces of make, bash and sed -- just
>    the bare minimum needed to get it going. The goal is for people to
>    have bare mingw or VC and have OCaml build for them.
>    The functionality needed is quite minimal, so requiring people to
>    actually pull full sed, bash and make would not be necessary.
>    I would prototype it in Qt (it's quicker that way),
>    and then port it to "bare" C++ as time permits.
>
> 2. I need to get OCaml to use nasm instead of masm. I would go as far
>    as completely pruning any masm references from OCaml -- there is just
>    no need for masm when a good, free alternative exists. nasm is a single
>    standalone executable -- you can't get much better than that. Heck, it
>    works on unixes too, so it could be used on all platforms. gas is horrible
>    too -- it's only raison-d'etre is to process output from gcc.
>    Masm exists in "alternate reality" and the legality of its use is dubious.
>    So-called masm9/masm10 (non-Microsoft products) have licenses which are a
>    slap in the face and don't deserve a second look.
>
> 3. I need to look at the bytecode debugger and figure out why doesn't it work
>    on non-Cygwin builds.
>
> 4. I need to get OCaml to generate C binding code using assembly, without a
>    need for C compiler. It's easy enough and removes one big dependency from
>    OCaml. I don't know if OCaml side of things is expressive enough (whether
>    you can pass parameter/struct descriptions without use of C per se),
>    but it should generally work just fine.
>
> Can anyone add to/elaborate on this list?
>
> Cheers, Kuba
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
>   


  parent reply	other threads:[~2008-10-14  5:43 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-13 23:35 Kuba Ober
2008-10-13 23:47 ` [Caml-list] " Seo Sanghyeon
2008-10-14 21:32   ` Kuba Ober
2008-10-15  9:42     ` David Allsopp
2008-10-15 12:38       ` Kuba Ober
2008-10-15 13:04         ` Seo Sanghyeon
2008-10-15 14:32           ` Kuba Ober
2008-10-14  5:43 ` Elliott Oti [this message]
2008-10-14 21:35   ` Kuba Ober
2008-10-14  7:20 ` Sylvain Le Gall
2008-10-14 21:37   ` [Caml-list] " Kuba Ober
2008-10-15  5:52     ` Dmitry Bely
2008-10-15 13:50       ` Kuba Ober
2008-10-14  7:59 ` [Caml-list] " David Allsopp
2008-10-14  8:11   ` Daniel Bünzli
2008-10-14  9:19     ` Sylvain Le Gall
2008-10-14  9:41     ` Re : [Caml-list] " Adrien
2008-10-14 10:13       ` Re : " Sylvain Le Gall
2008-10-14 11:07         ` Re : [Caml-list] " Adrien
2008-10-14 11:23           ` Re : " Sylvain Le Gall
2008-10-14 19:39             ` Re : [Caml-list] " Adrien
2008-10-14 21:41           ` Re : [Caml-list] " Kuba Ober
2008-10-15  9:42             ` David Allsopp
2008-10-15 12:33               ` Kuba Ober
2008-10-14 21:39         ` Kuba Ober
2008-10-14 15:56       ` [Caml-list] " David Allsopp
2008-10-14 17:39       ` Re : " Dmitry Bely
2008-10-14 19:31         ` Re : " Adrien
2008-10-14  9:57     ` Mathias Kende
2008-10-14 21:38   ` Kuba Ober
2008-10-15  0:01     ` Sylvain Le Gall
2008-10-15 12:35       ` [Caml-list] " Kuba Ober
2008-10-15 12:54         ` Dmitry Bely
2008-10-15 13:18           ` Sylvain Le Gall
2008-10-15 14:35           ` [Caml-list] " Kuba Ober
2008-10-15 15:29             ` Dmitry Bely
2008-10-15 16:26               ` Kuba Ober
2008-10-15 16:39                 ` Xavier Leroy
2008-10-15  5:57     ` [Caml-list] " Dmitry Bely
2008-10-15  9:42     ` David Allsopp
2008-10-26 22:07   ` Markus E L
2008-10-14  9:25 ` Sylvain Le Gall
2008-10-14 18:19 ` Cross-compilation (was: Re: [Caml-list] Road to native windows OCaml...) Richard Jones
2008-10-15  0:04   ` Erik de Castro Lopo

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=48F4318D.7070607@elliottoti.com \
    --to=elliott@elliottoti.com \
    --cc=caml-list@inria.fr \
    /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).