[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.