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 1F9E77F71A; Fri, 11 Apr 2014 15:12:53 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of jerome.vouillon@pps.univ-paris-diderot.fr) identity=pra; client-ip=194.254.61.138; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jerome.vouillon@pps.univ-paris-diderot.fr"; x-sender="jerome.vouillon@pps.univ-paris-diderot.fr"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of jerome.vouillon@pps.univ-paris-diderot.fr) identity=mailfrom; client-ip=194.254.61.138; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jerome.vouillon@pps.univ-paris-diderot.fr"; x-sender="jerome.vouillon@pps.univ-paris-diderot.fr"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@korolev.univ-paris7.fr) identity=helo; client-ip=194.254.61.138; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jerome.vouillon@pps.univ-paris-diderot.fr"; x-sender="postmaster@korolev.univ-paris7.fr"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnYBAELpR1PC/j2KnGdsb2JhbABZg0HGPhYOAQEBAQEGDQkJFCiCOCYBRT0WGAMCAQIBSwEMCAKHfAnMNJMrBJoVhR6EEIITiH8 X-IPAS-Result: AnYBAELpR1PC/j2KnGdsb2JhbABZg0HGPhYOAQEBAQEGDQkJFCiCOCYBRT0WGAMCAQIBSwEMCAKHfAnMNJMrBJoVhR6EEIITiH8 X-IronPort-AV: E=Sophos;i="4.97,842,1389740400"; d="scan'208";a="56673132" Received: from korolev.univ-paris7.fr ([194.254.61.138]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 11 Apr 2014 15:12:52 +0200 Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/46573) with ESMTP id s3BDCqlr012965; Fri, 11 Apr 2014 15:12:52 +0200 Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id 582542CCE60; Fri, 11 Apr 2014 15:12:52 +0200 (CEST) X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id UQd5gcbQqNbn; Fri, 11 Apr 2014 15:12:51 +0200 (CEST) Received: from [172.23.252.34] (unknown [172.23.252.34]) (Authenticated sender: vouillon) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id EB2032CCE5F; Fri, 11 Apr 2014 15:12:50 +0200 (CEST) Message-ID: <5347EA52.2070708@pps.univ-paris-diderot.fr> Date: Fri, 11 Apr 2014 15:12:50 +0200 From: =?ISO-8859-1?Q?J=E9r=F4me_Vouillon?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.3.0 MIME-Version: 1.0 To: caml-list@inria.fr, "ocsigen@inria.fr" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [194.254.61.138]); Fri, 11 Apr 2014 15:12:52 +0200 (CEST) X-Miltered: at korolev with ID 5347EA54.003 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 5347EA54.003 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/ X-j-chkmail-Score: MSGID : 5347EA54.003 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000 X-j-chkmail-Status: Ham X-Validation-by: jerome.vouillon@pps.univ-paris-diderot.fr Subject: [Caml-list] [ANN] Ocsigen Js_of_ocaml 2.0 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