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

ooc-981012 & oo2c-1.3.11



Here is another update of oo2c.  The patch from 10 to 11 is with
approx. 40K rather large, mostly due to extensions to oocn.

Changes:

 o I removed my change to configure's default CFLAGS.  The flags now
   include "-g" and "-O2" wherever configure thinks this makes sense.
   Feed your own CFLAGS and COPTFLAGS to configure to get better
   results on your system.

 o Bugfix: A procedure P could not be assigned to a variable if the
   assignment happened in P itself.  (Thanks to Eric Nikitin.)

 o Bugfix: The compiler did not complain when a type-bound function
   procedure with no parameters was called without an empty argument
   list.  (Thanks to Andrey Grozin.)

 o Bugfix: The command names used in oberon2.el were not adjusted
   properly during installation.  This error was introduced with
   oo2c-1.3.10. (Thanks to Anthony Fok.)

 o Interface of module `Signal' has changed.  (Suggested by Eric
   Nikitin.)

 o Removed obsolete parameter from `Log.Ln'.

 o oocn: The program has been extended again.  Amongst other things
   it can extract a module's interface from its source code.  A
   facility like this has been requested many times in the past.  See
   below for details.

-- mva

------------------------------------------------------------------------

New options for oocn:

  --colors <name>: Select color set used for HTML.  The variants "hilit"
  (default) and "font-lock" are available.

  --line-num: Prepend original line number to every line of output.
  Output can be HTML or plain ASCII.

  --no-internal: Omit internal modules from the output of --modules.


New functions:

The program can extract a module's exported interface from the source
code.  The output is either plain ASCII text, hyperlinked HTML code,
cross- referenced HTML code, or a text in Texinfo format.

Examples:

  oocn --def-txt -o - Strings.Mod
  (shorter: oocn -d Strings.Mod)

    Writes the ASCII version of the interface of `Strings' to stdout.

  oocn --def-txt --closure --verbose -o /tmp liboo2c
  (shorter: oocn --def-txt -Cv -o /tmp liboo2c)
  
    For every module `foo' imported by liboo2c a file `/tmp/foo_def.txt'
    is generated, which is equivalent to the source code with all
    statements and local declarations removed.

  oocn --def-html --closure --verbose -o /tmp liboo2c
  (shorter: oocn --def-html -Cv -o /tmp liboo2c)

    The same, but the text is in HTML format and written to 
    `/tmp/foo_def.html'.

  oocn --def-xref --closure --verbose -o /tmp liboo2c
  (shorter: oocn --def-xref -Cv -o /tmp liboo2c)

    An extended version of `--def-html'.  Two files are generated for
    every module `foo': `/tmp/foo_def.html' holds the module's source,
    and `/tmp/foo_def_xref.html' the cross reference table.

  oocn --def-texi --closure --verbose -o /tmp liboo2c
  (shorter: oocn --def-texi -Cv -o /tmp liboo2c)

    Creates draft versions of the public interfaces of all modules in
    liboo2c in Texinfo format.  The files are named `/tmp/foo_def.texi'.
    See the comments below for more information why the output should
    be considered "draft". 


With --def-texi a few points should be kept in mind:

  Declarations are listed in four blocks: constants, types, variables,
  and procedures.  Within the blocks the order of declarations is
  preserved.  Methods are grouped again by their receiver type.

  The lengths of an array are replaced with `n0', `n1', ..., `nm' for
  the different dimensions.

  The descriptions attached to the declarared entities are taken from
  any comment following the declaration in the source code.  Because the
  current sources where not written with this in mind, there is no
  guarantee that the right comment is chosen.  In particular, for every
  declared name a single comment at most is taken over in the .texi
  file.

  The comments are minimally changed before they are copied to the
  texinfo file: the comment delimiters are removed, all indentation is
  removed, and the characters "@", "{", and "}" are quoted.

  Nested record constructors are not handled.  The fields of any nested
  constructor must be inserted manually.  Additionally any system flags
  associated with procedure objects are discarded silently.

  Remember: This output format is only intended to generate a draft
  for a texinfo file.  The output will always need manual intervention
  to turn it into something readable.