comp.lang.ada
 help / color / mirror / Atom feed
From: "John R. Strohm" <strohm@airmail.net>
Subject: Re: Crosspost: Help wanted from comp.compilers
Date: Thu, 17 Jul 2003 20:22:51 -0500
Date: 2003-07-17T20:22:51-05:00	[thread overview]
Message-ID: <bf7iiq$e64@library1.airnews.net> (raw)
In-Reply-To: 2OERa.4718$0F4.3216@nwrdny02.gnilink.net

"Hyman Rosen" <hyrosen@mail.com> wrote in message
news:2OERa.4718$0F4.3216@nwrdny02.gnilink.net...
> Preben Randhol wrote:
> > Actually you are not listening. He just showed you why it needed to be
> > recompiled.
>
> How did he do that? He was talking about needing to recompile
> after making a change.

Where we seem to disagree is that you seem to be believe that only changes
to source code can produce changes to semantics, and that those changes
should only propagate through one level of inheritance ('with').  You have
explicitly stated, repeatedly, that recompiling a unit whose source code has
not changed, with ONLY a change in compiler options, should NOT trigger
recompilation of dependent units.

Consider a contrived example.  First, postulate a compiler option, that
suppresses generation of type'image information for enumerated types.  This
is a fairly obvious space optimization, that does no harm at all if the rest
of the code does not use type'image.  Consider a package spec that declares
an enumerated type, that is used by a module that uses that type'image, say,
to display symbology labels.

Compile the spec with type'image generated.  Compile the using module.
Recompile the spec with type'image suppressed.  Link.

Oops.

If you are REALLY lucky, the error will be detected at link time, because
type'image data is hooked up through a special external symbol, and the
symbol isn't there, because type'image was suppressed.  If you are lucky,
you will spot it when you take the build into the lab and wonder why the
frap your symbology labels are missing.  If your luck is run-of-the-mill,
what you will be doing is wondering why the $#&^$#^ your build crashes and
burns before it even brings up the symbology.

Observe that forcing recompilation of the using module will bring the error
to light.  In this strawman scenario, it will also force you to recompile
the spec, then recompile the using module.

Alternatively, consider a compiler that has an option that will force it to
generate some extra debugging entry points if a certain compiler switch is
set.  Consider a runtime design that uses a transfer table.  Recompiling the
spec after changing the switch setting may reorder the transfer table, and
dependent modules that were compiled prior to the changing of the switch may
not know about the change.  Result: when you try to call the routine that
emergency jettison's all external stores, you instead call the routine that
fires the ejection seat squib.  This kind of error is guaranteed to make you
unpopular with the test pilot community.  (Incidentally, this is not far
from the example that Jean Ichbiah himself gave when asked why Ada required
recompilation of all dependents if a spec that had not changed was
recompiled.)





  reply	other threads:[~2003-07-18  1:22 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-15  5:46 Crosspost: Help wanted from comp.compilers John R. Strohm
2003-07-15 13:30 ` Hyman Rosen
2003-07-15 14:07   ` Larry Kilgallen
2003-07-15 21:02   ` John R. Strohm
2003-07-15 23:00     ` Robert I. Eachus
2003-07-16  1:52     ` Jeffrey Carter
2003-07-16  4:45       ` John R. Strohm
2003-07-16  3:21     ` Hyman Rosen
2003-07-16 17:15       ` Robert I. Eachus
2003-07-16 17:38         ` Larry Kilgallen
2003-07-16 18:04         ` Hyman Rosen
2003-07-16 21:05           ` John R. Strohm
2003-07-16 21:23             ` Hyman Rosen
2003-07-16 23:23               ` Marin David Condic
2003-07-17  1:39                 ` Hyman Rosen
2003-07-17 12:25                   ` Marin David Condic
2003-07-17  1:48               ` Randy Brukardt
2003-07-17  2:06                 ` Hyman Rosen
2003-07-17  6:44                   ` tmoran
2003-07-17  7:59                     ` Hyman Rosen
2003-07-17 18:02                       ` tmoran
2003-07-19 16:51                     ` Richard Riehle
2003-07-20 10:38                       ` Marin David Condic
2003-07-22 20:29                     ` Simon Wright
2003-07-17  8:37                   ` tmoran
2003-07-17 14:10                     ` Larry Kilgallen
2003-07-17 18:02                       ` tmoran
2003-07-17 18:14                         ` Larry Kilgallen
2003-07-17 19:29                         ` Robert A Duff
2003-07-17 13:12                   ` Frank J. Lhota
2003-07-17 13:33                     ` Hyman Rosen
2003-07-17  4:29               ` John R. Strohm
2003-07-17  4:58                 ` Hyman Rosen
2003-07-17  6:44                   ` tmoran
2003-07-17  7:50                     ` Hyman Rosen
2003-07-17 18:02                       ` tmoran
2003-07-17 18:14                         ` Ed Falis
2003-07-17 18:35                           ` David C. Hoos
2003-07-17 19:13                             ` Ed Falis
2003-07-17 19:24                           ` Robert A Duff
2003-07-17 19:39                             ` Ed Falis
2003-07-17 20:20                               ` Robert A Duff
2003-07-17 20:31                                 ` Ed Falis
2003-07-17 19:40                           ` tmoran
2003-07-17 19:47                             ` Ed Falis
2003-07-17 21:23                               ` tmoran
2003-07-17 22:38                                 ` Ed Falis
2003-07-17  6:46                   ` Lutz Donnerhacke
2003-07-17  9:50                   ` Preben Randhol
2003-07-17 21:45                     ` Hyman Rosen
2003-07-18  1:22                       ` John R. Strohm [this message]
2003-07-18  3:15                         ` Hyman Rosen
2003-07-18  6:18                           ` John R. Strohm
2003-07-18 14:43                             ` Hyman Rosen
2003-07-19  5:25                               ` Robert I. Eachus
2003-07-20 14:42                                 ` Hyman Rosen
2003-07-20 18:46                                   ` Chad R. Meiners
2003-07-21 15:37                                     ` Hyman Rosen
2003-07-21 17:59                                       ` Chad R. Meiners
2003-07-20 23:06                                   ` Robert I. Eachus
2003-07-21 15:14                                     ` Hyman Rosen
2003-07-21 20:11                                       ` Robert I. Eachus
2003-07-22  2:19                                         ` Hyman Rosen
2003-07-22  4:54                                           ` John R. Strohm
2003-07-22  5:02                                           ` Robert I. Eachus
2003-07-22 11:53                                             ` Marin David Condic
2003-07-22 17:58                                             ` Randy Brukardt
2003-07-22 19:16                                             ` Hyman Rosen
2003-07-23  7:20                                               ` Vinzent Hoefler
2003-07-23 14:27                                                 ` Hyman Rosen
2003-07-23 15:08                                                   ` Vinzent Hoefler
2003-07-21 16:00                                     ` tmoran
2003-07-21 23:54                                       ` Robert I. Eachus
2003-07-18 11:31                           ` Larry Kilgallen
     [not found]                           ` <bf83qt$ju3@library2.airnews.netOrganization: LJK Software <lSNU7JdZau5p@eisner.encompasserve.org>
2003-07-18 14:43                             ` Robert I. Eachus
2003-07-18 11:28                         ` Larry Kilgallen
2003-07-16 23:14             ` Marin David Condic
2003-07-17  4:08               ` John R. Strohm
2003-07-17  9:42         ` Preben Randhol
2003-07-18 17:18           ` Robert I. Eachus
2003-07-18 17:42             ` Hyman Rosen
2003-07-15 21:59   ` Christopher Browne
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox