Dear Maude Abusers, A new alpha release can be accessed at SRI-CSL in: ~eker/public_html/Maude/Alpha86d/ or downloaded from: http://www.csl.sri.com/~eker/Maude/Alpha86d/ Alpha release site authentication: User Name: maudeabuser Password: bughunter This version is a Maude 2.2 release candidate and reports itself as such. In addition to the normal Linux on i86 and Darwin on PowerPC versions I have made binaries for: Linux on x86-64 maude.linux64 (compiled with gcc 4.0.1) Linux on PowerPC maude.macLinux (compiled with gcc 4.0.1) FreeBSD on i86 maude.freeBSD (compiled with gcc 4.0.3) The x86-64 binary omits Doug Lea's malloc because of linking issues. (The Darwin version has always omitted this version of malloc in favor of Apple's version.) I am considering dropping support for AIX (pain to build) and Alpha (obsolete hardware). I'm not sure what to do about Solaris - it is a pain to build (our system guys don't have a working gcc 4.0.1 on this platform yet) - but Sun are still shipping SPARC-based workstations. Does anyone care about this platform? Bug fixes ========== (1) A stale pointer bug in the code handling invalidatation and reevalutation of views. Found by Manolo Roldan and provoked by the following code: fth NAT* is protecting NAT . op * : -> Nat . endfth fmod NAT/{N :: NAT*} is sort Nat/{N} . endfm mod BUG is pr P{3} . endm view 3 from NAT* to NAT is op * to term 3 . endv mod P{P :: NAT*} is protecting NAT/{P} . endm fth NAT* is protecting NAT . op * : -> Nat . endfth fmod NAT/{N :: NAT*} is sort Nat/{N} . endfm mod BUG is pr P{3} . endm (2) fmod LIST-AND-SET in prelude.maude used inc rather than protecting for its imports. Reported by Narciso. (3) An uninitialized format attribute bug, visible under Purify. (4) A memory leak where the module expressions for parameter theories were not being deleted when a parameterized module is overwritten by a newer module with the same name. (5) A memory leak where identities for polymorphs were not being deleted with the polymorph. (6) A bug where identities for polymorphs were not being preprocessed; provoked by the following example: fmod NORM is sort Foo . ops 0 a : -> Foo . ops s f : Foo -> Foo . op _+_ : Foo Foo -> Foo [id: 0] . op _*_ : Universal Foo -> Universal [poly (1 0) right id: (s(0) + 0)] . var X : Foo . eq a * s(X) = f(X) . endfm red a . Here _*_'s identity is not simplifed to s(0) before the equation is semi-compiled and thus the match X |-> 0 is missed at runtime. (7) A bug in the deletion of invalidated modules from a modules metamodule cache. (8) lesserSorts() is defined on types but only worked on sorts; this is resolved by making it work on types. Reported by Narciso. Other Changes ============== (1) prelude.maude now contains QID-SET; META-MODULE now protects QID-SET * (op empty to none, op _,_ to _;_ [prec 43]) and has extra sorts NeSortSet, NeKindSet, NeTypeSet together with extra subsort and operator declarations needed to preserve preregularity and type associativity of _;_. This change was requested by Carolyn. (2) sortLeq() is now defined and implemented over types rather than sorts for symmetry with the lesserSorts() fix. Steven