caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Soegtrop, Michael" <michael.soegtrop@intel.com>
To: "caml-list@inria.fr" <caml-list@inria.fr>
Subject: [Caml-list] How to handle system decencies in Ocaml (like O_ASYNC not implemented in cygwin)
Date: Fri, 6 May 2016 08:48:27 +0000	[thread overview]
Message-ID: <0F7D3B1B3C4B894D824F5B822E3E5A172CEEEA4D@IRSMSX102.ger.corp.intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1405 bytes --]

Dear Ocaml users,

I am working on compiling core with opam on cygwin. My plan is to integrate this with the work of whitequark (MinGW cross opam for Linux) to have a MinGW cross opam on cygwin.

I already have a convenient script to setup cygwin with all modules and to compile opam and it works fine. Just when compiling core, there are two Unix features not implemented in cygwin. One is O_ASYNC. It is easy to patch it away and also easy to make this system dependent in the C file (unix_stubs.c), but I wonder how I could handle this in a portable way in the OCaml wrapper. It looks like this:

module Open_flags = struct
  external append    : unit -> Int63.t = "unix_O_APPEND"
  external async     : unit -> Int63.t = "unix_O_ASYNC"
  external cloexec   : unit -> Int63.t = "unix_O_CLOEXEC"

Is there some way to have async on normal Linux and not have it on cygwin?

Btw.: Opam, batteries and 34 out of the 35 modules of core compile fine on cygwin and the remaining module just has two errors, so I think it is worthwhile to fix this.
Best regards,
Michael

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

[-- Attachment #2: Type: text/html, Size: 3987 bytes --]

             reply	other threads:[~2016-05-06  8:48 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-06  8:48 Soegtrop, Michael [this message]
2016-05-06 14:33 ` Yaron Minsky
2016-05-06 21:41   ` Jérôme Benoit
2016-05-07  8:37     ` Soegtrop, Michael
2016-05-07 14:23       ` Jérôme Benoit
2016-05-09  7:08         ` Soegtrop, Michael
2016-05-14  8:50           ` Adrien Nader

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=0F7D3B1B3C4B894D824F5B822E3E5A172CEEEA4D@IRSMSX102.ger.corp.intel.com \
    --to=michael.soegtrop@intel.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).