caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] OCaml release 4.02.2
@ 2015-06-17 19:44 Damien Doligez
  2015-06-19 11:38 ` Simon Cruanes
  0 siblings, 1 reply; 4+ messages in thread
From: Damien Doligez @ 2015-06-17 19:44 UTC (permalink / raw)
  To: caml-list, caml-announce

Dear OCaml users,

We have the pleasure of celebrating the birthdays of Cesar-Francois
Cassini, Igor Stravinsky and Maurits Cornelis Escher by announcing the
release of OCaml version 4.02.2.
This release has a few new features and a lot of bug fixes, see the
list of changes below.

It is available:
- as source code: <
http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.2.tar.gz >
- as an OPAM switch: "opam switch 4.02.2"

We would like to take the opportunity to thank all the third-party
packagers who make this easy to install for end users.

Happy hacking,

-- Damien Doligez for the OCaml team.


OCaml 4.02.2:
-------------

(Changes that can break existing programs are marked with a "*")

Language features:
- PR#6583: add a new class of binary operators with the same syntactic
  precedence as method calls; these operators start with # followed
  by a non-empty sequence of operator symbols (for instance #+, #!?).
  It is also possible to use '#' as part of these extra symbols
  (for instance ##, or #+#); this is rejected by the type-checker,
  but can be used e.g. by ppx rewriters.
  (Alain Frisch, request by Gabriel Radanne)
* PR#6016: add a "nonrec" keyword for type declarations
  (Jérémie Dimino)

Compilers:
- PR#6600: make -short-paths faster by building the printing map
  incrementally
  (Jacques Garrigue)
- PR#6642: replace $CAMLORIGIN in -ccopt with the path to cma or cmxa
  (Peter Zotov, Gabriel Scherer, review by Damien Doligez)
- PR#6797: new option -output-complete-obj
  to output an object file with included runtime and autolink libraries
  (Peter Zotov)
- PR#6845: -no-check-prims to tell ocamlc not to check primitives in runtime
  (Alain Frisch)
- GPR#149: Attach documentation comments to parse tree
  (Leo White)
- GPR#159: Better locations for structure/signature items
  (Leo White)

Toplevel and debugger:
- PR#5958: generalized polymorphic #install_printer
  (Pierre Chambart and Grégoire Henry)

OCamlbuild:
- PR#6237: explicit "infer" tag to control or disable menhir --infer
  (Hugo Heuzard)
- PR#6625: pass -linkpkg to files built with -output-obj.
  (Peter Zotov)
- PR#6702: explicit "linkpkg" and "dontlink(foo)" flags
  (Peter Zotov, Gabriel Scherer)
- PR#6712: Ignore common VCS directories
  (Peter Zotov)
- PR#6720: pass -g to C compilers when tag 'debug' is set
  (Peter Zotov, Gabriel Scherer)
- PR#6733: add .byte.so and .native.so targets to pass
  -output-obj -cclib -shared.
  (Peter Zotov)
- PR#6733: "runtime_variant(X)" to pass -runtime-variant X option.
  (Peter Zotov)
- PR#6774: new menhir-specific flags "only_tokens" and "external_tokens(Foo)"
  (François Pottier)

Libraries:
- PR#6285: Add support for nanosecond precision in Unix.stat()
  (Jérémie Dimino, report by user 'gfxmonk')
- PR#6781: Add higher baud rates to Unix termios
  (Damien Doligez, report by Berke Durak)
- PR#6834: Add Obj.{first,last}_non_constant_constructor_tag
  (Mark Shinwell, request by Gabriel Scherer)

Runtime:
- PR#6078: Release the runtime system when calling caml_dlopen
  (Jérémie Dimino)
- PR#6675: GC hooks
  (Damien Doligez and Roshan James)

Build system:
- PR#5418 (comments) : generate dependencies with $(CC) instead of gcc
  (Damien Doligez and Michael Grünewald)
- PR#6266: Cross compilation for iOs, Android etc
  (Peter Zotov, review by Damien Doligez and Mark Shinwell)

Installation procedure:
- Update instructions for x86-64 PIC mode and POWER architecture builds
  (Mark Shinwell)

Bug fixes:
- PR#5271: Location.prerr_warning is hard-coded to use Format.err_formatter
  (Damien Doligez, report by Rolf Rolles)
- PR#5395: OCamlbuild mishandles relative symlinks and include paths
  (Damien Doligez, report by Didier Le Botlan)
- PR#5822: wrong value of Options.ext_dll on windows
  (Damien Doligez and Daniel Weil)
- PR#5836, PR#6684: printing lazy values in ocamldebug may segfault
  (Gabriel Scherer, request by the Coq team)
- PR#5887: move the byterun/*.h headers to byterun/caml/*.h to avoid
  header name clashes
  (Jérôme Vouillon and Adrien Nader and Peter Zotov)
- PR#6281: Graphics window does not acknowledge second click (double click)
  (Kyle Headley)
- PR#6490: incorrect backtraces in gdb on AArch64.  Also fixes incorrect
  backtraces on 32-bit ARM.
  (Mark Shinwell)
- PR#6573: extern "C" for systhreads/threads.h
  (Mickaël Delahaye)
- PR#6575: Array.init evaluates callback although it should not do so
  (Alain Frisch, report by Gerd Stolpmann)
- PR#6607: The manual doesn't mention 0x200 flag for OCAMLRUNPARAM=v
  (Alain Frisch)
- PR#6616: allow meaningful use of -use-runtime without -custom.
  (Peter Zotov)
- PR#6617: allow android build with pthreads support (since SDK r10c)
  (Peter Zotov)
- PR#6626: ocamlbuild on cygwin cannot find ocamlfind
  (Gergely Szilvasy)
- PR#6628: Configure script rejects legitimate arguments
  (Michael Grünewald, Damien Doligez)
- PR#6630: Failure of tests/prim-bigstring/{big,}string.ml on big-endian
  architectures
  (Pierre Chambart, testing by Mark Shinwell)
- PR#6640: ocamlbuild: wrong "unused tag" warning on "precious"
  (report by user 'william')
- PR#6652: ocamlbuild -clean does not print a newline after output
  (Damien Doligez, report by Andi McClure)
- PR#6658: cross-compiler: version check not working on OS X
  (Gerd Stolpmann)
- PR#6665: Failure of tests/asmcomp on sparc
  (Stéphane Glondu)
- PR#6667: wrong implementation of %bswap16 on ARM64
  (Xavier Leroy)
- PR#6669: fix 4.02 regression in toplevel printing of lazy values
  (Leo White, review by Gabriel Scherer)
- PR#6671: Windows: environment variable 'TZ' affects Unix.gettimeofday
  (Mickael Delahaye and Damien Doligez)
- PR#6680: Missing parentheses in warning about polymorphic variant value
  (Jacques Garrigue and Gabriel Scherer, report by Philippe Veber)
- PR#6686: Bug in [subst_boxed_number]
  (Jérémie Dimino, Mark Shinwell)
- PR#6690: Uncaught exception (Not_found) with (wrong) wildcard or unification
  type variable in place of a local abstract type
  (Jacques Garrigue, report by Mikhail Mandrykin)
- PR#6693 (part two): Incorrect relocation types in x86-64 runtime system
  (Peter Zotov, review by Jacques-Henri Jourdan, Xavier Leroy and Mark Shinwell)
- PR#6717: Pprintast does not print let-pattern attributes
  (Gabriel Scherer, report by Peter Zotov)
- PR#6727: Printf.sprintf "%F" misbehavior
  (Benoît Vaugon, report by Vassili Karpov)
- PR#6747: ocamlobjinfo: missing symbol caml_plugin_header due to underscore
  (Damien Doligez, Maverick Woo)
- PR#6749: ocamlopt returns n for (n mod 1) instead of 0
  (Mark Shinwell and Jérémie Dimino)
- PR#6753: Num.quo_num and Num.mod_num incorrect for some negative arguments
  (Xavier Leroy)
- PR#6758: Ocamldoc "analyse_module: parsetree and typedtree don't match"
  (Damien Doligez, report by user 'maro')
- PR#6759: big_int_of_string incorrectly parses some hexa literals
  (Damien Doligez, report by Pierre-yves Strub)
- PR#6763: #show with -short-paths doesn't select shortest type paths
  (Jacques Garrigue, report by David Sheets)
- PR#6768: Typechecker overflow the stack on cyclic type
  (Jacques Garrigue, report by user 'darktenaibre')
- PR#6772: asmrun/signals_asm.c doesn't compile on NetBSD/i386
  (Kenji Tokudome)
- PR#6775: Digest.file leaks file descriptor on error
  (Valentin Gatien-Baron)
- PR#6779: Cross-compilers cannot link bytecode using custom primitives
  (Damien Doligez, request by Peter Zotov)
- PR#6787: Soundness bug with polymorphic variants
  (Jacques Garrigue, with help from Leo White and Grégoire Henry,
   report by Michael O'Connor)
- PR#6790: otherlibs should be built with -g
  (Damien Doligez, report by Peter Zotov)
- PR#6791: "%s@[", "%s@{" regression in Scanf
  (Benoît Vaugon)
- PR#6793: ocamlbuild passes nonsensical "-ocamlc ..." commands to menhir
  (Gabriel Scherer, report by Damien Doligez)
- PR#6799: include guards missing for unixsupport.h and other files
  (Andreas Hauptmann)
- PR#6810: Improve documentation of Bigarray.Genarray.map_file
  (Mark Shinwell and Daniel Bünzli)
- PR#6812: -short-paths and -no-alias-deps can create inconsistent assumptions
  (Jacques Garrigue, report by Valentin Gatien-Baron)
- PR#6817: GADT exhaustiveness breakage with modules
  (Leo White, report by Pierre Chambart)
- PR#6824: fix buffer sharing on partial application of Format.asprintf
  (Gabriel Scherer, report by Alain Frisch)
- PR#6831: Build breaks for -aspp gcc on solaris-like OSs
  (John Tibble)
- PR#6836: Assertion failure using -short-paths
  (Jacques Garrigue, report by David Sheets)
- PR#6837: Build profiling libraries on FreeBSD and NetBSD x86-64
  (Mark Shinwell, report by Michael Grünewald)
- PR#6841: Changing compilation unit name with -o breaks ocamldebug
  (Jacques Garrigue, report by Jordan Walke)
- PR#6843: record weak dependencies even when the .cmi is missing
  (Leo White, Gabriel Scherer)
- PR#6849: Inverted pattern unification error
  (Jacques Garrigue, report by Leo White)
- PR#6857: __MODULE__ doesn't give the current module with -o
  (Jacques Garrigue, report by Valentin Gatien-Baron)
- PR#6862: Exhaustiveness check wrong for class constructor arguments
  (Jacques Garrigue)
- PR#6869: Improve comment on [Hashtbl.hash_param]
  (Mark Shinwell, report by Jun Furuse)
- PR#6870: Unsoundness when -rectypes fails to detect non-contractive type
  (Jacques Garrigue, report by Stephen Dolan)
- PR#6872: Type-directed propagation fails to disambiguate variants
  that are also exception constructors
  (Jacques Garrigue, report by Romain Beauxis)
- PR#6878: AArch64 backend generates invalid asm: conditional branch
  out of range (Mark Shinwell, report by Richard Jones, testing by Richard
  Jones and Xavier Leroy, code review by Xavier Leroy and Thomas Refis)
- PR#6879: Wrong optimization of 1 mod n
  (Mark Shinwell, report by Jean-Christophe Filliâtre)
- PR#6884: The __CYGWIN32__ #define should be replaced with __CYGWIN__
  (Adrien Nader)
- PR#6886: -no-alias-deps allows to build self-referential compilation units
  (Jacques Garrigue, report by Valentin Gatien-Baron)
- PR#6889: ast_mapper fails to rewrite class attributes
  (Sébastien Briais)
- PR#6893: ocamlbuild:  "tag not used" warning when using (p)dep
  (Gabriel Scherer, report by Christiano Haesbaert)
- GPR#143: fix getsockopt behaviour for boolean socket options
  (Anil Madhavapeddy and Andrew Ray)
- GPR#190: typo in pervasives
  (Guillaume Bury)
- Misplaced assertion in major_gc.c for no-naked-pointers mode
  (Stephen Dolan, Mark Shinwell)

Feature wishes:
- PR#6452, GPR#140: add internal suport for custom printing formats
  (Jérémie Dimino)
- PR#6641: add -g, -ocamlcflags, -ocamloptflags options to ocamlmklib
  (Peter Zotov)
- PR#6693: also build libasmrun_shared.so and lib{asm,caml}run_pic.a
  (Peter Zotov, review by Mark Shinwell)
- PR#6842: export Typemod.modtype_of_package
  (Jacques Garrigue, request by Jun Furuse)
- GPR#139: more versatile specification of locations of .annot
  (Christophe Troestler, review by Damien Doligez)
- GPR#157: store the path of cmos inside debug section at link time
  (Hugo Heuzard, review by Damien Doligez)
- GPR#191: Making gc.h and some part of memory.h public
  (Thomas Refis)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Caml-list] OCaml release 4.02.2
  2015-06-17 19:44 [Caml-list] OCaml release 4.02.2 Damien Doligez
@ 2015-06-19 11:38 ` Simon Cruanes
  2015-06-19 11:59   ` Gabriel Scherer
  0 siblings, 1 reply; 4+ messages in thread
From: Simon Cruanes @ 2015-06-19 11:38 UTC (permalink / raw)
  To: Damien Doligez; +Cc: caml-list, caml-announce

[-- Attachment #1: Type: text/plain, Size: 12950 bytes --]

Hi,

I know it should have been reported before, during the rc1, but anyway,
I noticed this after the release (not my packages):

```
type foo = { bar[@toto] : int };;
```

This compiles on 4.02.1 (and puts the attribute [@toto] on the field `bar`)
but fails to compile on 4.02.2 as follows:

```
# type foo = { bar [@toto] : int  };;
Error: Syntax error
```

This breaks ppx_deriving (for which a patch is underway), and every
piece of code that uses it with attributes on records, yet nothing is
mentioned in the changelog (at least not with a "breaking" annotation)?

Cheers!

Le Wed, 17 Jun 2015, Damien Doligez a écrit :
> We have the pleasure of celebrating the birthdays of Cesar-Francois
> Cassini, Igor Stravinsky and Maurits Cornelis Escher by announcing the
> release of OCaml version 4.02.2.
> This release has a few new features and a lot of bug fixes, see the
> list of changes below.
> 
> It is available:
> - as source code: <
> http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.2.tar.gz >
> - as an OPAM switch: "opam switch 4.02.2"
> 
> We would like to take the opportunity to thank all the third-party
> packagers who make this easy to install for end users.
> 
> Happy hacking,
> 
> -- Damien Doligez for the OCaml team.
> 
> 
> OCaml 4.02.2:
> -------------
> 
> (Changes that can break existing programs are marked with a "*")
> 
> Language features:
> - PR#6583: add a new class of binary operators with the same syntactic
>   precedence as method calls; these operators start with # followed
>   by a non-empty sequence of operator symbols (for instance #+, #!?).
>   It is also possible to use '#' as part of these extra symbols
>   (for instance ##, or #+#); this is rejected by the type-checker,
>   but can be used e.g. by ppx rewriters.
>   (Alain Frisch, request by Gabriel Radanne)
> * PR#6016: add a "nonrec" keyword for type declarations
>   (Jérémie Dimino)
> 
> Compilers:
> - PR#6600: make -short-paths faster by building the printing map
>   incrementally
>   (Jacques Garrigue)
> - PR#6642: replace $CAMLORIGIN in -ccopt with the path to cma or cmxa
>   (Peter Zotov, Gabriel Scherer, review by Damien Doligez)
> - PR#6797: new option -output-complete-obj
>   to output an object file with included runtime and autolink libraries
>   (Peter Zotov)
> - PR#6845: -no-check-prims to tell ocamlc not to check primitives in runtime
>   (Alain Frisch)
> - GPR#149: Attach documentation comments to parse tree
>   (Leo White)
> - GPR#159: Better locations for structure/signature items
>   (Leo White)
> 
> Toplevel and debugger:
> - PR#5958: generalized polymorphic #install_printer
>   (Pierre Chambart and Grégoire Henry)
> 
> OCamlbuild:
> - PR#6237: explicit "infer" tag to control or disable menhir --infer
>   (Hugo Heuzard)
> - PR#6625: pass -linkpkg to files built with -output-obj.
>   (Peter Zotov)
> - PR#6702: explicit "linkpkg" and "dontlink(foo)" flags
>   (Peter Zotov, Gabriel Scherer)
> - PR#6712: Ignore common VCS directories
>   (Peter Zotov)
> - PR#6720: pass -g to C compilers when tag 'debug' is set
>   (Peter Zotov, Gabriel Scherer)
> - PR#6733: add .byte.so and .native.so targets to pass
>   -output-obj -cclib -shared.
>   (Peter Zotov)
> - PR#6733: "runtime_variant(X)" to pass -runtime-variant X option.
>   (Peter Zotov)
> - PR#6774: new menhir-specific flags "only_tokens" and "external_tokens(Foo)"
>   (François Pottier)
> 
> Libraries:
> - PR#6285: Add support for nanosecond precision in Unix.stat()
>   (Jérémie Dimino, report by user 'gfxmonk')
> - PR#6781: Add higher baud rates to Unix termios
>   (Damien Doligez, report by Berke Durak)
> - PR#6834: Add Obj.{first,last}_non_constant_constructor_tag
>   (Mark Shinwell, request by Gabriel Scherer)
> 
> Runtime:
> - PR#6078: Release the runtime system when calling caml_dlopen
>   (Jérémie Dimino)
> - PR#6675: GC hooks
>   (Damien Doligez and Roshan James)
> 
> Build system:
> - PR#5418 (comments) : generate dependencies with $(CC) instead of gcc
>   (Damien Doligez and Michael Grünewald)
> - PR#6266: Cross compilation for iOs, Android etc
>   (Peter Zotov, review by Damien Doligez and Mark Shinwell)
> 
> Installation procedure:
> - Update instructions for x86-64 PIC mode and POWER architecture builds
>   (Mark Shinwell)
> 
> Bug fixes:
> - PR#5271: Location.prerr_warning is hard-coded to use Format.err_formatter
>   (Damien Doligez, report by Rolf Rolles)
> - PR#5395: OCamlbuild mishandles relative symlinks and include paths
>   (Damien Doligez, report by Didier Le Botlan)
> - PR#5822: wrong value of Options.ext_dll on windows
>   (Damien Doligez and Daniel Weil)
> - PR#5836, PR#6684: printing lazy values in ocamldebug may segfault
>   (Gabriel Scherer, request by the Coq team)
> - PR#5887: move the byterun/*.h headers to byterun/caml/*.h to avoid
>   header name clashes
>   (Jérôme Vouillon and Adrien Nader and Peter Zotov)
> - PR#6281: Graphics window does not acknowledge second click (double click)
>   (Kyle Headley)
> - PR#6490: incorrect backtraces in gdb on AArch64.  Also fixes incorrect
>   backtraces on 32-bit ARM.
>   (Mark Shinwell)
> - PR#6573: extern "C" for systhreads/threads.h
>   (Mickaël Delahaye)
> - PR#6575: Array.init evaluates callback although it should not do so
>   (Alain Frisch, report by Gerd Stolpmann)
> - PR#6607: The manual doesn't mention 0x200 flag for OCAMLRUNPARAM=v
>   (Alain Frisch)
> - PR#6616: allow meaningful use of -use-runtime without -custom.
>   (Peter Zotov)
> - PR#6617: allow android build with pthreads support (since SDK r10c)
>   (Peter Zotov)
> - PR#6626: ocamlbuild on cygwin cannot find ocamlfind
>   (Gergely Szilvasy)
> - PR#6628: Configure script rejects legitimate arguments
>   (Michael Grünewald, Damien Doligez)
> - PR#6630: Failure of tests/prim-bigstring/{big,}string.ml on big-endian
>   architectures
>   (Pierre Chambart, testing by Mark Shinwell)
> - PR#6640: ocamlbuild: wrong "unused tag" warning on "precious"
>   (report by user 'william')
> - PR#6652: ocamlbuild -clean does not print a newline after output
>   (Damien Doligez, report by Andi McClure)
> - PR#6658: cross-compiler: version check not working on OS X
>   (Gerd Stolpmann)
> - PR#6665: Failure of tests/asmcomp on sparc
>   (Stéphane Glondu)
> - PR#6667: wrong implementation of %bswap16 on ARM64
>   (Xavier Leroy)
> - PR#6669: fix 4.02 regression in toplevel printing of lazy values
>   (Leo White, review by Gabriel Scherer)
> - PR#6671: Windows: environment variable 'TZ' affects Unix.gettimeofday
>   (Mickael Delahaye and Damien Doligez)
> - PR#6680: Missing parentheses in warning about polymorphic variant value
>   (Jacques Garrigue and Gabriel Scherer, report by Philippe Veber)
> - PR#6686: Bug in [subst_boxed_number]
>   (Jérémie Dimino, Mark Shinwell)
> - PR#6690: Uncaught exception (Not_found) with (wrong) wildcard or unification
>   type variable in place of a local abstract type
>   (Jacques Garrigue, report by Mikhail Mandrykin)
> - PR#6693 (part two): Incorrect relocation types in x86-64 runtime system
>   (Peter Zotov, review by Jacques-Henri Jourdan, Xavier Leroy and Mark Shinwell)
> - PR#6717: Pprintast does not print let-pattern attributes
>   (Gabriel Scherer, report by Peter Zotov)
> - PR#6727: Printf.sprintf "%F" misbehavior
>   (Benoît Vaugon, report by Vassili Karpov)
> - PR#6747: ocamlobjinfo: missing symbol caml_plugin_header due to underscore
>   (Damien Doligez, Maverick Woo)
> - PR#6749: ocamlopt returns n for (n mod 1) instead of 0
>   (Mark Shinwell and Jérémie Dimino)
> - PR#6753: Num.quo_num and Num.mod_num incorrect for some negative arguments
>   (Xavier Leroy)
> - PR#6758: Ocamldoc "analyse_module: parsetree and typedtree don't match"
>   (Damien Doligez, report by user 'maro')
> - PR#6759: big_int_of_string incorrectly parses some hexa literals
>   (Damien Doligez, report by Pierre-yves Strub)
> - PR#6763: #show with -short-paths doesn't select shortest type paths
>   (Jacques Garrigue, report by David Sheets)
> - PR#6768: Typechecker overflow the stack on cyclic type
>   (Jacques Garrigue, report by user 'darktenaibre')
> - PR#6772: asmrun/signals_asm.c doesn't compile on NetBSD/i386
>   (Kenji Tokudome)
> - PR#6775: Digest.file leaks file descriptor on error
>   (Valentin Gatien-Baron)
> - PR#6779: Cross-compilers cannot link bytecode using custom primitives
>   (Damien Doligez, request by Peter Zotov)
> - PR#6787: Soundness bug with polymorphic variants
>   (Jacques Garrigue, with help from Leo White and Grégoire Henry,
>    report by Michael O'Connor)
> - PR#6790: otherlibs should be built with -g
>   (Damien Doligez, report by Peter Zotov)
> - PR#6791: "%s@[", "%s@{" regression in Scanf
>   (Benoît Vaugon)
> - PR#6793: ocamlbuild passes nonsensical "-ocamlc ..." commands to menhir
>   (Gabriel Scherer, report by Damien Doligez)
> - PR#6799: include guards missing for unixsupport.h and other files
>   (Andreas Hauptmann)
> - PR#6810: Improve documentation of Bigarray.Genarray.map_file
>   (Mark Shinwell and Daniel Bünzli)
> - PR#6812: -short-paths and -no-alias-deps can create inconsistent assumptions
>   (Jacques Garrigue, report by Valentin Gatien-Baron)
> - PR#6817: GADT exhaustiveness breakage with modules
>   (Leo White, report by Pierre Chambart)
> - PR#6824: fix buffer sharing on partial application of Format.asprintf
>   (Gabriel Scherer, report by Alain Frisch)
> - PR#6831: Build breaks for -aspp gcc on solaris-like OSs
>   (John Tibble)
> - PR#6836: Assertion failure using -short-paths
>   (Jacques Garrigue, report by David Sheets)
> - PR#6837: Build profiling libraries on FreeBSD and NetBSD x86-64
>   (Mark Shinwell, report by Michael Grünewald)
> - PR#6841: Changing compilation unit name with -o breaks ocamldebug
>   (Jacques Garrigue, report by Jordan Walke)
> - PR#6843: record weak dependencies even when the .cmi is missing
>   (Leo White, Gabriel Scherer)
> - PR#6849: Inverted pattern unification error
>   (Jacques Garrigue, report by Leo White)
> - PR#6857: __MODULE__ doesn't give the current module with -o
>   (Jacques Garrigue, report by Valentin Gatien-Baron)
> - PR#6862: Exhaustiveness check wrong for class constructor arguments
>   (Jacques Garrigue)
> - PR#6869: Improve comment on [Hashtbl.hash_param]
>   (Mark Shinwell, report by Jun Furuse)
> - PR#6870: Unsoundness when -rectypes fails to detect non-contractive type
>   (Jacques Garrigue, report by Stephen Dolan)
> - PR#6872: Type-directed propagation fails to disambiguate variants
>   that are also exception constructors
>   (Jacques Garrigue, report by Romain Beauxis)
> - PR#6878: AArch64 backend generates invalid asm: conditional branch
>   out of range (Mark Shinwell, report by Richard Jones, testing by Richard
>   Jones and Xavier Leroy, code review by Xavier Leroy and Thomas Refis)
> - PR#6879: Wrong optimization of 1 mod n
>   (Mark Shinwell, report by Jean-Christophe Filliâtre)
> - PR#6884: The __CYGWIN32__ #define should be replaced with __CYGWIN__
>   (Adrien Nader)
> - PR#6886: -no-alias-deps allows to build self-referential compilation units
>   (Jacques Garrigue, report by Valentin Gatien-Baron)
> - PR#6889: ast_mapper fails to rewrite class attributes
>   (Sébastien Briais)
> - PR#6893: ocamlbuild:  "tag not used" warning when using (p)dep
>   (Gabriel Scherer, report by Christiano Haesbaert)
> - GPR#143: fix getsockopt behaviour for boolean socket options
>   (Anil Madhavapeddy and Andrew Ray)
> - GPR#190: typo in pervasives
>   (Guillaume Bury)
> - Misplaced assertion in major_gc.c for no-naked-pointers mode
>   (Stephen Dolan, Mark Shinwell)
> 
> Feature wishes:
> - PR#6452, GPR#140: add internal suport for custom printing formats
>   (Jérémie Dimino)
> - PR#6641: add -g, -ocamlcflags, -ocamloptflags options to ocamlmklib
>   (Peter Zotov)
> - PR#6693: also build libasmrun_shared.so and lib{asm,caml}run_pic.a
>   (Peter Zotov, review by Mark Shinwell)
> - PR#6842: export Typemod.modtype_of_package
>   (Jacques Garrigue, request by Jun Furuse)
> - GPR#139: more versatile specification of locations of .annot
>   (Christophe Troestler, review by Damien Doligez)
> - GPR#157: store the path of cmos inside debug section at link time
>   (Hugo Heuzard, review by Damien Doligez)
> - GPR#191: Making gc.h and some part of memory.h public
>   (Thomas Refis)
> 
> -- 
> 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


-- 
Simon

http://weusepgp.info/
key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3  7D8D 4AC0 1D08 49AA 62B6

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Caml-list] OCaml release 4.02.2
  2015-06-19 11:38 ` Simon Cruanes
