[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