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 3B57B7F71A; Fri, 11 Apr 2014 15:36:35 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of jp.deplaix@gmail.com) identity=pra; client-ip=74.125.82.45; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jp.deplaix@gmail.com"; x-sender="jp.deplaix@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of jp.deplaix@gmail.com designates 74.125.82.45 as permitted sender) identity=mailfrom; client-ip=74.125.82.45; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jp.deplaix@gmail.com"; x-sender="jp.deplaix@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-wg0-f45.google.com) identity=helo; client-ip=74.125.82.45; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jp.deplaix@gmail.com"; x-sender="postmaster@mail-wg0-f45.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjUCACHvR1NKfVItlGdsb2JhbABZg0GDG0rBAT2BGxYOAQEBAQcLCwkSKoIlAQEBBAwXDwEFCAEbHAIDDAYDAgsNAgIFFgsCAgkDAgECARERAQUBHAYBDAgCh2MBAxEFCI0rkAuMDlGDDpdOChknDWSFfxEBBQyBHY1Kgm+BSQEDmGCBNYUehBCCE4NdQYRh X-IPAS-Result: AjUCACHvR1NKfVItlGdsb2JhbABZg0GDG0rBAT2BGxYOAQEBAQcLCwkSKoIlAQEBBAwXDwEFCAEbHAIDDAYDAgsNAgIFFgsCAgkDAgECARERAQUBHAYBDAgCh2MBAxEFCI0rkAuMDlGDDpdOChknDWSFfxEBBQyBHY1Kgm+BSQEDmGCBNYUehBCCE4NdQYRh X-IronPort-AV: E=Sophos;i="4.97,842,1389740400"; d="scan'208";a="56677785" Received: from mail-wg0-f45.google.com ([74.125.82.45]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 11 Apr 2014 15:36:34 +0200 Received: by mail-wg0-f45.google.com with SMTP id l18so5349331wgh.28 for ; Fri, 11 Apr 2014 06:36:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=zk1oh8F8du7d8Psn7PkV6MZi1XqdsBgsVu0hLczno/w=; b=TxuShrc+VMujLcKd/ibcT43XHjItzfdBsgwR5LD8a39J8pOGDCeMe3OakSHN2TEXMk TVh3X1gUpl3d9a5UCdyaY2OLBP3PoWuo35UwwYj82z3BcRi8i8I+hsn2D61/wbaKdkjq JM6A53UAo5M7LG/XLH2V9qcsl/g+fSdmknRdK8mlB29lkh5XNKwzW5WcCtc9Ir5MUWTO 4iuc5ndiW0cwxOVEkNzrJ56n+ymen9g3Jt/eJXbBfr0ADXMir4VFNaQGtet5pByDKU2E aM5qrTj6r9unEVf7s24rtybVvRu6QGKPGHMnjZTWpPObzs1r3iARpZNo7HnH9ssqekpU GJ1w== X-Received: by 10.194.110.100 with SMTP id hz4mr8923224wjb.50.1397223394283; Fri, 11 Apr 2014 06:36:34 -0700 (PDT) Received: from [128.93.188.199] (wifi-auth-188199.inria.fr. [128.93.188.199]) by mx.google.com with ESMTPSA id b2sm4532877wiz.15.2014.04.11.06.36.33 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 11 Apr 2014 06:36:33 -0700 (PDT) Message-ID: <5347EFE0.6050908@gmail.com> Date: Fri, 11 Apr 2014 15:36:32 +0200 From: Jacques-Pascal Deplaix User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.4.0 MIME-Version: 1.0 To: =?UTF-8?B?SsOpcsO0bWUgVm91aWxsb24=?= , caml-list@inria.fr, "ocsigen@inria.fr" References: <5347EA52.2070708@pps.univ-paris-diderot.fr> In-Reply-To: <5347EA52.2070708@pps.univ-paris-diderot.fr> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Caml-list] [ANN] Ocsigen Js_of_ocaml 2.0 Note also that this release includes an ocamlbuild plugin which can be used with ocaml >= 4.01. You can now build your javascript program with the following "steps": $ ls yourprogram.ml myocamlbuild.ml $ cat myocamlbuild.ml Ocamlbuild_plugin.dispatch Ocamlbuild_js_of_ocaml.dispatcher;; $ ocamlbuild -plugin-tags js_of_ocaml.ocamlbuild yourprogram.js Then yourprogram.js can be found in the _build directory The full Changelog is available here: https://github.com/ocsigen/js_of_ocaml/blob/089b051f4f819caa51036627846c35a194b9430c/CHANGES On 04/11/2014 03:12 PM, Jérôme Vouillon wrote: > Hi, > > We are happy to announce release 2.0 of Js_of_ocaml, the compiler from > OCaml bytecode to JavaScript. > > A lot of efforts has been put in reducing the size of the generated > JavaScript code. Much shorter variable names are used; unnecessary > whitespaces and semicolons are omitted; multiple occurrences of a same > constant are shared... The runtime is minified as well. You can expect > a space reduction of 15% to 20%. > > Recursive modules are now supported. Tail calls between mutually > recursive functions are optimized (using trampolines). In particular, > lexers produced by ocamllex are now properly optimized. > > The runtime now simulates a small filesystem (in memory), which makes > it possible to use the OCaml I/O functions. The standard outputs are > by default redirected to the JavaScript console, which is convenient > for debugging. > > A larger part of the OCaml libraries are supported: bigarrays, the > time-related functions of the Unix library. > > A number of incompatible changes have been made. In particular: > - JavaScript numbers are simply given type 'float' rather than type > 'float Js.t'; > - the compiler generates "strict mode" JavaScript; therefore, > 'Js.Unsafe.variable "this"' does not refer to the JavaScript > global object ("window" in browsers) anymore; you can use > 'Js.Unsafe.global' instead; > - runtime primitives are now wrapped together with the generated code > in a huge function so as not to pollute the global scope. > > LINKS > > Project home page http://ocsigen.org/js_of_ocaml/ > Download http://ocsigen.org/download/js_of_ocaml-2.00.tar.gz > Get source code git clone https://github.com/ocsigen/js_of_ocaml.git > Documentation http://ocsigen.org/js_of_ocaml/manual/ > > > Regards, > > -- Jérôme Vouillon and Hugo Heuzard