@ 2015-06-19 11:59   ` Gabriel Scherer
  2015-06-19 12:08     ` Simon Cruanes
  0 siblings, 1 reply; 4+ messages in thread
From: Gabriel Scherer @ 2015-06-19 11:59 UTC (permalink / raw)
  To: Simon Cruanes; +Cc: Damien Doligez, caml users, caml-announce

[-- Attachment #1: Type: text/plain, Size: 15473 bytes --]

This change to the placement of attributes that was discussed in
  http://caml.inria.fr/mantis/view.php?id=6612
  https://github.com/ocaml/ocaml/pull/152

It is indeed a mistake that it is not in the Changelog. As a meta-comment
(not discussing this particular patch), in the future we might need to have
"a proper Changelog line" as an explicit requirement for all submitted
patches (I would be tempted to add "a testsuite test exercising the
affected features"), because it is fairly error-prone to try to track
changes to add to the changelog after they've been merged.

The rationale for this change is that the syntax was perceived as an
improvement by the ppx-users that expressed an opinion on the issue, and
they asked for this to be released as soon as possible hoping to facilitate
the transition to the new syntax (few existing users).
The change was tested against all released OPAM packages, and riak_ppx was
the only package that broke. It seems that either (1) the code using the
old syntax had not been released as OPAM packages yet (in retrospect it
seems reasonable that using OPAM testing as only testing vehicle is rather
fragile for very recent features; on the other hand, I don't know which
other tests could be put in place) or (2) said packages did not break in a
way that was perceptible to the automated tool.

I think 4.02.2 is a slightly less minor release than is usual: it does have
some new features that are not simply bugfixes, because they were requested
by users which were eager to see them released (typically all the
ppx-related changes). This is a delicate compromise to make, and
unfortunately there are indeed a couple regressions -- despite a very
silent rc1-to-release period. The only other one I know of is
http://caml.inria.fr/mantis/view.php?id=6908 .




On Fri, Jun 19, 2015 at 1:38 PM, Simon Cruanes <simon.cruanes.2007@m4x.org>
wrote:

> Hi,
>
> I know it should have been reported before, during the rc1, but anyway,
> I noticed this after the release (not my packages):
>
> ```
> type foo = { bar[@toto] : int };;
> ```
>
> This compiles on 4.02.1 (and puts the attribute [@toto] on the field `bar`)
> but fails to compile on 4.02.2 as follows:
>
> ```
> # type foo = { bar [@toto] : int  };;
> Error: Syntax error
> ```
>
> This breaks ppx_deriving (for which a patch is underway), and every
> piece of code that uses it with attributes on records, yet nothing is
> mentioned in the changelog (at least not with a "breaking" annotation)?
>
> Cheers!
>
> Le Wed, 17 Jun 2015, Damien Doligez a écrit :
> > We have the pleasure of celebrating the birthdays of Cesar-Francois
> > Cassini, Igor Stravinsky and Maurits Cornelis Escher by announcing the
> > release of OCaml version 4.02.2.
> > This release has a few new features and a lot of bug fixes, see the
> > list of changes below.
> >
> > It is available:
> > - as source code: <
> > http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.2.tar.gz >
> > - as an OPAM switch: "opam switch 4.02.2"
> >
> > We would like to take the opportunity to thank all the third-party
> > packagers who make this easy to install for end users.
> >
> > Happy hacking,
> >
> > -- Damien Doligez for the OCaml team.
> >
> >
> > OCaml 4.02.2:
> > -------------
> >
> > (Changes that can break existing programs are marked with a "*")
> >
> > Language features:
> > - PR#6583: add a new class of binary operators with the same syntactic
> >   precedence as method calls; these operators start with # followed
> >   by a non-empty sequence of operator symbols (for instance #+, #!?).
> >   It is also possible to use '#' as part of these extra symbols
> >   (for instance ##, or #+#); this is rejected by the type-checker,
> >   but can be used e.g. by ppx rewriters.
> >   (Alain Frisch, request by Gabriel Radanne)
> > * PR#6016: add a "nonrec" keyword for type declarations
> >   (Jérémie Dimino)
> >
> > Compilers:
> > - PR#6600: make -short-paths faster by building the printing map
> >   incrementally
> >   (Jacques Garrigue)
> > - PR#6642: replace $CAMLORIGIN in -ccopt with the path to cma or cmxa
> >   (Peter Zotov, Gabriel Scherer, review by Damien Doligez)
> > - PR#6797: new option -output-complete-obj
> >   to output an object file with included runtime and autolink libraries
> >   (Peter Zotov)
> > - PR#6845: -no-check-prims to tell ocamlc not to check primitives in
> runtime
> >   (Alain Frisch)
> > - GPR#149: Attach documentation comments to parse tree
> >   (Leo White)
> > - GPR#159: Better locations for structure/signature items
> >   (Leo White)
> >
> > Toplevel and debugger:
> > - PR#5958: generalized polymorphic #install_printer
> >   (Pierre Chambart and Grégoire Henry)
> >
> > OCamlbuild:
> > - PR#6237: explicit "infer" tag to control or disable menhir --infer
> >   (Hugo Heuzard)
> > - PR#6625: pass -linkpkg to files built with -output-obj.
> >   (Peter Zotov)
> > - PR#6702: explicit "linkpkg" and "dontlink(foo)" flags
> >   (Peter Zotov, Gabriel Scherer)
> > - PR#6712: Ignore common VCS directories
> >   (Peter Zotov)
> > - PR#6720: pass -g to C compilers when tag 'debug' is set
> >   (Peter Zotov, Gabriel Scherer)
> > - PR#6733: add .byte.so and .native.so targets to pass
> >   -output-obj -cclib -shared.
> >   (Peter Zotov)
> > - PR#6733: "runtime_variant(X)" to pass -runtime-variant X option.
> >   (Peter Zotov)
> > - PR#6774: new menhir-specific flags "only_tokens" and
> "external_tokens(Foo)"
> >   (François Pottier)
> >
> > Libraries:
> > - PR#6285: Add support for nanosecond precision in Unix.stat()
> >   (Jérémie Dimino, report by user 'gfxmonk')
> > - PR#6781: Add higher baud rates to Unix termios
> >   (Damien Doligez, report by Berke Durak)
> > - PR#6834: Add Obj.{first,last}_non_constant_constructor_tag
> >   (Mark Shinwell, request by Gabriel Scherer)
> >
> > Runtime:
> > - PR#6078: Release the runtime system when calling caml_dlopen
> >   (Jérémie Dimino)
> > - PR#6675: GC hooks
> >   (Damien Doligez and Roshan James)
> >
> > Build system:
> > - PR#5418 (comments) : generate dependencies with $(CC) instead of gcc
> >   (Damien Doligez and Michael Grünewald)
> > - PR#6266: Cross compilation for iOs, Android etc
> >   (Peter Zotov, review by Damien Doligez and Mark Shinwell)
> >
> > Installation procedure:
> > - Update instructions for x86-64 PIC mode and POWER architecture builds
> >   (Mark Shinwell)
> >
> > Bug fixes:
> > - PR#5271: Location.prerr_warning is hard-coded to use
> Format.err_formatter
> >   (Damien Doligez, report by Rolf Rolles)
> > - PR#5395: OCamlbuild mishandles relative symlinks and include paths
> >   (Damien Doligez, report by Didier Le Botlan)
> > - PR#5822: wrong value of Options.ext_dll on windows
> >   (Damien Doligez and Daniel Weil)
> > - PR#5836, PR#6684: printing lazy values in ocamldebug may segfault
> >   (Gabriel Scherer, request by the Coq team)
> > - PR#5887: move the byterun/*.h headers to byterun/caml/*.h to avoid
> >   header name clashes
> >   (Jérôme Vouillon and Adrien Nader and Peter Zotov)
> > - PR#6281: Graphics window does not acknowledge second click (double
> click)
> >   (Kyle Headley)
> > - PR#6490: incorrect backtraces in gdb on AArch64.  Also fixes incorrect
> >   backtraces on 32-bit ARM.
> >   (Mark Shinwell)
> > - PR#6573: extern "C" for systhreads/threads.h
> >   (Mickaël Delahaye)
> > - PR#6575: Array.init evaluates callback although it should not do so
> >   (Alain Frisch, report by Gerd Stolpmann)
> > - PR#6607: The manual doesn't mention 0x200 flag for OCAMLRUNPARAM=v
> >   (Alain Frisch)
> > - PR#6616: allow meaningful use of -use-runtime without -custom.
> >   (Peter Zotov)
> > - PR#6617: allow android build with pthreads support (since SDK r10c)
> >   (Peter Zotov)
> > - PR#6626: ocamlbuild on cygwin cannot find ocamlfind
> >   (Gergely Szilvasy)
> > - PR#6628: Configure script rejects legitimate arguments
> >   (Michael Grünewald, Damien Doligez)
> > - PR#6630: Failure of tests/prim-bigstring/{big,}string.ml on big-endian
> >   architectures
> >   (Pierre Chambart, testing by Mark Shinwell)
> > - PR#6640: ocamlbuild: wrong "unused tag" warning on "precious"
> >   (report by user 'william')
> > - PR#6652: ocamlbuild -clean does not print a newline after output
> >   (Damien Doligez, report by Andi McClure)
> > - PR#6658: cross-compiler: version check not working on OS X
> >   (Gerd Stolpmann)
> > - PR#6665: Failure of tests/asmcomp on sparc
> >   (Stéphane Glondu)
> > - PR#6667: wrong implementation of %bswap16 on ARM64
> >   (Xavier Leroy)
> > - PR#6669: fix 4.02 regression in toplevel printing of lazy values
> >   (Leo White, review by Gabriel Scherer)
> > - PR#6671: Windows: environment variable 'TZ' affects Unix.gettimeofday
> >   (Mickael Delahaye and Damien Doligez)
> > - PR#6680: Missing parentheses in warning about polymorphic variant value
> >   (Jacques Garrigue and Gabriel Scherer, report by Philippe Veber)
> > - PR#6686: Bug in [subst_boxed_number]
> >   (Jérémie Dimino, Mark Shinwell)
> > - PR#6690: Uncaught exception (Not_found) with (wrong) wildcard or
> unification
> >   type variable in place of a local abstract type
> >   (Jacques Garrigue, report by Mikhail Mandrykin)
> > - PR#6693 (part two): Incorrect relocation types in x86-64 runtime system
> >   (Peter Zotov, review by Jacques-Henri Jourdan, Xavier Leroy and Mark
> Shinwell)
> > - PR#6717: Pprintast does not print let-pattern attributes
> >   (Gabriel Scherer, report by Peter Zotov)
> > - PR#6727: Printf.sprintf "%F" misbehavior
> >   (Benoît Vaugon, report by Vassili Karpov)
> > - PR#6747: ocamlobjinfo: missing symbol caml_plugin_header due to
> underscore
> >   (Damien Doligez, Maverick Woo)
> > - PR#6749: ocamlopt returns n for (n mod 1) instead of 0
> >   (Mark Shinwell and Jérémie Dimino)
> > - PR#6753: Num.quo_num and Num.mod_num incorrect for some negative
> arguments
> >   (Xavier Leroy)
> > - PR#6758: Ocamldoc "analyse_module: parsetree and typedtree don't match"
> >   (Damien Doligez, report by user 'maro')
> > - PR#6759: big_int_of_string incorrectly parses some hexa literals
> >   (Damien Doligez, report by Pierre-yves Strub)
> > - PR#6763: #show with -short-paths doesn't select shortest type paths
> >   (Jacques Garrigue, report by David Sheets)
> > - PR#6768: Typechecker overflow the stack on cyclic type
> >   (Jacques Garrigue, report by user 'darktenaibre')
> > - PR#6772: asmrun/signals_asm.c doesn't compile on NetBSD/i386
> >   (Kenji Tokudome)
> > - PR#6775: Digest.file leaks file descriptor on error
> >   (Valentin Gatien-Baron)
> > - PR#6779: Cross-compilers cannot link bytecode using custom primitives
> >   (Damien Doligez, request by Peter Zotov)
> > - PR#6787: Soundness bug with polymorphic variants
> >   (Jacques Garrigue, with help from Leo White and Grégoire Henry,
> >    report by Michael O'Connor)
> > - PR#6790: otherlibs should be built with -g
> >   (Damien Doligez, report by Peter Zotov)
> > - PR#6791: "%s@[", "%s@{" regression in Scanf
> >   (Benoît Vaugon)
> > - PR#6793: ocamlbuild passes nonsensical "-ocamlc ..." commands to menhir
> >   (Gabriel Scherer, report by Damien Doligez)
> > - PR#6799: include guards missing for unixsupport.h and other files
> >   (Andreas Hauptmann)
> > - PR#6810: Improve documentation of Bigarray.Genarray.map_file
> >   (Mark Shinwell and Daniel Bünzli)
> > - PR#6812: -short-paths and -no-alias-deps can create inconsistent
> assumptions
> >   (Jacques Garrigue, report by Valentin Gatien-Baron)
> > - PR#6817: GADT exhaustiveness breakage with modules
> >   (Leo White, report by Pierre Chambart)
> > - PR#6824: fix buffer sharing on partial application of Format.asprintf
> >   (Gabriel Scherer, report by Alain Frisch)
> > - PR#6831: Build breaks for -aspp gcc on solaris-like OSs
> >   (John Tibble)
> > - PR#6836: Assertion failure using -short-paths
> >   (Jacques Garrigue, report by David Sheets)
> > - PR#6837: Build profiling libraries on FreeBSD and NetBSD x86-64
> >   (Mark Shinwell, report by Michael Grünewald)
> > - PR#6841: Changing compilation unit name with -o breaks ocamldebug
> >   (Jacques Garrigue, report by Jordan Walke)
> > - PR#6843: record weak dependencies even when the .cmi is missing
> >   (Leo White, Gabriel Scherer)
> > - PR#6849: Inverted pattern unification error
> >   (Jacques Garrigue, report by Leo White)
> > - PR#6857: __MODULE__ doesn't give the current module with -o
> >   (Jacques Garrigue, report by Valentin Gatien-Baron)
> > - PR#6862: Exhaustiveness check wrong for class constructor arguments
> >   (Jacques Garrigue)
> > - PR#6869: Improve comment on [Hashtbl.hash_param]
> >   (Mark Shinwell, report by Jun Furuse)
> > - PR#6870: Unsoundness when -rectypes fails to detect non-contractive
> type
> >   (Jacques Garrigue, report by Stephen Dolan)
> > - PR#6872: Type-directed propagation fails to disambiguate variants
> >   that are also exception constructors
> >   (Jacques Garrigue, report by Romain Beauxis)
> > - PR#6878: AArch64 backend generates invalid asm: conditional branch
> >   out of range (Mark Shinwell, report by Richard Jones, testing by
> Richard
> >   Jones and Xavier Leroy, code review by Xavier Leroy and Thomas Refis)
> > - PR#6879: Wrong optimization of 1 mod n
> >   (Mark Shinwell, report by Jean-Christophe Filliâtre)
> > - PR#6884: The __CYGWIN32__ #define should be replaced with __CYGWIN__
> >   (Adrien Nader)
> > - PR#6886: -no-alias-deps allows to build self-referential compilation
> units
> >   (Jacques Garrigue, report by Valentin Gatien-Baron)
> > - PR#6889: ast_mapper fails to rewrite class attributes
> >   (Sébastien Briais)
> > - PR#6893: ocamlbuild:  "tag not used" warning when using (p)dep
> >   (Gabriel Scherer, report by Christiano Haesbaert)
> > - GPR#143: fix getsockopt behaviour for boolean socket options
> >   (Anil Madhavapeddy and Andrew Ray)
> > - GPR#190: typo in pervasives
> >   (Guillaume Bury)
> > - Misplaced assertion in major_gc.c for no-naked-pointers mode
> >   (Stephen Dolan, Mark Shinwell)
> >
> > Feature wishes:
> > - PR#6452, GPR#140: add internal suport for custom printing formats
> >   (Jérémie Dimino)
> > - PR#6641: add -g, -ocamlcflags, -ocamloptflags options to ocamlmklib
> >   (Peter Zotov)
> > - PR#6693: also build libasmrun_shared.so and lib{asm,caml}run_pic.a
> >   (Peter Zotov, review by Mark Shinwell)
> > - PR#6842: export Typemod.modtype_of_package
> >   (Jacques Garrigue, request by Jun Furuse)
> > - GPR#139: more versatile specification of locations of .annot
> >   (Christophe Troestler, review by Damien Doligez)
> > - GPR#157: store the path of cmos inside debug section at link time
> >   (Hugo Heuzard, review by Damien Doligez)
> > - GPR#191: Making gc.h and some part of memory.h public
> >   (Thomas Refis)
> >
> > --
> > 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
>
>
> --
> Simon
>
> http://weusepgp.info/
> key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3  7D8D 4AC0 1D08 49AA
> 62B6
>

[-- Attachment #2: Type: text/html, Size: 18513 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Caml-list] OCaml release 4.02.2
  2015-06-19 11:59   ` Gabriel Scherer
@ 2015-06-19 12:08     ` Simon Cruanes
  0 siblings, 0 replies; 4+ messages in thread
From: Simon Cruanes @ 2015-06-19 12:08 UTC (permalink / raw)
  To: Gabriel Scherer; +Cc: Damien Doligez, caml users

[-- Attachment #1: Type: text/plain, Size: 2582 bytes --]

Le Fri, 19 Jun 2015, Gabriel Scherer a écrit :
> This change to the placement of attributes that was discussed in
>   http://caml.inria.fr/mantis/view.php?id=6612
>   https://github.com/ocaml/ocaml/pull/152
> 
> It is indeed a mistake that it is not in the Changelog. As a meta-comment
> (not discussing this particular patch), in the future we might need to have
> "a proper Changelog line" as an explicit requirement for all submitted
> patches (I would be tempted to add "a testsuite test exercising the
> affected features"), because it is fairly error-prone to try to track
> changes to add to the changelog after they've been merged.
> 
> The rationale for this change is that the syntax was perceived as an
> improvement by the ppx-users that expressed an opinion on the issue, and
> they asked for this to be released as soon as possible hoping to facilitate
> the transition to the new syntax (few existing users).
> The change was tested against all released OPAM packages, and riak_ppx was
> the only package that broke. It seems that either (1) the code using the
> old syntax had not been released as OPAM packages yet (in retrospect it
> seems reasonable that using OPAM testing as only testing vehicle is rather
> fragile for very recent features; on the other hand, I don't know which
> other tests could be put in place) or (2) said packages did not break in a
> way that was perceptible to the automated tool.

ppx_deriving compiles with 4.02.2, but its tests do not pass. I indeed
have some unreleased code that breaks (it's on a distinct opam repo).
I suspect the tool does not run tests?

The syntax change might be an improvement indeed, but disabling the old behavior
(attaching attributes to record labels) is *breaking* in a way that
makes fixes difficult. For instance, introducing 'nonrec' is breaking,
but in an easy to fix way; the attribute change is hard (you need to
edit code manually to move annotations).

> 
> I think 4.02.2 is a slightly less minor release than is usual: it does have
> some new features that are not simply bugfixes, because they were requested
> by users which were eager to see them released (typically all the
> ppx-related changes). This is a delicate compromise to make, and
> unfortunately there are indeed a couple regressions -- despite a very
> silent rc1-to-release period. The only other one I know of is
> http://caml.inria.fr/mantis/view.php?id=6908 .


-- 
Simon

http://weusepgp.info/
key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3  7D8D 4AC0 1D08 49AA 62B6

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-06-19 12:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-17 19:44 [Caml-list] OCaml release 4.02.2 Damien Doligez
2015-06-19 11:38 ` Simon Cruanes
2015-06-19 11:59   ` Gabriel Scherer
2015-06-19 12:08     ` Simon Cruanes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).