comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert I. Eachus" <eachus@mitre.org>
Subject: Re: Safety of the Booch Ada 95 Components
Date: 1999/12/13
Date: 1999-12-13T23:37:41+00:00	[thread overview]
Message-ID: <385584E0.D72D847D@mitre.org> (raw)
In-Reply-To: Yk354.42$tb.10677@news.wenet.net

Kent Paul Dolan wrote:
  
> This one sets alarm bells ringing like crazy.  I was a user of
> AmigaBASIC, whose developers assumed that the 24 bits in use of 32 bit
> pointers they saw when the machine in an early OS rev would be the law
> forever, ignored the developer manuals warnings to the contrary, used
> the other 8 bits for string lengths or some such, in a petty search for
> "efficiency" at the expense of clean coding, and had their software die
> a horrible death when the OS was upgraded within a couple of years to
> use all 32 bits of a pointer.

  1) The Amiga coding standards from day one emphasized "32-bit" clean,
since
there were already plans for a 68020 based machine.  (In fact, the first
68020 demo I saw, under non-disclosure, was running AmigaDOS 1.1.)

  2) Actually the problem was that it stored pointers in 3 bytes, not 4,
I 
think I still have the patch to fix it floating around.  (It was an
extremely small patch.)

  3) The developer of AmigaBASIC was Microsoft, and they refused to make
the
fix even when asked by Commodore.

  4) That was why AmigaBASIC was dropped in the next version of
AmigaDOS.
    
> Some "efficiencies" aren't worth the risk, and the damage to pointer
> semantics of using some bits for "non-pointer purposes" would be nearly
> incalculable.

    I think that Robert Dewar was referring to the low-order two bits,
which
were, of course, unavailable in Microsoft's AmigaBASIC.
 
> Oh, and did you lock your structures against traversal by other threads
> while the (possibly time consuming) deep copy was ongoing, or are the
> munged pointers going to be visible outside the deep copy process?

    You had better do lcoking in any case.  But since the flipped bits
can be in your new data structure only, you don't have to worry about
some other assignment geting at them.

-- 

                                        Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...




  reply	other threads:[~1999-12-13  0:00 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-12-10  0:00 Safety of the Booch Ada 95 Components Harry Erwin
1999-12-10  0:00 ` Simon Wright
1999-12-12  0:00   ` Simon Wright
1999-12-12  0:00     ` Matthew Heaney
1999-12-12  0:00   ` Harry Erwin
1999-12-13  0:00     ` Simon Wright
1999-12-10  0:00 ` Matthew Heaney
1999-12-10  0:00   ` Harry Erwin
1999-12-12  0:00     ` Simon Wright
1999-12-12  0:00       ` Harry Erwin
1999-12-13  0:00         ` Simon Wright
1999-12-10  0:00   ` Hyman Rosen
1999-12-10  0:00     ` Matthew Heaney
1999-12-11  0:00       ` Harry Erwin
1999-12-12  0:00         ` Robert Dewar
1999-12-12  0:00           ` Harry Erwin
1999-12-13  0:00           ` Kent Paul Dolan
1999-12-13  0:00             ` Robert I. Eachus [this message]
1999-12-13  0:00             ` Simon Wright
1999-12-13  0:00             ` Ted Dennison
1999-12-13  0:00       ` Hyman Rosen
1999-12-13  0:00         ` Robert I. Eachus
1999-12-14  0:00           ` Simon Wright
1999-12-15  0:00             ` Harry Erwin
1999-12-15  0:00             ` Mats Weber
1999-12-17  0:00               ` Simon Wright
1999-12-14  0:00         ` Matthew Heaney
1999-12-10  0:00     ` Harry Erwin
1999-12-13  0:00 ` Tucker Taft
replies disabled

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