[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

oo2c-1.4.2 & ooc-990503



This update fixes a bug introduced one version back that can cause
misaligned access of LONGREAL values on 32 bit machines.  If you use
oo2c on a SPARC or HP-PA machine, I strongly suggest to upgrade to
1.4.2.


The new compiler version also includes support for hierarchical module
names.  This is quite a mouthful, but the actual implementation is
simple.  A module name can now look like this:

  mident = [a-zA-Z][a-zA-Z0-9]*(:[a-zA-Z][a-zA-Z0-9]*)*.

And the corresponding EBNF rules are

  Module = "MODULE" mident ... "END" mident.
  ImportList = "IMPORT" [ident ":="] mident {"," [ident ":="] mident} ";".

I first tried to handle the extended names on the syntax level, like
"mident = ident {"." ident}", but the changes to the compiler and the
other tools working on the module syntax were much more expensive this
way.  I also ditched the separator character `.' in favor of a
character that is not currently a name component.  The primary reason
for this is, that the dot is already a selector operator in O2, but a
module name like `M:A' does not imply that there is a name space (in
the sense of O2) or an entity "M".  Actually, any character instead of
`:' would do the job.

If the compiler sees a module name `M:A', it looks for a file name
`M/A.Mod' at the usual places.  The file search mechanism has not been
changed.  The import statements "IMPORT A := M:A;" and "IMPORT M:A;"
are equivalent.


Other changes: 

o The symbol file format has changed slightly.  The compiler will
  complain if it sees any old symbol files.

o Some bug fixes in oocn.  Import statements now have a slightly
  different semantics in the AST with regard to the optional alias
  part.

o An INTERFACE/FOREIGN module can add options to the C compiler
  invocation of its associated .c file.  This is implemented just like
  the ADD_OPTION for external libraries.


Is anyone interested in a wrapper for W3C's libwww that can download
an URL into a writer?  I am too lazy to turn the files into the usual
"configure && make install" package, but I can upload them somewhere
-- if there is some interest.

-- mva