New upstream version 4.13.1
authorStephane Glondu <steph@glondu.net>
Tue, 21 Dec 2021 12:50:00 +0000 (13:50 +0100)
committerStéphane Glondu <glondu@debian.org>
Tue, 21 Dec 2021 12:50:00 +0000 (13:50 +0100)
Changes
VERSION
boot/ocamlc
boot/ocamllex
configure
ocaml-variants.opam
testsuite/tests/typing-modules-bugs/pr10661_ok.ml [new file with mode: 0644]
typing/btype.ml

diff --git a/Changes b/Changes
index cf020c898bffc9dfa608303a0d31aecfcb267d6b..deb5c53448aafb61f45016ae9412306f1748108b 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,12 @@
+OCaml 4.13.1 (01 October 2021)
+--------------------------------
+
+### Bug fixes
+
+- #10661, #10662: fix a bug with classes named "row"
+  (Gabriel Scherer, report by Nicolás Ojeda Bär)
+
+
 OCaml 4.13.0 (24 September 2021)
 --------------------------------
 
diff --git a/VERSION b/VERSION
index 3cc34799e4608e88d3f9327f5ea72ebbafe152b7..1854a0b21a3920d3c6b61f8bdeb2b2d6b4dd0459 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,4 +1,4 @@
-4.13.0
+4.13.1
 
 # The version string is the first line of this file.
 # It must be in the format described in stdlib/sys.mli
index 7874a890bba732acaf555ec91132fa681bd79b0e..8a6cfd73ecb0fdc406daa6fb06a23841afaa97ac 100755 (executable)
Binary files a/boot/ocamlc and b/boot/ocamlc differ
index 5a3705cb74040cda739d7ad031ca19cf5a419615..18a39850b35cf2b3c78fca359993edeea70f48ce 100755 (executable)
Binary files a/boot/ocamllex and b/boot/ocamllex differ
index 961232fc1aeb9cd57ff8d84eefb82a74c8d887a4..bf3052be4ecbe71e21b3013cbc9a50162db074d2 100755 (executable)
--- a/configure
+++ b/configure
@@ -56,7 +56,7 @@ if test -e '.git' ; then :
   fi
 fi
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for OCaml 4.13.0.
+# Generated by GNU Autoconf 2.69 for OCaml 4.13.1.
 #
 # Report bugs to <caml-list@inria.fr>.
 #
@@ -646,8 +646,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='OCaml'
 PACKAGE_TARNAME='ocaml'
-PACKAGE_VERSION='4.13.0'
-PACKAGE_STRING='OCaml 4.13.0'
+PACKAGE_VERSION='4.13.1'
+PACKAGE_STRING='OCaml 4.13.1'
 PACKAGE_BUGREPORT='caml-list@inria.fr'
 PACKAGE_URL='http://www.ocaml.org'
 
@@ -1479,7 +1479,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures OCaml 4.13.0 to adapt to many kinds of systems.
+\`configure' configures OCaml 4.13.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1545,7 +1545,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of OCaml 4.13.0:";;
+     short | recursive ) echo "Configuration of OCaml 4.13.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1709,7 +1709,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-OCaml configure 4.13.0
+OCaml configure 4.13.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2418,7 +2418,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by OCaml $as_me 4.13.0, which was
+It was created by OCaml $as_me 4.13.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2767,8 +2767,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring OCaml version 4.13.0" >&5
-$as_echo "$as_me: Configuring OCaml version 4.13.0" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring OCaml version 4.13.1" >&5
+$as_echo "$as_me: Configuring OCaml version 4.13.1" >&6;}
 
 # Configuration variables
 
@@ -2851,7 +2851,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
-VERSION=4.13.0
+VERSION=4.13.1
 
 
 # Note: This is present for the flexdll bootstrap where it exposed as the old
@@ -12727,7 +12727,7 @@ case $ocaml_cv_cc_vendor in #(
   cc_warnings='-Wall -Wdeclaration-after-statement' ;;
 esac
 
-case $enable_warn_error,4.13.0 in #(
+case $enable_warn_error,4.13.1 in #(
   yes,*|,*+dev*) :
     cc_warnings="$cc_warnings $warn_error_flag" ;; #(
   *) :
@@ -17602,7 +17602,7 @@ fi
 
 
 
-case $enable_ocamltest,4.13.0 in #(
+case $enable_ocamltest,4.13.1 in #(
   yes,*|,*+dev*) :
     ocamltest='ocamltest' ;; #(
   *) :
@@ -18320,7 +18320,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by OCaml $as_me 4.13.0, which was
+This file was extended by OCaml $as_me 4.13.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18387,7 +18387,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-OCaml config.status 4.13.0
+OCaml config.status 4.13.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index 4c3d58c83dd0b9609f86293bca271a8d68a4838c..938807ea8069f5a0bd8bb0975813c29185039174 100644 (file)
@@ -1,8 +1,8 @@
 opam-version: "2.0"
-version: "4.13.0"
-synopsis: "OCaml 4.13.0"
+version: "4.13.1"
+synopsis: "OCaml 4.13.1"
 depends: [
-  "ocaml" {= "4.13.0" & post}
+  "ocaml" {= "4.13.1" & post}
   "base-unix" {post}
   "base-bigarray" {post}
   "base-threads" {post}
diff --git a/testsuite/tests/typing-modules-bugs/pr10661_ok.ml b/testsuite/tests/typing-modules-bugs/pr10661_ok.ml
new file mode 100644 (file)
index 0000000..1dfa42f
--- /dev/null
@@ -0,0 +1,10 @@
+(* TEST
+* setup-ocamlc.byte-build-env
+** ocamlc.byte
+*** check-ocamlc.byte-output
+*)
+
+module M = struct
+  class row = object
+  end
+end
index e414f7a9a6f49a65eca8efd20439f8619ee100dd..a18f53dd258a6ed228d01986086eb24a7e1cbf53 100644 (file)
@@ -245,7 +245,9 @@ let has_constr_row t =
 
 let is_row_name s =
   let l = String.length s in
-  if l < 4 then false else String.sub s (l-4) 4 = "#row"
+  (* PR#10661: when l=4 and s is "#row", this is not a row name
+     but the valid #-type name of a class named "row". *)
+  l > 4 && String.sub s (l-4) 4 = "#row"
 
 let is_constr_row ~allow_ident t =
   match t.desc with