caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: David Allsopp <dra-news@metastack.com>
To: "caml-list@inria.fr" <caml-list@inria.fr>
Subject: RE: [Caml-list] ocamlbuild on cygwin
Date: Thu, 23 Oct 2014 23:16:50 +0000	[thread overview]
Message-ID: <E51C5B015DBD1348A1D85763337FB6D9E965C469@Remus.metastack.local> (raw)
In-Reply-To: <CAO-kHdHB7iot8bhWCNGfWxNn=M8GPC2KRE5a5RePhjbadw9Oew@mail.gmail.com>

Gergely Szilvasy wrote:
> I'm trying to get as much of the ocaml/opam stack working on cygwin as possible
> (as if there wasn't enough pain and suffering in the world already).

That's some pain! Not that it affects the bug you describe, but do you have a specific reason to use the Cygwin build, and not the MinGW/MSVC ports?

> Opam compiles without any issues, and I can switch to (let's say) 4.02.1 cleanly.
>
> However, ocamlbuild fails for me in "opam install react" with the following error:
>
> "Failure: ocamlfind not found on path, but -no-ocamlfind not used."
>
> (Note that react is required by utop, for example, so it's a pretty basic requirement.)
>
> This is where the exception is thrown:
>
> https://github.com/ocaml/ocaml/blob/trunk/ocamlbuild/options.ml#L295
>
> It is the result of Command.search_in_path not finding ocamlfind:
>
> https://github.com/ocaml/ocaml/blob/trunk/ocamlbuild/command.ml#L130
>
> Which appears to be caused by file_or_exe_exists not appending ".exe" to the filename when Sys.os_type =
> "Cygwin" (which is what I see as os_type when compiling on cygwin):
>
> https://github.com/ocaml/ocaml/blob/trunk/ocamlbuild/command.ml#L128

This test is weak, and the behaviour is a bug (=> raise a report in Mantis). ocamlbuild should query the Config module from the compiler libs and do one of the following:

1. Add an extra value ext_exe : string which would be ".exe" for Windows builds (*including* Cygwin) and "" for everything else.
2. Instead of detecting Sys.os_type = "Cygwin", instead do Filename.check_suffix Config.default_executable_name ".exe" (I can't check on this machine, but I'm fairly sure that ocamlc -config will shows the normal camlprog.exe for default_executable_name?)

> In any case, I'm pretty sure this fairly simple bug is not a (very) recent 
> regression, so I'm wondering if anybody cares about opam/ocaml on cygwin? 
> I'd really like to use opam, because it looks to me this is the community's 
> preferred way of distributing bits. My question is, really, what is the 
> status of ocaml/opam on cygwin? Is there an alternative environment for 
> Windows + opam that works better? (I know about wodi, but I'd prefer 
> opam.) Is it worth spending time fixing these issues on cygwin?

Cygwin is a targeted platform, so bugs in it are important - but I think that the small number of Windows OCaml users use the MinGW or MSVC ports so they may take a while to be noticed!

Opam status on Windows is partially recorded in https://github.com/ocaml/opam/issues/246.

HTH,


David

  reply	other threads:[~2014-10-23 23:17 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-23 20:14 Gergely Szilvasy
2014-10-23 23:16 ` David Allsopp [this message]
2014-10-24 14:54   ` Leonardo Laguna Ruiz

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=E51C5B015DBD1348A1D85763337FB6D9E965C469@Remus.metastack.local \
    --to=dra-news@metastack.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).