[m-rev.] for review: announce a bunch of bug fixes

Julien Fischer jfischer at opturion.com
Mon Jan 6 16:11:14 AEDT 2020


For review by anyone.

----------------------------

Announce a bunch of bug fixes.

NEWS:
    As above; these announcements are only for bugs that were present in the
    previous stable release.

    Provide the Mantis issue number where applicable.

Julien.

diff --git a/NEWS b/NEWS
index 93d3cb7..0ccb2e2 100644
--- a/NEWS
+++ b/NEWS
@@ -69,7 +69,7 @@ Changes that may break compatibility
  * We have enabled stricter checking of non-ground final insts to reject more
    mode-incorrect code. Due to compiler limitations, some code that should be
    accepted will now be rejected. They will require modifications to appease
-  the compiler.
+  the compiler. [Mantis bugs #86, #117, #191].

  * We have enabled stricter checking of the requirement that a type, inst
    or a mode that is *not* exported from a module may not be used in the
@@ -830,16 +830,16 @@ Changes to the Mercury standard library
      - `foldr_substring/5`
      - `foldr_substring/6`

-* `base_digit_to_int/3` and `det_base_digit_to_int/2` now check
-  for overflow and underflow in all bases, not only base 10.
-
  * We have reduced the memory allocated by `to_lower` and `to_upper`.

  * `string_to_doc/1` now escapes characters in its input argument with
    backslash escapes when required.

-* Float special values, NaNs and Infinities, are now converted to strings in
-  a way that is backend- and grade-independent. [Mantis bug #348]
+* [Mantis bug #348].  Float special values, NaNs and Infinities, are now
+  converted to strings in a way that is backend- and grade-independent.
+
+* [Mantis bug #376]. `base_digit_to_int/3` and `det_base_digit_to_int/2` now
+  check for overflow and underflow in all bases, not only base 10.

  ### Changes to the `store` module

@@ -1074,14 +1074,54 @@ Changes to the Mercury compiler

  ### Bug fixes

-* We have fixed a long-standing bug causing crashes in deep profiling
-  grades, related to unify/compare for tuples. [Mantis bug #3]
-
  * We have fixed some bugs with constrained polymorphic modes.

  * The compiler now reports an error for binary/octal/hexadecimal integer
    literals that cannot be represented in the compiler's native `int` type.

+* [Mantis bug #3]. We have fixed a long-standing bug causing crashes in
+  deep profiling grades, related to unify/compare for tuples.
+
+* [Mantis bug #184]. We have fixed a bug that caused a compiler abort in the
+  presence of unsatisfied type class constraints.
+
+* [Mantis bug #196]. We have made binary compatibility checks in C grades
+  work again; GCC and clang were optimizing them away.
+
+* [Mantis bug #264]. Putting a function with a non-default signature into a
+  ground term is now no longer allowed. This is because extracting the function
+  from the term would assume the default function signature.
+
+* [Mantis bug #278]. We have fixed a bug where erroneous state variable use
+  in the head of a lambda expression would cause a compiler abort instead of
+  generating an error message.
+
+* [Mantis bug #318]. We no longer erroneously report an error if a
+  `foreign_type` pragma precedes the `:- type` declaration to which it applies.
+
+* [Mantis bug #388]. We have fixed a bug where JAR files were being installed
+  with incorrect permissions.
+
+* [Mantis bug #391]. We have fixed a bug where the conditions on `trace` goals
+  were being discarded when inlined across module boundaries.
+
+* [Mantis bug #402]. The current state of a state variable can now by used in
+  the head of a `require_complete_switch` scope.
+
+* [Mantis bug #415]. We have fixed a bug that cause the compiler to go into
+  an infinite loop when pretty printing recursive insts for use in error
+  messages.
+
+* [Mantis bug #420]. We have fixed a bug where `try` goals that were inlined
+  across module boundaries would ignore exceptions instead of catching them.
+
+* [Mantis bug #436]. We have fixed a bug where the compiler would silently
+  allow a `foreign_enum` pragma to contain a constructor not belonging to the
+  type that is the subject of the pragma.
+
+* [Mantis bug #437]. We have fixed a bug that caused an abort if an empty
+  submodule was encountered.
+
  ### Other changes

  * Class files generated for executables in the Java grade are now automatically
@@ -1116,6 +1156,12 @@ Portability improvements

    See README.AIX for further details.

+* [Mantis bug #357]. We now use the `libdispatch` implementation of semaphores
+  on OS X as the POSIX one was a non-functional stub.
+
+* [Mantis bug #463]. We now allow the use of the Microsoft C# compiler
+  (i.e. Roslyn) in POSIX environments.
+
  Changes to the Mercury debugger
  -------------------------------



More information about the reviews mailing list