[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ooc-990613 & oo2c-1.4.3
This month's update features these changes:
o "make install" now removes any obsolete X11 modules that may have
been left in the installation directory from a pre-1.4.0
installation. Thanks to Marco Oetken for pointing this problem out
to me.
o The check for duplicate CASE labels was buggy. A label could appear
in multiple branches without causing an error message, and
subsequently a broken ELSE part was generated.
o When scanning for unresolved abstract procedures, a wrong procedure
count was used, typically dropping some "procedure still ABSTRACT"
errors.
o An ABSTRACT function procedure will no longer trigger a "no RETURN
in function" warning.
o oocn did not know the data LONGCHAR, nor the predefined function
LONGCHR. Fixed.
o New feature for oocn: The filter option --strip-mident converts
hierarchival module names to plain identifiers by removing the name
separator. The module header, its END statement, and all IMPORT
statements are rewritten. Note that it is possible that distinct
names are mapped to the same identifier, e.g. both "A:B:C" and
"A:BC" are changed to "ABC". In short: this filter might not be
perfect, but it is very useful.
o The pragma variable TARGET_BYTE_ORDER is now set by configure.
Previously its value was always "unknown".
o The new C level macros STATIC_TBCALL and DYN_TBCALL (defined in
__StdTypes.h) provide a simple and robust way to call type-bound
procedures from within C code.
o Some problems with SYSTEM.PUT were fixed. But you don't use
SYSTEM.PUT anyway, do you?
o To prevent name clashes in the future, I changed the mapping of
Oberon-2 names to C names. An additional underscore is inserted
between the module name and object name. Example: "M.bar" is now
called "M__bar" in C lingo, and "XML:Canonical.Parse" becomes the C
level name "XML_Canonical__Parse".
As part of this change, the name suffixes for type descriptors,
module descriptors, and intialization functions lose an underscore
and become "_td", "_md", and "_init".
These changes break existing FOREIGN and (possibly) INTERFACE
modules. A few string replacements in the C source code will fix
any modules in a few minutes, though.
The new files are available from http://www.uni-kl.de/OOC. The mirror
at ftp.uunet.de is currently broken. Because of the naming change the
oo2c patch exploded to 4MB uncompressed. This kind of defeats the
purpose of patches, so I took the chance and wiped all oo2c patches
from the server (the OOC source patches are still available).
-- mva