From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 56EB57F8FC for ; Mon, 9 Jun 2014 21:34:42 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of sebastien.mondet@gmail.com) identity=pra; client-ip=74.125.82.176; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="sebastien.mondet@gmail.com"; x-sender="sebastien.mondet@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of sebastien.mondet@gmail.com designates 74.125.82.176 as permitted sender) identity=mailfrom; client-ip=74.125.82.176; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="sebastien.mondet@gmail.com"; x-sender="sebastien.mondet@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-we0-f176.google.com) identity=helo; client-ip=74.125.82.176; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="sebastien.mondet@gmail.com"; x-sender="postmaster@mail-we0-f176.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8BABALllNKfVKwlGdsb2JhbABXg19ZgmyqVo0uiQ0BgQoIFg8BAQEBBwsLCRIqhAMBAQEDARIRHQEbEgsBAwELBgULAwoNHQICIgERAQUBCgQBDQYTEggIiAsBAwkIDaA9aosngXKDD5N6ChknAwpkhGMRAQUMjXhkBAeCdYFMBIRgBZBshFCBQpASGCmFCCE X-IPAS-Result: Aq8BABALllNKfVKwlGdsb2JhbABXg19ZgmyqVo0uiQ0BgQoIFg8BAQEBBwsLCRIqhAMBAQEDARIRHQEbEgsBAwELBgULAwoNHQICIgERAQUBCgQBDQYTEggIiAsBAwkIDaA9aosngXKDD5N6ChknAwpkhGMRAQUMjXhkBAeCdYFMBIRgBZBshFCBQpASGCmFCCE X-IronPort-AV: E=Sophos;i="4.98,1003,1392159600"; d="scan'208";a="66444550" Received: from mail-we0-f176.google.com ([74.125.82.176]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 09 Jun 2014 21:34:41 +0200 Received: by mail-we0-f176.google.com with SMTP id u56so1849799wes.7 for ; Mon, 09 Jun 2014 12:34:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=mAQMzZ2qro4QaFaYcafKP8304OMzE2bgYSUFhWs4AuA=; b=JoU8+VjBMEJmJYMH0N5j03E+iwSWpt1a2RUfDU9pw9d1Erhx3AXwXXbsgqDQljzG6U xu2C9oPRHpIWOLvtwlTcXfWqk6xFpEvPclFvbBSMKPiq+Xqr4m0EeLGV42aFdCfYgtQk W3Oq5w0hU2cPXE++6g7b5zx/aiMKIYKQP0GjQ7nRXR9+RAd+UpTZdIBNzrfFb31Dv9KC uZMLCu99EjyEawPAbE0efqdwuRNv+Uuh81d/PZ+eDv64VtnDBXxzLG8pJ9pRYnSbNues BviO22FmV+608RpJiXQx+Y7qWtEhpFaXc6O/blub/OdUYbZRV+qHLz1bz4gBOBrYVCqz yHjw== X-Received: by 10.194.240.33 with SMTP id vx1mr7936183wjc.88.1402342480909; Mon, 09 Jun 2014 12:34:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.217.65.136 with HTTP; Mon, 9 Jun 2014 12:34:20 -0700 (PDT) In-Reply-To: References: From: Sebastien Mondet Date: Mon, 9 Jun 2014 15:34:20 -0400 Message-ID: To: Yaron Minsky Cc: David Allsopp , "caml-list@inria.fr" Content-Type: multipart/alternative; boundary=001a11c1b5f06d9db504fb6c4d90 Subject: Re: [Caml-list] Thoughts on targeting windows --001a11c1b5f06d9db504fb6c4d90 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, Jun 9, 2014 at 2:59 PM, Yaron Minsky wrote: > Core_kernel is pure OCaml, and so should work fine on Windows (and > Javascript!) > > Actually some dependencies of core_kernel have C code, like bin_prot: https://github.com/janestreet/bin_prot/blob/master/lib/blit_stubs.c > y > > On Mon, Jun 9, 2014 at 11:23 AM, David Allsopp > wrote: > > William wrote: > >> we are considering using OCaml for a rather large project, > >> the bulk of which will be networking and encryption. OCaml > >> seems to meet our needs with one exception: we'd like to > >> target windows (as well as linux & mac) and we got the > >> impression that this would be complicated -- we gathered > >> that neither jane street's Core nor OPAM are windows compatible. > > > > It's more complicated than Linux (& Mac), but not overly so. > > > >> Would still recommend using OCaml? Are there workarounds, or > >> other libraries that would replace Core? > > > > I believe Core_kernel aims to be the platform-neutral parts of core? > There are other Jane Street libs which compile just fine on Windows. > Batteries, as others have noted, works out of the box. Usually, I find th= at > the biggest problem in third party libs is in build systems (becoming less > so with Oasis, OCamlbuild and so on) making na=C3=AFve decisions about Wi= ndows > but that doesn't usually take much patching. > > > > Most of what I do is Windows-oriented, but some of what I've done is > Windows and Linux. My experience is that it's important to keep Windows in > the picture early on to avoid pain later - so ensure that daily builds are > working on Windows or perhaps that one of your developers is always worki= ng > on Windows or something... that should avoid accidentally selecting a > Unix-only library and only realising that a painfully long way down the > road (or that the library you thought was cross-platform contains an asse= rt > false for the function you need when running on Windows!). If you write > something which works on Windows in OCaml it will probably translate with > little pain to Linux but the reverse isn't necessarily true. > > > > While OPAM is great, I personally find that downloading and compiling a > library, even by hand, represents an insignificant amount of time compared > with reading its documentation, evaluating its samples and so on in the > overall process of working out whether I want to use a component... but > apparently the pain of not having a package manager really, really, really > hurts people coming from the Unix world ;o) > > > > HTH, > > > > > > David > > > > -- > > Caml-list mailing list. Subscription management and archives: > > https://sympa.inria.fr/sympa/arc/caml-list > > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > > Bug reports: http://caml.inria.fr/bin/caml-bugs > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > --001a11c1b5f06d9db504fb6c4d90 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable



