From bill@amber.ssd.csd.harris.com Tue Aug 18 15:18:20 1992
Received: from travis.csd.harris.com by dkuug.dk via EUnet with SMTP (5.64+/8+bit/IDA-1.2.8)
	id AA29477; Tue, 18 Aug 92 15:18:20 +0200
Received: from amber.ssd.csd.harris.com by travis.csd.harris.com (5.61/harris-5.1)
	id AA05296; Tue, 18 Aug 92 09:18:22 -0400
Received: by amber.ssd.csd.harris.com (5.61/CX/UX-5.0)
	id AA08385; Tue, 18 Aug 92 09:18:12 -0400
Date: Tue, 18 Aug 92 09:18:12 -0400
From: bill@amber.ssd.csd.harris.com (Bill Leonard)
Message-Id: <9208181318.AA08385@amber.ssd.csd.harris.com>
To: JLS@liverpool.ac.uk
Cc: SC22WG5@dkuug.dk
In-Reply-To: Lawrie Schonfelder's message of Tue, 18 Aug 92 12:55:37 BST <9208181224.AA04572@travis.csd.harris.com>
Subject: (SC22WG5.156) Defect Report
X-Charset: ASCII
X-Char-Esc: 29

> Date: Tue, 18 Aug 92 12:55:37 BST
> From: Lawrie Schonfelder <JLS@LIVERPOOL.AC.UK>

> If I know the pointer is there I can but If I dont because it is a component
> of a type whose structure is PRIVATE I dont.

If I understand you correctly, then, the problem is that Fortran 90
invented PRIVATE types but neglected to provide constructors and
destructors so they could be properly initialized.  Is that right?

> The inefficiency of having to set disassociated each
> pointer as it is created is spurious. In any system that does full garbage
> collection, which any high quality implementation must do. It must distinguish
> between not yet associated and genuinely dangling or it would be impossible
> to produce safe garbage collection.

First of all, this comment is not true.  Most garbage collection systems
for languages like C, Ada, Pascal, etc. do conservative garbage collection.
That means that if a memory location contains something that looks like a
pointer into the heap, then the pointed-to location is considered "used"
and therefore not garbage to be collected.

Second, it would be a colossal mistake to *mandate* garbage collection in
all Fortran implementations.  I'm not saying that garbage collection is
universally bad -- it certainly has lots of useful applications.  But it
does have a couple of very bad characteristics.  One of these is that the
garbage collector tends to touch all of memory fairly often.  That's very
bad for virtual memory systems if the application gets very big.  Second,
garbage collection introduces extreme unpredictability in timing, which is
anathema in the real-time industry.  (How would you like your neighborhood
chemical plant to explode because the monitoring system didn't respond to
an alert in the proper amount of time?)

> The cost of setting any not-yet-associated flag will be pretty much the
> same as setting disassociated. If you dont like initially disassociated I
> would settle for an additional status of not-yet-associated and some way
> of detecting this fact in the Fortran program.

But, as you just pointed out, the two are the same cost.  Since I object to
the first one on the basis of its cost, I'm unlikely to accept your
alternative.

Bill Leonard
Harris Computer Systems Division
2101 W. Cypress Creek Road
Fort Lauderdale, FL  33309
bill@ssd.csd.harris.com
---------------------------------------------------------------------------
  Q: How many lawyer jokes are there?
  A: Only three.  The rest are true stories.
---------------------------------------------------------------------------
