caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] How to handle system decencies in Ocaml (like O_ASYNC not implemented in cygwin)
@ 2016-05-06  8:48 Soegtrop, Michael
  2016-05-06 14:33 ` Yaron Minsky
  0 siblings, 1 reply; 7+ messages in thread
From: Soegtrop, Michael @ 2016-05-06  8:48 UTC (permalink / raw)
  To: caml-list

[-- 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 --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-05-14  8:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-06  8:48 [Caml-list] How to handle system decencies in Ocaml (like O_ASYNC not implemented in cygwin) Soegtrop, Michael
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

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).