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 E21257FC3D for ; Sat, 26 Sep 2015 19:10:30 +0200 (CEST) IronPort-PHdr: 9a23:wc1XTxzSTEqlkjLXCy+O+j09IxM/srCxBDY+r6Qd0e0SIJqq85mqBkHD//Il1AaPBtWHra8ewLqI+4nbGkU+or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6anHS+4HYoFwnlMkItf6KuStKU0p78h7760qaQSjsLrQL1Wal1IhSyoFeZnegtqqwmFJwMzADUqGBDYeVcyDAgD1uSmxHh+pX4p8Y7oGx48sgs/M9YUKj8Y79wDfkBVGxnYCgJ45jRvB7eSUOj+3gRGjEMmx1VBwTt4xTzX5O3uSz/4LlTwi6faOL7V7x8Yiil679uQRnuwHMGMTA+2G7akMA1l75cpAqkrhp5hYLZNtLGfMFid7/QKItJDVFKWdxcAmkYWtux Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=info@gerd-stolpmann.de; spf=None smtp.mailfrom=info@gerd-stolpmann.de; spf=None smtp.helo=postmaster@mout.kundenserver.de Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=pra; client-ip=212.227.17.24; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=mailfrom; client-ip=212.227.17.24; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.kundenserver.de) identity=helo; client-ip=212.227.17.24; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="postmaster@mout.kundenserver.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BGAQAz0QZWnBgR49Rdg3hpvzsGhX0CgSE7EQEBAQEBAQEBEAEBAQEBBg0JCSEugh2CCAEBBFUkEAtGVwYTCYgpCctVAQEBAQEBBAEBAQEehXiFeIRCJSYHgi4MQYExBYc0jjx+AowPgU+HMgSOTYNtN4I9HIFWbwGJIAEBAQ X-IPAS-Result: A0BGAQAz0QZWnBgR49Rdg3hpvzsGhX0CgSE7EQEBAQEBAQEBEAEBAQEBBg0JCSEugh2CCAEBBFUkEAtGVwYTCYgpCctVAQEBAQEBBAEBAQEehXiFeIRCJSYHgi4MQYExBYc0jjx+AowPgU+HMgSOTYNtN4I9HIFWbwGJIAEBAQ X-IronPort-AV: E=Sophos;i="5.17,593,1437429600"; d="asc'?scan'208";a="148675342" Received: from mout.kundenserver.de ([212.227.17.24]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Sep 2015 19:10:17 +0200 Received: from office1.lan.sumadev.de ([88.69.138.237]) by mrelayeu.kundenserver.de (mreue102) with ESMTPSA (Nemesis) id 0MeSdD-1a2dZ12CDP-00QDZm; Sat, 26 Sep 2015 19:10:16 +0200 Received: from [192.168.65.10] (unknown [192.168.65.10]) by office1.lan.sumadev.de (Postfix) with ESMTPSA id AD57BDC05D; Sat, 26 Sep 2015 19:10:15 +0200 (CEST) Message-ID: <1443287401.4442.61.camel@e130.lan.sumadev.de> From: Gerd Stolpmann To: Raoul Duke Cc: OCaml Date: Sat, 26 Sep 2015 19:10:01 +0200 In-Reply-To: References: <1443259698.4442.12.camel@e130.lan.sumadev.de> Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-eX6rJB+toGV7KdGiD3Ae" X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 X-Provags-ID: V03:K0:s3o8fYTj6PC2NIjbNgT/U4vAyn11aDk5WMNL8Dj8HSg68MQraMA n1J6LetJAomxEIlCar1wu+t+O2+3mLsb54Gw1g8MF2y8VwCDGZ5Au8fvkVMCNeYF+AHBvZ6 vdlXZPUJmMhmxkJ10b/PmwVZMh9xAXFJeAyEgyXNduzVbgPaAN0KNLXdKhe6wSBGAdpXQCQ H2aN6DIGm6ieSLt1Td83w== X-UI-Out-Filterresults: notjunk:1;V01:K0:mDj3bCA0rDw=:ZTcQJAcWkXMbBt9kQwnuCF ntypPFnI8L/Euh4Pth8PApDgzMLan4UoYi2Y3LCQsAJRnCy+SQbFV7PYh81t3bYzCu5cegAp9 RhY8vfdhVz6hLAbQb2Wan6wx3Jn9SWWVcygsBqd4Sod1uxr04bhID1zBsW8WtlcoxfoVh0Fj0 h1o5SwhAUhbECl37lu9CUn+wMNf0GFbNM9Xny4IKEC9LCuydaEqo83fcz1GfsVzQvG2KbXubM 5MfHNHIM0V36yRQWpbs6XEffwP9gucwSqVj51rcSEAiq/sTtqZdXkR5zKGSuNXn00XJeHqaZX Ygboe/sQPN38IitZT+6rRWc0pXXLC2yjDdT/Xu427sYOoxgR0VmY9VLEtmzEuDCz60/vFQyww vD66RV2qGxKWhpta+a2u7613TkskhxycMZo7pOq1cIO2MBbNdzXMwy6y77YWTkvlRUwURFc1q qBtL9qPHs/aJcSHndZi4gKlZdUHM8Vatz+2W+WcVFVyocZlxbMOTnHp+QTsqV9VUGfHceshCn 6AigH9Wo4amqOcbepN37MmMCS9jYWro4BqKGKvWe/afzFpffq+s+8TPYhTd+sQvB3ylJpedMf 42eoNrAX4RMUbDlbO0pRNVAh3k2iitLMiFz49TO4w7uy7t36Y6JN3CkJ6OCOU4awOvNWv18DP vEa3k4ztdD0ylSv0koSHlVdxbXAMJhs+6OS/cOSvggkGiEM651S013y6lyCS4fejuIH8= Subject: Re: [Caml-list] whither portability? --=-eX6rJB+toGV7KdGiD3Ae Content-Type: text/plain; charset="ISO-8859-15" Content-Transfer-Encoding: quoted-printable Am Samstag, den 26.09.2015, 05:48 -0700 schrieb Raoul Duke: > Exciting to hear! Thank you and your contributors for this work. I > know there are ways people can be parochial, but I have never been > able to fathom how the core OCaml team can ignore mobile so actively, > it seems. It is to sigh, oy veh. I wouldn't say it was "actively" ignored. It is a matter of resources, and - to some agree - also a matter of how important you think support for mobile is. And finally, the devices got first recently so powerful that it makes a lot of sense to target mobile/desktop/server in similar ways, in particular with the same dev languages. This is an important niche for OCaml because the choice of languages on mobile OS is somewhat restricted. > * Getting anything working as simply as possible would be a nice first > step, even if it isn't the most performant. I.e. bytecode. It seems > Apple has loosened up on that a bit over the years? And I wonder if > LLVM bytecode would be no problem with them now. As whitequark already said there is no need to back up to using bytecode. Both 32 and 64 bit ARM works (the latter is now required for Apple's appstore). There might be here and there uses for bytecode, though, e.g. if you need to compile code on the fly. > * FFI will be essential. It is one thing to have 2+2 working on > mobile, it is another to be able to get any real app work done. The FFI works in the normal way. You just need to ensure that you also cross-compile the wrapped library for the mobile device. If you compile C files with ocamlc/ocamlopt as driver it just works (and all tools basing on that work, e.g. ocamlbuild). If you invoke the C compiler directly you need to ensure to pass the right flags for cross-compiling (e.g. -arch arm64). I guess the biggest missing piece here is getting wrappers for the typical platform libraries. > * Ideally it has to integrate well with the platform toolchains, > including the preferred IDEs. E.g. if there's no good installer, if I > have to do a lot of work to build things, etc., then I'm way less > likely to even try to use it. I know that is work most people do not > like to do. I say that empirically. For the iOS support we are not yet that far. > * If you can find some commerical users and support, that could help > drive some of the above issues further faster (although of course the > vector along which they proceed is subjective). This is not as you think. The iOS port is actually driven by commercial users, which has two big advantages: developers have time, and there are plenty of testing opportunities. These users, however, don't have any problems with the FFI or need an IDE. This is just a matter of using development resources well. Let me just explain for what I need the iOS port. The company I'm working for developed a query compiler in OCaml for a new database system. This database backs a UI, and there is also a mobile version of it. Getting the compiler to mobile is fairly essential for the whole success of the product. Now, a compiler doesn't need much of the FFI as it only transforms some data (a query string into bytecode, an int array). External libs are not really needed. The UI is built with the platform tools (I think it is still in Objective C), and we deliver the query compiler simply as a normal library with a C header file to the UI team. I guess this is fairly typical of commercial users. There is some highly complex library written in OCaml providing some functionality you don't want to duplicate in lower-level languages like Swift (sorry,..., a matter of perspective). The UI is better to develop with the platform tools, though (and keep in mind that there is usually a separate UI team not knowing anything about OCaml). Gerd --=20 ------------------------------------------------------------ Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de My OCaml site: http://www.camlcity.org Contact details: http://www.camlcity.org/contact.html Company homepage: http://www.gerd-stolpmann.de ------------------------------------------------------------ --=-eX6rJB+toGV7KdGiD3Ae Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJWBtFpAAoJEAaM4b9ZLB5TNz0H/2gDUgXJlax8PS0WAceVJg+U xebJBP14c4ZlXOCsZ1DHIOw0LYaY0VNJatrfmkmeKvmetq3QLuL2IdQedVPBHKHo T+0XVvRhqSRj6kKYLyYf7A6M3K4CMatudzRHdGBCQcJQ5JsGj55v09DdwaOxwQVu mzbHeJIvrRzC9hmdJubS4d2/T8IOEfc+VsUxbRtoWyCroThS7CdApXAUtl6EMBgX pC0/1aU14znhVCf1WlWsAZvnhECqVHxkQvKypun6Pzjkjq7UGwGPpIGmzy3mdkkP dtf6E/E8SZiBcM+Jpgh9RkQZzlGNyhmilgNkZ34mdtPSLt2QODUkN1m7YM/TzTI= =kG5X -----END PGP SIGNATURE----- --=-eX6rJB+toGV7KdGiD3Ae--