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 mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 379727F8FC for ; Tue, 10 Jun 2014 11:54:00 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of thomas.gazagnaire@gmail.com) identity=pra; client-ip=74.125.82.174; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="thomas.gazagnaire@gmail.com"; x-sender="thomas.gazagnaire@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of thomas.gazagnaire@gmail.com designates 74.125.82.174 as permitted sender) identity=mailfrom; client-ip=74.125.82.174; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="thomas.gazagnaire@gmail.com"; x-sender="thomas.gazagnaire@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-we0-f174.google.com) identity=helo; client-ip=74.125.82.174; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="thomas.gazagnaire@gmail.com"; x-sender="postmaster@mail-we0-f174.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqgBAFnVllNKfVKulGdsb2JhbABZg1+uG5Y7gQ8WDwEBAQEHCwsJEiqEAwEBAQMBEi4BLQsBAwELAQUFDgoNISETAQUBCgQBDQYTEggIiAwDCQgEAQifSWqQKJRCJwMKhUcRAQUMjD6BOjWDZYEWBIRgBZBsglaDPIU0hlaECEGBaYME X-IPAS-Result: AqgBAFnVllNKfVKulGdsb2JhbABZg1+uG5Y7gQ8WDwEBAQEHCwsJEiqEAwEBAQMBEi4BLQsBAwELAQUFDgoNISETAQUBCgQBDQYTEggIiAwDCQgEAQifSWqQKJRCJwMKhUcRAQUMjD6BOjWDZYEWBIRgBZBsglaDPIU0hlaECEGBaYME X-IronPort-AV: E=Sophos;i="4.98,1008,1392159600"; d="scan'208";a="79299149" Received: from mail-we0-f174.google.com ([74.125.82.174]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 10 Jun 2014 11:53:54 +0200 Received: by mail-we0-f174.google.com with SMTP id k48so7103424wev.19 for ; Tue, 10 Jun 2014 02:53:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=nW5W9sbc8nkuHUB21vA1OAVdVpZQJQr0m2R0pwK54Z8=; b=lr4TRyCP/E3BDIgl3igI5YP9VdMvA7YDtF3gAme0G1FUfJb1WMxZiAslJI19fc+MT7 XIbLNWt5eChXtu9/10Jed/N7+YzEG+/uWWjzf7sFFiogSmKfhYqBOKGh21KhJypGg6Km cksSk/vvpcnlP/kgM0RCZ9Uc6uVZAV4GOA4eWxSRT7g9JPj/FvrdoJXTlgmuAExdT4e0 l5TZw1rhEM60k1P6bHjtRnaOQalWvRDFqgFMNS7sy8JP/oQFHdRFETRKpiywQN3I4wUT VvJzBAjR1nTS0WLFt97CxRXI/mIX4OPm7tzjnlGUI+Y5SbEhfg0Q53ouFOyCTeDha80J lRmQ== X-Received: by 10.180.81.102 with SMTP id z6mr36064655wix.54.1402394033924; Tue, 10 Jun 2014 02:53:53 -0700 (PDT) Received: from [192.168.0.8] (cpc25-cmbg14-2-0-cust121.5-4.cable.virginm.net. [213.106.112.122]) by mx.google.com with ESMTPSA id f6sm19764843wiy.19.2014.06.10.02.53.51 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 10 Jun 2014 02:53:52 -0700 (PDT) Sender: Thomas Gazagnaire Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.2\)) From: Thomas Gazagnaire In-Reply-To: Date: Tue, 10 Jun 2014 10:53:51 +0100 Cc: Sebastien Mondet , David Allsopp , "caml-list@inria.fr" Content-Transfer-Encoding: quoted-printable Message-Id: <348BEEDF-E9B6-49CA-93D7-615603D75340@gazagnaire.org> References: To: Yaron Minsky X-Mailer: Apple Mail (2.1878.2) Subject: Re: [Caml-list] Thoughts on targeting windows > Indeed! I forgot about that last little bit. We killed most of the C, > but there's a bit left. That said, those should be pretty portable, > and can (and have been) stubbed out so it can work in a Javascript > context. Indeed, little changes are needed to compile core_kernel to javascript. See= https://github.com/janestreet/core_kernel/pull/8 Thomas >=20 > y >=20 > On Mon, Jun 9, 2014 at 3:34 PM, Sebastien Mondet > wrote: >>=20 >>=20 >>=20 >> On Mon, Jun 9, 2014 at 2:59 PM, Yaron Minsky wr= ote: >>>=20 >>> Core_kernel is pure OCaml, and so should work fine on Windows (and >>> Javascript!) >>>=20 >>=20 >> Actually some dependencies of core_kernel have C code, like bin_prot: >> https://github.com/janestreet/bin_prot/blob/master/lib/blit_stubs.c >>=20 >>=20 >>=20 >>>=20 >>> y >>>=20 >>> 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. >>>>=20 >>>> It's more complicated than Linux (& Mac), but not overly so. >>>>=20 >>>>> Would still recommend using OCaml? Are there workarounds, or >>>>> other libraries that would replace Core? >>>>=20 >>>> 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= that >>>> the biggest problem in third party libs is in build systems (becoming = less >>>> so with Oasis, OCamlbuild and so on) making na=EFve decisions about Wi= ndows >>>> but that doesn't usually take much patching. >>>>=20 >>>> 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 Window= s 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 wo= rking >>>> on Windows or something... that should avoid accidentally selecting a >>>> Unix-only library and only realising that a painfully long way down th= e 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 some= thing >>>> which works on Windows in OCaml it will probably translate with little= pain >>>> to Linux but the reverse isn't necessarily true. >>>>=20 >>>> While OPAM is great, I personally find that downloading and compiling a >>>> library, even by hand, represents an insignificant amount of time comp= ared >>>> 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, re= ally >>>> hurts people coming from the Unix world ;o) >>>>=20 >>>> HTH, >>>>=20 >>>>=20 >>>> David >>>>=20 >>>> -- >>>> 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 >>>=20 >>> -- >>> 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 >>=20 >>=20 >=20 > --=20 > 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