diff -r ea97aa6aeba2 -r 3c6cd80a4854 NEWS --- a/NEWS Tue Dec 30 11:10:01 2008 +0100 +++ b/NEWS Tue Dec 30 16:50:46 2008 +0100 @@ -130,7 +130,7 @@ consider declaring a new locale with additional type constraints on the parameters (context element "constrains"). -* Dropped "locale (open)". INCOMPATBILITY. +* Dropped "locale (open)". INCOMPATIBILITY. * Interpretation commands no longer attempt to simplify goal. INCOMPATIBILITY: in rare situations the generated goal differs. Use @@ -139,6 +139,36 @@ * Interpretation commands no longer accept interpretation attributes. INCOMPATBILITY. +* Complete re-implementation of locales. INCOMPATIBILITY. +The most important changes are listed below. See documentation +(forthcoming) and tutorial (also forthcoming) for details. + +- In locale expressions, instantiation replaces renaming. Parameters +must be declared in a for clause. To aid compatibility with previous +parameter inheritance, in locale declarations, parameters that are not +'touched' (instantiation position "_" or omitted) are implicitly added +with their syntax at the beginning of the for clause. + +- Syntax from abbreviations and definitions in locales is available in +locale expressions and context elements. The latter is particularly +useful in locale declarations. + +- More flexible mechanisms to qualify names generated by locale +expressions. Qualifiers (prefixes) may be specified in locale +expressions. Available are normal qualifiers (syntax "name:") and strict +qualifiers (syntax "name!:"). The latter must occur in name references +and are useful to avoid accidental hiding of names, the former are +optional. Qualifiers derived from the parameter names of a locale are no +longer generated. + +- "sublocale l < e" replaces "interpretation l < e". The instantiation +clause in "interpretation" and "interpret" (square brackets) is no +longer available. Use locale expressions. + +- When converting proof scripts, be sure to replace qualifiers in +"interpretation" and "interpret" by strict qualifiers. Qualifiers in +locale expressions range over a single locale instance only. + * Command 'instance': attached definitions no longer accepted. INCOMPATIBILITY, use proper 'instantiation' target.