-frecord-marker

Thomas Koenig Thomas.Koenig@online.de
Fri Jul 21 07:23:00 GMT 2006


On Thu, Jul 20, 2006 at 07:57:10PM -0700, Steve Kargl wrote:
> On Thu, Jul 20, 2006 at 05:14:52PM -0700, Jerry DeLisle wrote:

> > I don't see any RECM allowed and I don't see it in F2003 either.  What am I 
> > missing here? Nada Nada Nada Rant Rant. Please stick to the standards.
> > 
> 
> I must admit that I support Jerry's view.  I see no need
> for this feature.

We've had that discussion with byte-swapping (PR 23815), if anybody
else remembers :-)

> When I suggest that Adrian should submit
> a patc, I was expecting the topic to quietly die.

Apparently, you can't scare him off as quickly:-)  I was impressed
by the speed and quality of Adrian's patch, for somebody working
in gfortran for the first time.

> gfortran
> can read a file created with gfortran.  If the concern is
> compatibility with Intel, is anyone going to ask Intel to
> implement an option to support gfortran's record marker.

For records of length less than 2**31-1 bytes, Intel does the
same as just about anybody else, use four-byte record markers.
gfortran deviated from that for good reasons, but we don't (yet)
have enough "clout" in the market to force other compiler vendors
to add compatibility to what we do.

Interoperability _is_ important for a sizable number of users,
who, for a number of good reasons, won't switch over to gfortran
completely (which would be too much to expect right now, really).

There are also good reasons why these users might want more
fine-grained control than what we currently offer (just one option,
to be set when the main Fortran program compiles).

The real question is how to implement this.  I can understand that
you and Jerry don't want to add Yet Another Extension to the OPEN
statement.  We already have CONVERT=, for which there is prior art
with Intel, but we don't follow Intel's string syntax.

How about this:  Instead of adding RECORD_MARKER=, we can extend
the syntax of the CONVERT string to allow something like

  OPEN(...,CONVERT="native+recm32")

and also extend the syntax of the GFORTRAN_CONVERT_UNIT enviroment
variable accordingly.

Thoughts?

	Thomas



More information about the Fortran mailing list