On Mon, Jun 9, 2014 at 2:59 PM, Yaron Minsky <= yminsky@janestr= eet.com> wrote:
Core_kernel is pure OCaml= , and so should work fine on Windows (and Javascript!)


Actually some dependencies of core_kernel have C code, lik= e bin_prot:
https://github.com/janestreet/bin_prot/blob/master/lib= /blit_stubs.c


=C2=A0
y

On Mon, Jun 9, 2014 at 11:23 AM, David Allsopp <dra-news@metastack.com> wrote:
> William wrote:
>> we are considering using OCaml for a rather large project,
>> the bulk of which will be networking and encryption. OCaml
>> seems to meet our needs with one exception: we'd like to
>> target windows (as well as linux & mac) and we got the
>> impression that this would be complicated -- we gathered
>> that neither jane street's Core nor OPAM are windows compatibl= e.
>
> It's more complicated than Linux (& Mac), but not overly so. >
>> Would still recommend using OCaml? Are there workarounds, or
>> other libraries that would replace Core?
>
> I believe Core_kernel aims to be the platform-neutral parts of core? T= here are other Jane Street libs which compile just fine on Windows. Batteri= es, as others have noted, works out of the box. Usually, I find that the bi= ggest problem in third party libs is in build systems (becoming less so wit= h Oasis, OCamlbuild and so on) making na=C3=AFve decisions about Windows bu= t that doesn't usually take much patching.
>
> Most of what I do is Windows-oriented, but some of what I've done = is Windows and Linux. My experience is that it's important to keep Wind= ows in the picture early on to avoid pain later - so ensure that daily buil= ds are working on Windows or perhaps that one of your developers is always = working on Windows or something... that should avoid accidentally selecting= a Unix-only library and only realising that a painfully long way down the = road (or that the library you thought was cross-platform contains an assert= false for the function you need when running on Windows!). If you write so= mething which works on Windows in OCaml it will probably translate with lit= tle pain to Linux but the reverse isn't necessarily true.
>
> While OPAM is great, I personally find that downloading and compiling = a library, even by hand, represents an insignificant amount of time compare= d with reading its documentation, evaluating its samples and so on in the o= verall process of working out whether I want to use a component... but appa= rently the pain of not having a package manager really, really, really hurt= s people coming from the Unix world ;o)
>
> HTH,
>
>
> David
>
> --
> Caml-list mailing list. =C2=A0Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports:
http://caml.inria.fr/bin/caml-bugs

--
Caml-list mailing list. =C2=A0Subscription management and archives:
ht= tps://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs
--001a11c1b5f06d9db504fb6c4d90--