From: Jonathan Protzenko <jonathan.protzenko@gmail.com>
To: Bikal Gurung <bikal.gurung@lemaetech.co.uk>
Cc: caml-list@inria.fr, David Allsopp <dra-news@metastack.com>
Subject: Re: [Caml-list] Ocaml on windows
Date: Mon, 24 Jun 2013 12:11:05 +0200 [thread overview]
Message-ID: <51C81B39.8040400@gmail.com> (raw)
In-Reply-To: <CAB-rfD0vdWWtvVaBsJoXJeU63EXhuyAK-j6mifW8h9E4spB-Uw@mail.gmail.com>
On Mon 24 Jun 2013 12:01:06 PM CEST, Bikal Gurung wrote:
> Hi David,
>
> Thank you for your response. I have installed the official windows
> port of ocaml at http://protz.github.io/ocaml-installer/ . However, it
> mentions that MinGW/Msys is no longer supported. I rather use
> Mingw/Msys as well.
There are quite a few things that make working with msys painful, which
is the reason why I switched the installer to cygwin. The installer
still is a 32-bit native windows program, and still generates 32-bit
native windows programs. It's just that cygwin is an easy way to get a
toolchain and a unix-like development environment, which ocaml kind of
needs in order to work right (without it, you only get bytecode
compilation).
- The main problem is that OCaml is, by default, configured to search
executables from the toolchain with the i686-pc-mingw-whatever prefix,
that is, the one that the mingw-w64 compilers have, when installed
through cygwin.
- The second biggest problem is with flexdll which, IIRC, hardcodes the
use of the mingw-w64 compilers (32-bit compilers from the mingw-w64
project). Msys, on the other hand, uses the mingw compilers (the
original mingw project), and the location of the libraries /
executables is slightly different, or maybe flexdll doesn't auto-detect
the right locations for crt2.o and friends, meaning it's painful as you
have to manually export FLEXLINKFLAGS. At some point, it became almost
impossible to have that combination working. I think flexdll started to
hardcode the i686-pc-mingw prefix at some point, and there's no
ready-made, easy to install mingw-w64/msys bundle available, as far as
I know.
- OCamlbuild relies on bash being available in the path to run its
external commands ; an easy way to have this is to have a cygwin
development environment. This is a know issue that no one has stepped
up to fix on windows.
- Finally, the quoting conventions, IIRC, are subtly different between
mingw/msys and cygwin, and OCaml is tailored to cygwin.
For all these reasons, cygwin sounds like a better choice for you
working environment on windows. But I believe msys is still possible.
If there's something that prevents you from having it work properly, I
think we (the team) would be happy to know about it.
Cheers,
jonathan
>
> It seems ocamlbuild requires cygwin to work, has this been your
> experience too? If I build the latest ocaml from trunk - 4.02dev+fp
> will ocaml and other tools/utilities still work on pure MingWg/Msys
> environment?
>
> With regards to ocaml libraries, have you tried the Jane Street
> packages? Core, core_kernel ?
>
> Bikal Gurung
>
>
> On 24 June 2013 10:27, David Allsopp <dra-news@metastack.com
> <mailto:dra-news@metastack.com>> wrote:
>
> Bikal Gurung wrote:
> > I am looking to use ocaml to implement a project for my
> employer. However,
> > the environment is Windows OS. I am using cygwin and so far it
> seems to
> > work but curious on experiences others have on using ocaml on
> windows -
> > both as a development and deployment platform. Also has anyone
> tried using
> > opam on windows? Does it work?
>
> I've used the MinGW Windows port of OCaml for nearly a decade.
> Deployment of programs is the same as deploying anything else on
> Windows - deploying using executables built with ocamlopt is of
> course trivial as they have no dependencies beyond any libraries
> you choose to use.
>
> Partly because of how long I've used OCaml, I still build it from
> sources - but there are now several options including the packaged
> Windows installer, GODI/WODI, etc. Although Windows OCaml users
> are a minority, there are quite a few developers actively
> contributing (the recent 64-bit MinGW port was
> community-initiated, I think).
>
> Last time I looked, Windows support for opam appeared to be a todo
> list item, but I haven't looked in a while (laziness... I already
> have parallel build scripts of my own, so a package manager is
> lower down my priority list)
>
> HTH,
>
>
> David
>
>
next prev parent reply other threads:[~2013-06-24 10:11 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-24 9:07 Bikal Gurung
[not found] ` <E51C5B015DBD1348A1D85763337FB6D9CC8677FE@Remus.metastack.local>
2013-06-24 10:01 ` Bikal Gurung
2013-06-24 10:11 ` Jonathan Protzenko [this message]
2013-06-24 12:10 ` Malcolm Matalka
2013-06-24 17:18 ` Adrien Nader
2013-06-25 8:40 ` David Allsopp
2013-06-26 18:17 ` Adrien Nader
2013-06-26 19:55 ` David Allsopp
2013-06-24 17:21 ` Adrien Nader
2013-06-24 20:16 ` AW: " Gerd Stolpmann
2013-06-26 18:29 ` Adrien Nader
2013-06-26 18:46 ` Wojciech Meyer
[not found] <20130626113838.0643281793@sympa.inria.fr>
2013-06-26 12:02 ` r.3
2013-06-26 17:45 ` Bikal Gurung
2013-06-26 17:55 ` David Allsopp
2013-06-26 18:07 ` Bikal Gurung
2013-06-26 18:28 ` Wojciech Meyer
2013-06-26 18:12 ` Adrien Nader
2013-06-26 19:54 ` Alain Frisch
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=51C81B39.8040400@gmail.com \
--to=jonathan.protzenko@gmail.com \
--cc=bikal.gurung@lemaetech.co.uk \
--cc=caml-list@inria.fr \
--cc=dra-news@metastack.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