This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.

Regards,
Nick Maclaren.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]