Dear Maude Abusers, A new alpha release can be accessed at SRI-CSL in: ~eker/public_html/Maude/Alpha92c/ or downloaded from: http://www.csl.sri.com/~eker/Maude/Alpha92c/ Alpha release site authentication: User Name: maudeabuser Password: bughunter This version is intended as the Maude entry for REC III and thus I've only made Linux64 and IntelDarwin versions. Bug fix -------- (1) A bug in the metaPrettyPrint() operation where opening parens were generated rather than closing parens if the mixfix and with-parens options were both used on an associative term. Provoked by this example from Traian: mod X is including META-LEVEL . sort S . op a : -> S . op __ : S S -> S [assoc] . endm red metaPrettyPrint(upModule('X,false),upTerm(a a a), mixfix with-parens) . Other changes -------------- I've done a number of optimizations, mostly for free theory rewriting. The biggest win seems to be implementing tail recursion elimination on the last argument for the comparison of free theory dag nodes. So comparing terms like s(s(s(... 0 ...))) or l(a, l(b, l(c, ... ))) to terms that are almost but not quite equal (or that are equal but unshared) becomes much faster. Other optimizations that proved worthwhile included: (a) Reorganizing key data structures and functions to avoid extra sign extension instructions in hot spots on the x86-64. (b) Simplifying the "need to collect garbage test" to a single global Boolean. (c) A result encoding trick for binary-search in the ACU theory. (d) Special casing the free theory descrimination net code for free symbols that store their arguments internally (e) Recoding the branch free following of branching data structures trick so that gcc can do an even cuter right shift trick. (f) Depointerizing the free theory descrimination net code (pointerizing was a RISC era trick when address generation units couldn't do two adds per cycle) and using the lack of pointers to speed up saving state information during condition evaluation. Steven