Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!mcnc!gatech!rutgers!sri-unix!sri-spam!ames!sdcsvax!ucbvax!BUGS.NOSC.MIL!broman From: broman@BUGS.NOSC.MIL (Vincent Broman) Newsgroups: comp.lang.modula2 Subject: disgust at DEC Message-ID: <8705151536.AA07897@bugs.nosc.mil> Date: Fri, 15-May-87 11:36:21 EDT Article-I.D.: bugs.8705151536.AA07897 Posted: Fri May 15 11:36:21 1987 Date-Received: Sun, 17-May-87 00:17:52 EDT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 36 Said heiser@ethz.uucp -- > I had a look at the DEC [Powell] compiler when we got it and was disgusted.... > Probably the people who wrote it never programmed any Modula-2. > ... Much worse: definition modules are not compiled (and there is no compiler > option to fix that). Hence: > - no timestamping, no consistency checks when modifying definition modules. > Any real Modula-2 programmer estimates that as one of the most powerful > language features when developing large systems. > - identifiers imported in the definition module are not known in the > implementation module, they must be imported again. This will generate a > compile-time error in most other Modula-2 systems Though much that DEC does could make strong men queasy, the points mentioned above do not seem questionable. Simply stated, mod compiles .def files by means of the identity transformation, (saves time, you know :-) and the timestamp is available in the file's inode. I suppose the .o file stores the last-mod-time for all DEFINITION MODULEs IMPORTed and compares them for consistency at link time. Nothing more could be required. The _only_ reason one "compiles" DEFINITION MODULEs into binary form is to avoid lexing/parsing/checking them _every_time_ they are IMPORTed. As I read PIM2 ed3, identifiers IMPORTed into a DEFINITION MODULE cannot be visible in the matching IMPLEMENTATION MODULE unless IMPORTed. While defs and imps come in pairs, they are distinct MODULEs. Perhaps the rule causing confusion was the one that makes _objects_declared_ in the def available in the imp without IMPORT. As a practical matter, though, it is hard to imagine a useful instance where one IMPORTs an identifier into a DEFINITION MODULE which is not then needed in the matching IMPLEMENTATION MODULE. Let's not puff on the subject of who is a "real Modula-2 programmer", hey? Vincent Broman, code 632, Naval Ocean Systems Center, San Diego, CA 92152, USA Phone: +1 619 225 2365 Internet: broman@nosc.mil Uucp: sdcsvax!nosc!broman