This is the mail archive of the
mailing list for the GNU Fortran project.
Array Descriptor Update
- From: "N.M. Maclaren" <nmm1 at cam dot ac dot uk>
- To: fortran at gcc dot gnu dot org
- Date: 18 Aug 2009 13:13:36 +0100
- Subject: Array Descriptor Update
Looking at this, I have noticed it mentions virtual origins, but neither it
nor the comp.lang.fortran thread says why using a virtual origin is a
really, really bad idea in a portable specification. Yes, Bob Corbett is
right that it can gain a little bit of performance almost for free, but the
downsides are serious.
If I should raise this elsewhere, please tell me where. I have subscribed
to the Wiki. The reasons are:
It's a breach of the C standard, but that's a mere technicality :-)
It's completely infeasible on segmented architectures, which still
exist; that's probably not too serious, either.
It's incompatible with most forms of memory checking technology, though
there is a path through the minefield for some of them (i.e. the ones that
check only accesses, and not stored pointers).
It interferes with many forms of garbage collection, and is incompatible
with many of the fancier ones. The extreme case is that it looks like a
pointer into another object, which is them moved as part of compaction.