From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTPS id DAC5F5D4 for ; Tue, 19 Jun 2018 16:02:31 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.51,243,1526335200"; d="scan'208";a="332470743" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 19 Jun 2018 18:02:27 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 680F5824B7; Tue, 19 Jun 2018 18:02:27 +0200 (CEST) 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 E648F82474 for ; Tue, 19 Jun 2018 17:52:16 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=gabriel.scherer@gmail.com; spf=Pass smtp.mailfrom=gabriel.scherer@gmail.com; spf=None smtp.helo=postmaster@mail-it0-f49.google.com IronPort-PHdr: =?us-ascii?q?9a23=3AxXg+JRJfxUAvaU+WVtmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgRI/zxwZ3uMQTl6Ol3ixeRBMOHs68C07KempujcFRI2YyGvnEGfc4EfD4+ou?= =?us-ascii?q?JSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgpp?= =?us-ascii?q?POT1HZPZg9iq2+yo9JDffwVFiCChbb9uMR67sRjfus4KjIV4N60/0AHJonxGe+?= =?us-ascii?q?RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLd?= =?us-ascii?q?QgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9QLYpUjqg8qhrUgflhi?= =?us-ascii?q?cJOTA67W/ZlNB/gq1ArRK9vhxy2ZLYbJ2JOPd8eK7WYNMURXBGXsZUTyFPA5mz?= =?us-ascii?q?YJAVD+oAI+lYq5T2qUYSohu+GwasHv3gyiVVjXLx0q01yf8uERvH3AM+G9ICqm?= =?us-ascii?q?/Uo8n1NKgMS+C60rPIwC7Cb/NQwzf96ZLHfgovofGWRL99d9fax0coFwPAlFqQ?= =?us-ascii?q?qIrlMiuS1usRqWeb6u5gWfioi249pAF9ujmvxsE2ionInI0Z0F7E9T9/zY0oJt?= =?us-ascii?q?O4UFZ2bcC4HJZUrS2XNIt7Ttk8T211tys20LILtJq9cSMX0poo3QTfZOaCc4WQ?= =?us-ascii?q?4hLsSuKRITBgiXJgYr2/hhKy/VGhyu3gSsW4yVhKoyVBn9XWuXAN0BvT6seDSv?= =?us-ascii?q?Rj5EuuxTGP1wXL5uFFJ0A7i7bbJoY/zrIskpcfq0fOEy/slEnokaObeV8o9+es?= =?us-ascii?q?5uj/Z7XpvJ6cN4t6igHkNaQun9SyAesiPQcVRWib+Pqz1Ln58U3iXLpKjuM5kr?= =?us-ascii?q?PHv5DAPskbqau5DBVU0oYn8RqwEzCm0NEAkXkdMF1FYA6Hj5TuO1zWPP/3F/K/?= =?us-ascii?q?g1C1nDdvxvDGJaHhD47WLnnDlbfhZaxy51RdyAo119Bf5ohbBqsPIPLpCQfNs4?= =?us-ascii?q?nTBxo9exGvzvz8QIF234YaHGaOGbOxMaXIsFbO6Ph5cMeWY4pAlz/3Mfko47bV?= =?us-ascii?q?hn80g1IHNf2m1JENaX28WO9tI0iDbGDEg9EbEG5MsBBoH7+is0GLTTMGPyX6ZK?= =?us-ascii?q?k7/DxuUNv3X7eGfZikhfm65An+G5RXYm5cDVXVSCXncoyFX7EHbyfAe5Y9wAxB?= =?us-ascii?q?bqCoTsoa7T/rrBXzkuM1Ie/d+ylevpXmhoAsur/j0Coq/DkxNPyzlmGAS2Yuwz?= =?us-ascii?q?ENTj4ymaFj+QlzlgbF3q9/jPhVU9dU4qERXw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CoBQDUJSlbhjHWVdFdHAEBASEBAQUBA?= =?us-ascii?q?YNVPn8VE4M6P5RVgnWGH417gW8jgVSCcQKCchkHAQQzFQECAQEBAQEBAQEBEwE?= =?us-ascii?q?BAQgLCwgpIwyCNSKCZA4JBBkBOQMNBQMNBwgCJgIkEgEFAQ4BExuDHQGBZwMVD?= =?us-ascii?q?5AxjGWDHjyJVxGBIIFpM4JyBYNyJg2BLIFgAgYSeYcjJoFUP4EPgleEciGDGIJ?= =?us-ascii?q?VAocyJRsGhWyCXIhfBwJzeIQSgmOGL4E/QYM/h36KFYcvDyGBNoF0MxonKyExB?= =?us-ascii?q?oF8AQ8JaoELIBqDRYE+gmJ0hUA9MAGRPgEB?= X-IPAS-Result: =?us-ascii?q?A0CoBQDUJSlbhjHWVdFdHAEBASEBAQUBAYNVPn8VE4M6P5R?= =?us-ascii?q?VgnWGH417gW8jgVSCcQKCchkHAQQzFQECAQEBAQEBAQEBEwEBAQgLCwgpIwyCN?= =?us-ascii?q?SKCZA4JBBkBOQMNBQMNBwgCJgIkEgEFAQ4BExuDHQGBZwMVD5AxjGWDHjyJVxG?= =?us-ascii?q?BIIFpM4JyBYNyJg2BLIFgAgYSeYcjJoFUP4EPgleEciGDGIJVAocyJRsGhWyCX?= =?us-ascii?q?IhfBwJzeIQSgmOGL4E/QYM/h36KFYcvDyGBNoF0MxonKyExBoF8AQ8JaoELIBq?= =?us-ascii?q?DRYE+gmJ0hUA9MAGRPgEB?= X-IronPort-AV: E=Sophos;i="5.51,243,1526335200"; d="scan'208";a="269310840" Received: from mail-it0-f49.google.com ([209.85.214.49]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 19 Jun 2018 17:52:14 +0200 Received: by mail-it0-f49.google.com with SMTP id v83-v6so1078236itc.3 for ; Tue, 19 Jun 2018 08:52:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:from:date:message-id:subject:to :content-transfer-encoding; bh=TqNAIA33Pic/DSVXI7KMCM6UzZKJdDxzDfxtFLS9sqA=; b=X7PjDjEaLil6EiNq+S1x2awzpSYA90LSuQ6DlzcnSJkPCFSybcWud9hn/GWm0nd7F8 y/U4zraXUQc5m0I3vDHtUUgLCKiZwfszGOXmk3Oy7ie6oCHUAQ6rnoBMLXnrbz+mhNk3 FyKGpifACv+3yoZJuc/Qr6TF4rmJMU5jFtInjVJ5cf1IveKotz0bexguVYvnMe2WTecb fUrcZ6ZwbjZih3WO11LsVU6yEP9pNW4wpot7wuC2IGZPm6F25AW5XhqNzVgSz1cTq0Rp NT0OJrdVA+sqDwvJT+TBF3TRbLRVbZhT0YTRtFg9kWtcVmPhX0NP54PdsrwCcrAii0tA uTgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to:content-transfer-encoding; bh=TqNAIA33Pic/DSVXI7KMCM6UzZKJdDxzDfxtFLS9sqA=; b=SWDX6Kkby+6nFWp3NG0j8E+70E5O4CLuRbFG3x25MAqkg5SOzdhEDakvGtQkwSRP5c lEzhLAONfr5utHCYhtpEjv82eMbn1R3vKdvdt8NBff4wKcADTQdQCoY2BpCeJpvm3uok WO4Ju/5TASldoZt9kg9n6VTIyVT61kWEZohf9F+NAP718rBlf+skZFMBCfHVHmBOor9S u12uYnL/jj16O3JViiyMeoVi2IlDz5B6p2dOjVMbSX+qmUlEnbJp6MlCSv6n4GJW50Vm n2P9C9HCWCzVBDnMZJNtSJ6MnG1gb+CcbFzLLcQez6g53uhGzwLmuYf376JSFEDaygsy fyCQ== X-Gm-Message-State: APt69E2wUE4T2I5JZm4szT5yau6psVhndA5Hgb1CWIJwyEOooo+0g/uU 59HuF2SEgMPjgLPJoDfNUpLViS50YHg2c84YPf7Jew== X-Google-Smtp-Source: ADUXVKLubwkFTQob36xaU2QHps0lfij2ZWezn/OJRrDlqBITb20PU49GLMQmNK7seW6xSvBvZQ9ZcVmf0tVyi0NlibM= X-Received: by 2002:a24:1344:: with SMTP id 65-v6mr7525288itz.82.1529423533096; Tue, 19 Jun 2018 08:52:13 -0700 (PDT) MIME-Version: 1.0 Sender: gabriel.scherer@gmail.com Received: by 2002:a4f:8c56:0:0:0:0:0 with HTTP; Tue, 19 Jun 2018 08:51:32 -0700 (PDT) From: Gabriel Scherer Date: Tue, 19 Jun 2018 17:51:32 +0200 X-Google-Sender-Auth: K77rBaK99O-KntJTfOMQbAD1bTo Message-ID: To: caml users Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Validation-by: gabriel.scherer@gmail.com Subject: [Caml-list] OCaml 4.07.0+rc1 Reply-To: Gabriel Scherer X-Loop: caml-list@inria.fr X-Sequence: 16950 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Dear OCaml users, The release of OCaml version 4.07.0 is imminent. We have created a release candidate for your testing pleasure. Please download the sources, compile, install, and test your favourite software with it, and let us know whether it works for you. We want to know about any show-stopping bugs, especially in the compilation and installation phases. This release candidate is available as an opam switch 4.07.0+rc1, and as source archive at this address: https://caml.inria.fr/pub/distrib/ocaml-4.07/ Happy hacking, -- Gabriel Scherer for the OCaml team. Some highlights of this release are: - The way the standard library modules are organized internally has changed (GPR#1010): 1. the List module (for example) is now named Stdlib__list 2. a new Stdlib module contains a series of aliases such as `module List =3D Stdlib__list` 3. the Stdlib module is implicitly opened when type-checking OCaml programs (as Pervasives previously was), so that Stdlib.List can be accessed as just List, as before. This should be invisible to most users, although it is possible that some tools show the Stdlib. or Stdlib__ prefixes in messages. (You might want to report these situations as usability bugs.) The change prevents standard library modules from conflicting with end-user filenames (please avoid stdlib.ml and the stdlib__ prefix); we may introduce new standard library modules in the future with less fear of breaking user code. In particular, Float (GPR#1638) and Seq (GPR#1002) modules have now been added to the standard library. - The error messages caused by various typing errors have been improved to be easier to understand, in particular for beginners. (GPR#1505, GPR#1510) For example, > # while 1 do () done;; > ^ > Error: This expression has type int but an expression was expected of = type > bool now adds the extra explanation > because it is in the condition of a while-loop - Effort has been made to reduce the compilation time of flambda programs, and the size of the produced `.cmx` files when using the -Oclassic optimisation level. (GPR#1401, GPR#1455, GPR#1627, GPR#1665, GPR#1667) - The HTML manual has benefited from various style improvements and should look visually nicer than previous editions. (GPR#1741, GPR#1757, GPR#1767) A preview of this new manual is available at http://caml.inria.fr/pub/docs/manual-ocaml-4.07/ For comparison, the 4.06 manual uses the old style: http://caml.inria.fr/pub/docs/manual-ocaml-4.06/ - Since 4.01, it is possible to select a variant constructor or record field from a sub-module that is not opened in the current scope, if type information is available at the point of use. This now also works for GADT constructors. (GPR#1648) - The GC should handle the accumulation of custom blocks in the minor heap better; this solves some memory-usage issues observed by code which allocates a lot of small custom blocks, typically small bigarrays (GPR#1476) The full changelog is included below. (Changes that can break existing programs are marked with a "*") ### Language features: - MPR#6023, GPR#1648: Allow type-based selection of GADT constructors (Thomas Refis and Leo White, review by Jacques Garrigue and Gabriel Scher= er) - GPR#1546: Allow empty variants (Runhang Li, review by Gabriel Radanne and Jacques Garrigue) ### Standard library: - MPR#4170, GPR#1674: add the constant `Float.pi`. (Christophe Troestler, review by Damien Doligez) - MPR#6139, GPR#1685: Move the Bigarray module to the standard library. Kee= p the bigarray library as on overlay adding the deprecated map_file functions (J=C3=A9r=C3=A9mie Dimino, review by Mark Shinwell) - MPR#7690, GPR#1528: fix the float_of_string function for hexadecimal floa= ts with very large values of the exponent. (Olivier Andrieu) - GPR#1002: add a new `Seq` module defining a list-of-thunks style iterator. Also add `{to,of}_seq` to several standard modules. (Simon Cruanes, review by Alain Frisch and Fran=C3=A7ois Bobot) * GPR#1010: pack all standard library modules into a single module Stdlib which is the default opened module (Stdlib itself includes Pervasives) to= free up the global namespace for other standard libraries, while still allowin= g any OCaml standard library module to be referred to as Stdlib.Module). This is implemented efficiently using module aliases (prefixing all modules with Stdlib__, e.g. Stdlib__string). (J=C3=A9r=C3=A9mie Dimino, David Allsopp and Florian Angeletti, review by= David Allsopp and Gabriel Radanne) - GPR#1637: String.escaped is faster and does not allocate when called with= a string that does not contain any characters needing to be escaped. (Alain Frisch, review by Xavier Leroy and Gabriel Scherer) - GPR#1638: add a Float module. (Nicol=C3=A1s Ojeda B=C3=A4r, review by Alain Frisch and Jeremy Yallop) - GPR#1697: Tune [List.init] tailrec threshold so that it does not stack overflow when compiled with the Js_of_ocaml backend. (Hugo Heuzard, reviewed by Gabriel Scherer) ### Other libraries: - MPR#7745, GPR#1629: Graphics.open_graph displays the correct window title= on Windows again (fault introduced by 4.06 Unicode changes). (David Allsopp) * GPR#1406: Unix.isatty now returns true in the native Windows ports when passed a file descriptor connected to a Cygwin PTY. In particular, compil= er colors for the native Windows ports now work under Cygwin/MSYS2. (Nicol=C3=A1s Ojeda B=C3=A4r, review by Gabriel Scherer, David Allsopp, X= avier Leroy) - GPR#1451: [getpwuid], [getgrgid], [getpwnam], [getgrnam] now raise Unix e= rror instead of returning [Not_found] when interrupted by a signal. (Arseniy Alekseyev, review by Mark Shinwell and Xavier Leroy) - GPR#1477: raw_spacetime_lib can now be used in bytecode. (Nicol=C3=A1s Ojeda B=C3=A4r, review by Mark Shinwell) - GPR#1533: (a) The implementation of Thread.yield for system thread now uses nanosleep(1) for enabling better preemption. (b) Thread.delay is now an alias for Unix.sleepf. (Jacques-Henri Jourdan, review by Xavier Leroy and David Allsopp) ### Compiler user-interface and warnings: - MPR#7663, GPR#1694: print the whole cycle and add a reference to the manu= al in the unsafe recursive module evaluation error message. (Florian Angeletti, report by Matej Ko=C5=A1=C3=ADk, review by Gabriel Sc= herer) - GPR#1166: In OCAMLPARAM, an alternative separator can be specified as first character (instead of comma) in the set ":|; ," (Fabrice Le Fessant) - GPR#1358: Fix usage warnings with no mli file (Leo White, review by Alain Frisch) - GPR#1428: give a non dummy location for warning 49 (no cmi found) (Valentin Gatien-Baron) - GPR#1491: Improve error reporting for ill-typed applicative functor types, F(M).t. (Valentin Gatien-Baron, review by Florian Angeletti and Gabriel Radanne) - GPR#1496: Refactor the code printing explanation for unification type err= ors, in order to avoid duplicating pattern matches (Arma=C3=ABl Gu=C3=A9neau, review by Florian Angeletti and Gabriel Schere= r) - GPR#1505: Add specific error messages for unification errors involving functions of type "unit -> _" (Arthur Chargu=C3=A9raud and Arma=C3=ABl Gu=C3=A9neau, with help from Leo= White, review by Florian Angeletti and Gabriel Radanne) - GPR#1510: Add specific explanation for unification errors caused by type constraints propagated by keywords (such as if, while, for...) (Arma=C3=ABl Gu=C3=A9neau and Gabriel Scherer, original design by Arthur = Chargu=C3=A9raud, review by Fr=C3=A9d=C3=A9ric Bour, Gabriel Radanne and Alain Frisch) - GPR#1515: honor the BUILD_PATH_PREFIX_MAP environment variable to enable reproducible builds (Gabriel Scherer, with help from Ximin Luo, review by Damien Doligez) - GPR#1534: Extend the warning printed when (*) is used, adding a hint to suggest using ( * ) instead (Arma=C3=ABl Gu=C3=A9neau, with help and review from Florian Angeletti an= d Gabriel Scherer) - GPR#1552, GPR#1577: do not warn about ambiguous variables in guards (warning 57) when the ambiguous values have been filtered by a previous clause (Gabriel Scherer and Thomas Refis, review by Luc Maranget) - GPR#1554: warnings 52 and 57: fix reference to manual detailed explanation (Florian Angeletti, review by Thomas Refis and Gabriel Scherer) - GPR#1618: add the -dno-unique-ids and -dunique-ids compiler flags (S=C3=A9bastien Hinderer, review by Leo White and Damien Doligez) - GPR#1649 change compilation order of toplevel definitions, so that some warnings emitted by the bytecode compiler appear more in-order than before. (Luc Maranget, advice and review by Damien Doligez) - GPR#1806: add linscan to OCAMLPARAM options (Raja Boujbel) ### Code generation and optimizations: - MPR#7630, GPR#1401: Faster compilation of large modules with Flambda. (Pierre Chambart, report by Emilio Jes=C3=BAs Gallego Arias, Pierre-Marie P=C3=A9drot and Paul Steckler, review by Gabriel Scherer and Leo White) - MPR#7630, GPR#1455: Disable CSE for the initialization function (Pierre Chambart, report by Emilio Jes=C3=BAs Gallego Arias, review by Gabriel Scherer and Xavier Leroy) - GPR#1370: Fix code duplication in Cmmgen (Vincent Laviron, with help from Pierre Chambart, reviews by Gabriel Scherer and Luc Maranget) - GPR#1486: ARM 32-bit port: add support for ARMv8 in 32-bit mode, a.k.a. AArch32. For this platform, avoid ITE conditional instruction blocks and use simpler IT blocks instead (Xavier Leroy, review by Mark Shinwell) - GPR#1487: Treat negated float comparisons more directly (Leo White, review by Xavier Leroy) - GPR#1573: emitcode: merge events after instructions reordering (Thomas Refis and Leo White, with help from David Allsopp, review by Fr= =C3=A9d=C3=A9ric Bour) - GPR#1606: Simplify the semantics of Lambda.free_variables and Lambda.subs= t, including some API changes in bytecomp/lambda.mli (Pierre Chambart, review by Gabriel Scherer) - GPR#1613: ensure that set-of-closures are processed first so that other entries in the let-rec symbol do not get dummy approximations (Leo White and Xavier Clerc, review by Pierre Chambart) * GPR#1617: Make string/bytes distinguishable in the bytecode. (Hugo Heuzard, reviewed by Nicol=C3=A1s Ojeda B=C3=A4r) - GPR#1627: Reduce cmx sizes by sharing variable names (Flambda only) (Fuyong Quah, Leo White, review by Xavier Clerc) - GPR#1665: reduce the size of cmx files in classic mode by droping the bodies of functions that will not be inlined (Fuyong Quah, review by Leo White and Pierre Chambart) - GPR#1666: reduce the size of cmx files in classic mode by droping the bodies of functions that cannot be reached from the module block (Fuyong Quah, review by Leo White and Pierre Chambart) - GPR#1686: Turn off by default flambda invariants checks. (Pierre Chambart) - GPR#1707: Add [Closure_origin.t] to trace inlined functions to prevent infinite loops from repeatedly inlining copies of the same function. (Fu Yong Quah) - GPR#1740: make sure startup.o is always linked in when using "-output-complete-obj". Previously, it was always linked in only on some platforms, making this option unusable on platforms where it wasn't (J=C3=A9r=C3=A9mie Dimino, review by S=C3=A9bastien Hinderer and Xavier L= eroy) ### Runtime system: - MPR#6411, GPR#1535: don't compile everything with -static-libgcc on mingw= 32, only dllbigarray.dll and libbigarray.a. Allows the use of C++ libraries w= hich raise exceptions. (David Allsopp) - MPR#7100, GPR#1476: trigger a minor GC when custom blocks accumulate in minor heap (Alain Frisch, report by talex, review by Damien Doligez, Leo White, Gabriel Scherer) - GPR#1431: remove ocamlrun dependencies on curses/terminfo/termcap C libra= ry (Xavier Leroy, review by Daniel B=C3=BCnzli) - GPR#1478: The Spacetime profiler now works under Windows (but it is not y= et able to collect profiling information from C stubs). (Nicol=C3=A1s Ojeda B=C3=A4r, review by Xavier Leroy, Mark Shinwell) - GPR#1483: fix GC freelist accounting for chunks larger than the maximum b= lock size. (David Allsopp and Damien Doligez) - GPR#1526: install the debug and instrumented runtimes (lib{caml,asm}run{d,i}.a) (Gabriel Scherer, reminded by Julia Lawall) - GPR#1563: simplify implementation of LSRINT and ASRINT (Max Mouratov, review by Fr=C3=A9d=C3=A9ric Bour) - GPR#1644: remove caml_alloc_float_array from the bytecode primitives list (it's a native code primitive) (David Allsopp) - GPR#1701: fix missing root bug in GPR#1476 (Mark Shinwell) - GPR#1752: do not alias function arguments to sigprocmask (Anil Madhavaped= dy) - GPR#1753: avoid potential off-by-one overflow in debugger socket path length (Anil Madhavapeddy) ### Tools: - MPR#7643, GPR#1377: ocamldep, fix an exponential blowup in presence of ne= sted structures and signatures (e.g. "include struct =E2=80=A6 include(struct = =E2=80=A6 end) =E2=80=A6 end") (Florian Angeletti, review by Gabriel Scherer, report by Christophe Raffa= lli) - MPR#7687, GPR#1653: deprecate -thread option, which is equivalent to -I +threads. (Nicol=C3=A1s Ojeda B=C3=A4r, report by Daniel B=C3=BCnzli) - MPR#7710: `ocamldep -sort` should exit with nonzero code in case of cyclic dependencies (Xavier Leroy, report by Mantis user baileyparker) - GPR#1537: boot/ocamldep is no longer included in the source distribution; boot/ocamlc -depend can be used in its place. (Nicol=C3=A1s Ojeda B=C3=A4r, review by Xavier Leroy and Damien Doligez) - GPR#1585: optimize output of "ocamllex -ml" (Alain Frisch, review by Fr=C3=A9d=C3=A9ric Bour and Gabriel Scherer) - GPR#1667: add command-line options -no-propt, -no-version, -no-time, -no-breakpoint and -topdirs-path to ocamldebug (S=C3=A9bastien Hinderer, review by Damien Doligez) - GPR#1695: add the -null-crc command-line option to ocamlobjinfo. (S=C3=A9bastien Hinderer, review by David Allsopp and Gabriel Scherer) - GPR#1710: ocamldoc, improve the 'man' rendering of subscripts and superscripts. (Gabriel Scherer) - GPR#1771: ocamdebug, avoid out of bound access (Thomas Refis) ### Manual and documentation: - MPR#7613: minor reword of the "refutation cases" paragraph (Florian Angeletti, review by Jacques Garrigue) - PR#7647, GPR#1384: emphasize ocaml.org website and forum in README (Yawar Amin, review by Gabriel Scherer) - PR#7698, GPR#1545: improve wording in OCaml manual in several places, mostly in Chapter 1. This addresses the easier changes suggested in the = PR. (Jim Fehrle, review by Florian Angeletti and David Allsopp) - GPR#1540: manual, decouple verbatim and toplevel style in code examples (Florian Angeletti, review by Gabriel Scherer) - GPR#1556: manual, add a consistency test for manual references inside the compiler source code. (Florian Angeletti, review by Gabriel Scherer) - GPR#1647: manual, subsection on record and variant disambiguation (Florian Angeletti, review by Alain Frisch and Gabriel Scherer) - GPR#1702: manual, add a signature mode for code examples (Florian Angeletti, review by Gabriel Scherer) - GPR#1741: manual, improve typesetting and legibility in HTML output (steinuil, review by Gabriel Scherer) - GPR#1757: style the html manual, changing type and layout (Charles Chamberlain, review by Florian Angeletti, Xavier Leroy, Gabriel Radanne, Perry E. Metzger, and Gabriel Scherer) - GPR#1765: manual, ellipsis in code examples (Florian Angeletti, review and suggestion by Gabriel Scherer) - GPR#1767: change html manual to use relative font sizes (Charles Chamberlain, review by Daniel B=C3=BCnzli, Perry E. Metzger, Josh Berdine, and Gabriel Scherer) - GPR#1779: integrate the Bigarray documentation into the main manual. (Perry E. Metzger, review by Florian Angeletti and Xavier Clerc) ### Type system: - MPR#7611, GPR#1491: reject the use of generative functors as applicative (Valentin Gatien-Baron) - MPR#7706, GPR#1565: in recursive value declarations, track static size of locally-defined variables (Gabriel Scherer, review by Jeremy Yallop and Leo White, report by Leo Wh= ite) - MPR#7717, GPR#1593: in recursive value declarations, don't treat unboxed constructor size as statically known (Jeremy Yallop, report by Pierre Chambart, review by Gabriel Scherer) - MPR#7767, GPR#1712: restore legacy treatment of partially-applied labeled functions in 'let rec' bindings. (Jeremy Yallop, report by Ivan Gotovchits, review by Gabriel Scherer) * MPR#7787, GPR#1652, GPR#1743: Don't remove module aliases in `module type= of` and `with module`. The old behaviour can be obtained using the `[@remove_aliases]` attribute. (Leo White and Thomas Refis, review by Jacques Garrigue) - GPR#1468: Do not enrich type_decls with incoherent manifests (Thomas Refis and Leo White, review by Jacques Garrigue) - GPR#1469: Use the information from [@@immediate] annotations when computing whether a type can be [@@unboxed] (Damien Doligez, report by Stephan Muenzel, review by Alain Frisch) - GPR#1513: Allow compilation units to shadow sub-modules of Pervasives. For instance users can now use a largeFile.ml file in their project. (J=C3=A9r=C3=A9mie Dimino, review by Nicolas Ojeda Bar, Alain Frisch and Gabriel Radanne) - GPR#1516: Allow float array construction in recursive bindings when configured with -no-flat-float-array (Jeremy Yallop, report by Gabriel Scherer) - GPR#1583: propagate refined ty_arg to Parmatch checks (Thomas Refis, review by Jacques Garrigue) - GPR#1609: Changes to ambivalence scope tracking (Thomas Refis and Leo White, review by Jacques Garrigue) - GPR#1628: Treat reraise and raise_notrace as nonexpansive. (Leo White, review by Alain Frisch) * GPR#1778: Fix Soundness bug with non-generalized type variable and local modules. This is the same bug as MPR#7414, but using local modules instead of non-local ones. (Leo White, review by Jacques Garrigue) ### Compiler distribution build system - MPR#5219, GPR#1680: use 'install' instead of 'cp' in install scripts (Gabriel Scherer, review by S=C3=A9bastien Hinderer) - MPR#7679: make sure .a files are erased before calling ar rc, otherwise leftover .a files from an earlier compilation may contain unwanted modules (Xavier Leroy) - GPR#1571: do not perform architecture tests on 32-bit platforms, allowing 64-bit back-ends to use 64-bit specific constructs (Xavier Clerc, review by Damien Doligez) ### Internal/compiler-libs changes: - MPR#7738, GPR#1624: Asmlink.reset also resets lib_ccobjs/ccopts (Cedric Cellier, review by Gabriel Scherer) - GPR#1488, GPR#1560: Refreshing parmatch (Gabriel Scherer and Thomas Refis, review by Luc Maranget) - GPR#1502: more command line options for expect tests (Florian Angeletti, review by Gabriel Scherer) - GPR#1511: show code at error location in expect-style tests, using new Location.show_code_at_location function (Gabriel Scherer and Arma=C3=ABl Gu=C3=A9neau, review by Valentin Gatien-Baron and Damien Doligez) - GPR#1519, GPR#1532, GRP#1570: migrate tests to ocamltest (S=C3=A9bastien Hinderer, review by Gabriel Scherer, Valentin Gatien-Baron and Nicol=C3=A1s Ojeda B=C3=A4r) - GPR#1520: more robust implementation of Misc.no_overflow_mul (Max Mouratov, review by Xavier Leroy) - GPR#1557: Organise and simplify translation of primitives (Leo White, review by Fran=C3=A7ois Bobot and Nicol=C3=A1s Ojeda B=C3=A4r) - GPR#1567: register all idents relevant for reraise (Thomas Refis, review by Alain Frisch and Fr=C3=A9d=C3=A9ric Bour) - GPR#1586: testsuite: 'make promote' for ocamltest tests (The new "-promote" option for ocamltest is experimental and subject to change/removal). (Gabriel Scherer) - GPR#1619: expect_test: print all the exceptions, even the unexpected ones (Thomas Refis, review by J=C3=A9r=C3=A9mie Dimino) - GPR#1621: expect_test: make sure to not use the installed stdlib (J=C3=A9r=C3=A9mie Dimino, review by Thomas Refis) - GPR#1646 : add ocamldoc test to ocamltest and migrate ocamldoc tests to ocamltest (Florian Angeletti, review by S=C3=A9bastien Hinderer) - GPR#1663: refactor flambda specialise/inlining handling (Leo White and Xavier Clerc, review by Pierre Chambart) - GPR#1679 : remove Pbittest from primitives in lambda (Hugo Heuzard, review by Mark Shinwell) * GPR#1704: Make Ident.t abstract and immutable. (Gabriel Radanne, review by Mark Shinwell) ### Bug fixes - MPR#4499, GPR#1479: Use native Windows API to implement Sys.getenv, Unix.getenv and Unix.environment under Windows. (Nicol=C3=A1s Ojeda B=C3=A4r, report by Alain Frisch, review by David All= sopp, Xavier Leroy) - MPR#5250, GPR#1435: on Cygwin, when ocamlrun searches the path for a bytecode executable file, skip directories and other non-regular files, like other Unix variants do. (Xavier Leroy) - MPR#6394, GPR#1425: fix fatal_error from Parmatch.get_type_path (Virgile Prevosto, review by David Allsopp, Thomas Refis and Jacques Garr= igue) * MPR#6604, GPR#931: Only allow directives with filename and at the beginni= ng of the line (Tadeu Zagallo, report by Roberto Di Cosmo, review by Hongbo Zhang, David Allsopp, Gabriel Scherer, Xavier Leroy) - MPR#7138, MPR#7701, GPR#1693: Keep documentation comments even in empty structures and signatures (Leo White, Florian Angeletti, report by Anton Bachin) - MPR#7178, MPR#7253, MPR#7796, GPR#1790: Make sure a function registered with "at_exit" is executed only once when the program exits (Nicol=C3=A1s Ojeda B=C3=A4r and Xavier Leroy, review by Max Mouratov) - MPR#7391, GPR#1620: Do not put a dummy method in object types (Thomas Refis, review by Jacques Garrigue) - PR#7660, GPR#1445: Use native Windows API to implement Unix.utimes in ord= er to avoid unintended shifts of the argument timestamp depending on DST settin= g. (Nicol=C3=A1s Ojeda B=C3=A4r, review by David Allsopp, Xavier Leroy) - MPR#7668: -principal is broken with polymorphic variants (Jacques Garrigue, report by Jun Furuse) - MPR#7680, GPR#1497: Incorrect interaction between Matching.for_let and Simplif.simplify_exits (Alain Frisch, report and review by Vincent Laviron) - MPR#7682, GPR#1495: fix [@@unboxed] for records with 1 polymorphic field (Alain Frisch, report by St=C3=A9phane Graham-Lengrand, review by Gabriel= Scherer) - MPR#7695, GPR#1541: Fatal error: exception Ctype.Unify(_) with field over= ride (Jacques Garrigue, report by Nicol=C3=A1s Ojeda B=C3=A4r) - MPR#7704, GPR#1564: use proper variant tag in non-exhaustiveness warning (Jacques Garrigue, report by Thomas Refis) - MPR#7711, GPR#1581: Internal typechecker error triggered by a constraint = on self type in a class type (Jacques Garrigue, report and review by Florian Angeletti) - MPR#7712, GPR#1576: assertion failure with type abbreviations (Thomas Refis, report by Michael O'Connor, review by Jacques Garrigue) - MPR#7747: Type checker can loop infinitly and consumes all computer memory (Jacques Garrigue, report by kantian) - MPR#7751, GPR#1657: The toplevel prints some concrete types as abstract (Jacques Garrigue, report by Matej Kosik) - MPR#7765, GPR#1718: When unmarshaling bigarrays, protect against integer overflows in size computations (Xavier Leroy, report by Maximilian Tschirschnitz, review by Gabriel Scherer) - MPR#7760, GPR#1713: Exact selection of lexing engine, that is correct "Segfault in ocamllex-generated code using 'shortest'" (Luc Maranget, Fr=C3=A9d=C3=A9ric Bour, report by Stephen Dolan, review by Gabriel Scherer) - MPR#7769, GPR#1714: calls to Stream.junk could, under some conditions, be ignored when used on streams based on input channels. (Nicol=C3=A1s Ojeda B=C3=A4r, report by Michael Perin, review by Gabriel = Scherer) - MPR#7793, GPR#1766: the toplevel #use directive now accepts sequences of = ';;' tokens. This fixes a bug in which certain files accepted by the compiler = were rejected by ocamldep. (Nicol=C3=A1s Ojeda B=C3=A4r, report by Hugo Heuzard, review by Hugo Heuz= ard) - GPR#1517: More robust handling of type variables in mcomp (Leo White and Thomas Refis, review by Jacques Garrigue) - GPR#1530, GPR#1574: testsuite, fix 'make parallel' and 'make one DIR=3D..= .' to work on ocamltest-based tests. (Runhang Li and S=C3=A9bastien Hinderer, review by Gabriel Scherer) - GPR#1550, GPR#1555: Make pattern matching warnings more robust to ill-typed columns (Thomas Refis, with help from Gabriel Scherer and Luc Maranget) - GPR#1614: consider all bound variables when inlining, fixing a compiler fatal error. (Xavier Clerc, review by Pierre Chambart, Leo White) - GPR#1622: fix bug in the expansion of command-line arguments under Windows which could result in some elements of Sys.argv being truncated in some c= ases. (Nicol=C3=A1s Ojeda B=C3=A4r, review by S=C3=A9bastien Hinderer) - GPR#1623: Segfault on Windows 64 bits when expanding wildcards in argumen= ts. (Marc Lasson, review by David Allsopp, Alain Frisch, S=C3=A9bastien Hinde= rer, Xavier Leroy, Nicolas Ojeda Bar) - GPR#1661: more precise principality warning regarding record fields disambiguation (Thomas Refis, review by Leo White) - GPR#1687: fix bug in the printing of short functor types "(S1 -> S2) -> S= 3" (Pieter Goetschalckx, review by Gabriel Scherer) - GPR#1722: Scrape types in Typeopt.maybe_pointer (Leo White, review by Thomas Refis) - GPR#1755: ensure that a bigarray is never collected while reading complex values (Xavier Clerc, Mark Shinwell and Leo White, report by Chris Hardin, reviews by Stephen Dolan and Xavier Leroy) - GPR#1764: in byterun/memory.c, struct pool_block, use C99 flexible arrays if available (Xavier Leroy, review by Max Mouratov) - GPR#1774: ocamlopt for ARM could generate VFP loads and stores with bad offsets, rejected by the assembler. (Xavier Leroy, review by Mark Shinwell) - GPR#1808: handle `[@inlined]` attributes under a module constraint (Xavier Clerc, review by Leo White) - GPR#1810: use bit-pattern comparison when meeting float approximations (Xavier Clerc, report by Christophe Troestler, review by Nicol=C3=A1s Oje= da B=C3=A4r and Gabriel Scherer) --=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=