comp.lang.ada
 help / color / mirror / Atom feed
From: xanthian@well.com (Kent Paul Dolan)
Subject: Re: Safety of the Booch Ada 95 Components
Date: 1999/12/13
Date: 1999-12-13T00:00:00+00:00	[thread overview]
Message-ID: <Yk354.42$tb.10677@news.wenet.net> (raw)
In-Reply-To: 82up01$ddg$1@nnrp1.deja.com

Robert Dewar  <robert_dewar@my-deja.com> wrote:
>  herwin@gmu.edu (Harry Erwin) wrote:
>> A deep copy of a pointer data structure may require more
>> memory than is available.

>A naive copy may have that characteristic, but it is always
>possible on modern machines to do such a copy with no additional
>storage. It just takes a bit of cleverness. Remember that every
>pointer has at least two spare bits.

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.

I can already trick out a Mac G4 box with a gig of physical memory for
an obscene price, (but lower than the tag on a pretty old used car, and
less than the cost of a megabyte of memory retail in 1981), and not one
revision down the line support for a second gig will be in place, one
of your spare pointer bits has disappeared and gone, and your code is
broken.  Did you remember to instrument the breaks to be easily
located, and pre-design a workaround for conditional compilation or
conditional linking into place?

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.

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?

[I'd say "I am but an egg" here, w.r.t. my compiler writing near
non-experience, but some "eggs" hatched out moa birds, after all.]
--
Kent Paul Dolan.
<xanthian@well.com> <xanthian@aztec.asu.edu> <xanthian@whistle.com>
Using modern technology to commit errors at previously unachievable rates.




  parent 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   ` Harry Erwin
1999-12-13  0:00     ` Simon Wright
1999-12-12  0:00   ` Simon Wright
1999-12-12  0:00     ` Matthew Heaney
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 [this message]
1999-12-13  0:00             ` Robert I. Eachus
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