Alpha 138 release notes
========================

Bug fixes
==========

(1) A bug where views that were the result of a double (or more)
instantiation were getting bad internal names. This is visible when
a parameterized sort instantiated by such a view is not recognized as
the same as the sort directly generated by the parser. For example:

fmod FOO{X :: STRICT-WEAK-ORDER} is
  protecting LIST{Set{STRICT-WEAK-ORDER}{X}} .
  op a : -> NeList{Set{STRICT-WEAK-ORDER}{X}} .
endfm

Warning: <standard input>, line 3 (fmod FOO): undeclared sort NeList{Set{STRICT-WEAK-ORDER}{X}}.

Here the view Set{STRICT-WEAK-ORDER}{X} gets a bad internal name and
the sort NeList{Set{STRICT-WEAK-ORDER}{X}} generated by the instatiation
LIST{Set{STRICT-WEAK-ORDER}{X}} also gets a bad internal name and is not
recognized as the sort NeList{Set{STRICT-WEAK-ORDER}{X}} generated by the
parser for the declaration of op a. An example of a triple instantiation
with a similar problem is:

fmod BAR is
  protecting LIST{Set{STRICT-WEAK-ORDER}{STRICT-TOTAL-ORDER}{Int<}} .
  op a : -> NeList{Set{STRICT-WEAK-ORDER}{STRICT-TOTAL-ORDER}{Int<}} .
endfm

This problem originally showed up in an example from Lorenzo Capra <capra@di.unimi.it>

(2) A bug in the printing of kinds in unprocessed modules where the
first sort in a kind would be printed with backquotes; illustrated by:

fmod FOO{X :: TRIV} is
  sorts S{X} T{X} .
  subsort X$Elt < S{X} T{X} .
  op f : [S{X},T{X}] -> [S{X},T{X}] .
endfm

show mod .

prints the operator f as:

  op f : [S`{X`},T{X}] -> [S`{X`},T{X}] .

(3) A bug where Maude crashes due to an array bounds violation when
doing filtered variant unification when there are no variables.
Originally reported by Santiago in a vu-narrow example using the filter
option in version 3.2.1 (which changed unification against the goal to
use filtered variant unification if the filter option is given) and
later reported by Rubén with this much simpler example:
  filtered variant unify in NAT : 1 =? 1 .

(4) An issue where fileTest fails in environments where file handles
available to the user start at something other than 3. Reported by Felix Yan
and fixed by a patch supplied by Rubén.

(5) An issue that caused compilation to fail with recent versions of
glibc where SIGSTKSZ is no longer a compile time constant. Reported by
Matthew Sottile.


Other changes
==============

(1) There are commands
  show desugared .
  show desugared <module> .
for printing out the current module or a named module respectively.
Like the show all commands, these show the module after analysis with
syntactic sugar removed, and statements that fail mixfix parsing are
also removed. Like the show mod commands, the imports are shown explicitly
rather than showing a flat module. These commands were actually implemented
in Maude 3.2 but were left undocumented in case a better name was found for
this functionality.

(2) In preparation for full omod/oth support, omods are converted
to mods and oths to ths during desugaring and this shows up for example
in the show desugared and show all commands.
