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 B71D17F8FC for ; Mon, 9 Jun 2014 20:59:26 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of yminsky@janestreet.com) identity=pra; client-ip=38.105.200.115; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="yminsky@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of yminsky@janestreet.com designates 38.105.200.115 as permitted sender) identity=mailfrom; client-ip=38.105.200.115; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="yminsky@janestreet.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@mxout1.mail.janestreet.com) identity=helo; client-ip=38.105.200.115; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="yminsky@janestreet.com"; x-sender="postmaster@mxout1.mail.janestreet.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqMDAELxlVMmachznGdsb2JhbABZg19ZgmynewaCVZY7AYEKHg8BAQEBAQYWCTyEAwEBAQQSER0BASwLAQ8LCwMKAgIJHQICIhIBBQEKBAENBhMSCAiIDAMRAwIIoG9qijB3hQEBBZQOA4VREQaBKoQziCc1MweCdYFMhGQFkGyEUIFCkBIYKYUI X-IPAS-Result: AqMDAELxlVMmachznGdsb2JhbABZg19ZgmynewaCVZY7AYEKHg8BAQEBAQYWCTyEAwEBAQQSER0BASwLAQ8LCwMKAgIJHQICIhIBBQEKBAENBhMSCAiIDAMRAwIIoG9qijB3hQEBBZQOA4VREQaBKoQziCc1MweCdYFMhGQFkGyEUIFCkBIYKYUI X-IronPort-AV: E=Sophos;i="4.98,1003,1392159600"; d="scan'208";a="66442546" Received: from mxout2.mail.janestreet.com (HELO mxout1.mail.janestreet.com) ([38.105.200.115]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 09 Jun 2014 20:59:25 +0200 Received: from tot-smtp.delacy.com ([172.27.22.15] helo=tot-smtp) by mxout1.mail.janestreet.com with esmtps (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.82) (envelope-from ) id 1Wu4mx-0002SZ-KE for caml-list@inria.fr; Mon, 09 Jun 2014 14:59:23 -0400 Received: from tot-dmz-mxgoog1.delacy.com ([172.27.224.14] helo=mxgoog2.janestreet.com) by tot-smtp with esmtps (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Wu4mx-0006YI-Hf for caml-list@inria.fr; Mon, 09 Jun 2014 14:59:23 -0400 Received: from mail-lb0-f171.google.com ([209.85.217.171]) by mxgoog2.janestreet.com with esmtp (Exim 4.76) (envelope-from ) id 1Wu4mx-0005JP-D2 for caml-list@inria.fr; Mon, 09 Jun 2014 14:59:23 -0400 Received: by mail-lb0-f171.google.com with SMTP id 10so3353769lbg.30 for ; Mon, 09 Jun 2014 11:59:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=bYizPpz+eIaaVjOiW3jTieZUX83H03yxvx128b6TSDg=; b=k+I+G/T5qZU/YA/FQ1Db49aB54sU/JHsgmD8n7ndjdcxTDza8Gx9M4bU47RSLbc9Lm B6NzB8wKU+/gYckhfQlDQYT+LGH1QOISrUeLIdrZZ/6pFePb1H+roMTxNntfECxx/u2E XOfnsXAlf1J7S7LeU4rf96FemPHe/OnICQ6Jc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=bYizPpz+eIaaVjOiW3jTieZUX83H03yxvx128b6TSDg=; b=bP7perYYz+kMhj66X4cZkMgywBysoY1tyCN/zQrOwj0G7cj9X1AEsk1DuEFDYf5W4j 8JjSS9xstzRuR0RUmF9VpDH1FAtBJ4llyvEqdOKCrsKMChV8A7CwpUE1cwjf7ZLKDWGE MKvE0UPoB5pgS/VJwEGwx1LI3VrDA1FcuzdFuw2mhIdxmQ7UxQ+DvJgEuOwRLi0b2c+y rbASIITWxUTKDCQEr8du3icQ54ufkHITPSjv+x58autBKURdvL04I0F7gnEuiFNJPukp 5KEwgGknzNB9OQUPXqJaC/wc/xVRkO522sSqxq2pRQoRxUucoTMOzACgyLc6wgpn7UI/ y5QQ== X-Gm-Message-State: ALoCoQmifOtHkWHYdu/VaD81yMU498EWN+d8TvLr66/RqVi/kRulIqnVn+O+yzKwMviTP/PLqnyUQxHenCda1ITF/YK0507QWwXbd6bARFDhpuIF9Kh1t7czjJr2hISGCREO64q2Ojs5 X-Received: by 10.113.3.167 with SMTP id bx7mr2768333lbd.64.1402340362696; Mon, 09 Jun 2014 11:59:22 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.113.3.167 with SMTP id bx7mr2768328lbd.64.1402340362588; Mon, 09 Jun 2014 11:59:22 -0700 (PDT) Received: by 10.112.3.39 with HTTP; Mon, 9 Jun 2014 11:59:22 -0700 (PDT) In-Reply-To: References: Date: Mon, 9 Jun 2014 14:59:22 -0400 Message-ID: From: Yaron Minsky To: David Allsopp Cc: "caml-list@inria.fr" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Caml-list] Thoughts on targeting windows Core_kernel is pure OCaml, and so should work fine on Windows (and Javascri= pt!) y On Mon, Jun 9, 2014 at 11:23 AM, David Allsopp wro= te: > 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? Ther= e are other Jane Street libs which compile just fine on Windows. Batteries,= as others have noted, works out of the box. Usually, I find that the bigge= st problem in third party libs is in build systems (becoming less so with O= asis, OCamlbuild and so on) making na=C3=AFve decisions about Windows but t= hat doesn't usually take much patching. > > Most of what I do is Windows-oriented, but some of what I've done is Wind= ows 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 work= ing on Windows or perhaps that one of your developers is always working on = Windows or something... that should avoid accidentally selecting a Unix-onl= y library and only realising that a painfully long way down the road (or th= at the library you thought was cross-platform contains an assert false for = the function you need when running on Windows!). If you write something whi= ch 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 l= ibrary, even by hand, represents an insignificant amount of time compared w= ith reading its documentation, evaluating its samples and so on in the over= all process of working out whether I want to use a component... but apparen= tly the pain of not having a package manager really, really, really hurts p= eople 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