-- Editorial comments by Rick Conn are included, and they take the
-- form of Ada comments to distinguish them for the author's original
-- text


Hello.  I have transferred STYLE_CHECKER 1.0 (17 Apr 85) from SIMTEL20's
Ada Software Repository and gotten it to run on my system (a VAX 750 running
VMS with Dec's Ada compiler).  This is my report:

First, to be perfectly honest, I did this more as an exercise in getting
software from the repository to run then for real usage.  We (Alsys Inc. and
Alsys S.A.) have about half a million lines of Ada code (+/- 150000) and its
'styled' to our satisfication (largely) so I don't think we'll be running
much of our code through this style checker.  I think its use will mainly
be for organizations converting programmers from some other language, and
the selection of statistics bears this out.

Yet, I am going to look carefully at the source for several reasons,
including the possibility of reuse of modules (I LIKE the help facility,
which is quite similar to the VMS facility) and for Ada hints and techniques
in standard file I/O (none of our work is done with TEXT_IO).

I had the following problems creating STYLE_CHECKER on my system:

1)  The file MAINTMAN.MEM in STYLEDOC.SRC is trashed.  Please check the
copy on SIMTEL20 and see if it is what you thought it was.

-- I checked this file and found no problem other than it
-- is double-spaced due to the formatter that was used to generate it.


2)  When STYLESRC.SRC is unpacked with the PAGER utility none of the
filenames match the filenames in STYLE_CMP.CLI.  I had to tediously
rename all the files (or I could have regenerated STYLE_CMP.CLI, either
way it was a bore).

-- Yes, there is a file name conversion problem.  This is caused by
-- very long files names being used on the DG, and these names had
-- to be truncated in order to be delivered on a VAX VMS 2.x system.


3)  STYLE_CMP.CLI is missing compilations of HELP_INFO_SUPPORT_SPEC.ADA
and HELP_INFO_SUPPORT_BODY.ADA.

4)  The package CURRENT_EXCEPTION which is apparently provided in Rolm's
Ada environment is non-standard and not available in Dec Ada.  I replaced
it with:

   package current_exception is
      name: constant := "<unknown exception>";
   end current_exception;

and a file like this should be included in the source package with ample
notes on what it is SUPPOSED to do.  (This package is a good idea!  I'm
going to suggest we supply one with our compiler, and I'm going to suggest
that Dec do the same, unless of course they have some method for doing it
and I just don't know it.  Furthermore, I'd like to know what the full
definition of the package in the Rolm system really is .. that is, what
other facilties does it provide?)

-- NAME is the only function provided by CURRENT_EXCEPTION


5)  The main procedure STYLE_CHECKER.ADA still has a type declaration
for UNIVERSAL_DATA_TYPE which isn't used, for the obvious reason that it
would completely hide the predefined types from the rest of the program
and the subunits of STYLE_CHECKER.  The declaration should be removed.

-- Such is not the case with ROLM Ada


6)  The file COMMENT_TOKEN is missing the token "in" at the procedure
heading's parameter, leading to a conformance error vis-a-vis the procedure's
specification in the parent unit.

-- This does not pose a problem with ROLM Ada


7)  Same as 6) for the file EXITING_BLOCK.

8)  On VAX/VMS, Dec Ada, and a VT100 terminal, the Help package seems to
fill all lines to 80 characters, leading to wrap around thus double spacing
the lines on the screen, and a very slow help facility on a 1200 baud line.
I'll have to investigate further, but I would guess lines aren't trimmed of
trailing blanks before being send to text_io.put_line.

Anyway, with the above points noted and fixed (where applicable) the
program compiles and runs (though I haven't run the test suite through
it, just a few of its own source files).  I hope the sources on SIMTEL20
are fixed, or perhaps this note can be added to the directory, in order
to help anyone else who is going to try to use this program.

Dave Bakin

(Bakin -at mit-multics)
