[patch, fortran]PR25829 Add support for F2003 I/O features

Janne Blomqvist blomqvist.janne@gmail.com
Mon Mar 17 06:50:00 GMT 2008


Jerry DeLisle wrote:
> AFAICT we can avoid breaking ABI, All the async workings will occur in 
> unix.c and uses the revised unix_stream structure which is allocated at 
> run time. Similarly, we have changes in gfc_unit which are allocated at 
> run time, the dtp structure is changed. It adds decimal_status. If ABI 
> is critical, we can move that to gfc_unit or do it a little 
> differently.

IMHO ABI compatibility is critical. Having to recompile every single 
piece of Fortran code in order to upgrade the compiler is a problem for 
some people. Not to say that upgrading might be downright impossible if 
they use some library delivered in binary form (e.g. ACML).

The C++ library has some ABI tests in 
libstdc++-v3/testsuite/libstdc++-abi , perhaps libgfortran could do 
something similar? Another option could be to run the 4.3 testsuite 
using the libgfortran from 4.4 (maybe as easy as copying the 4.4 
libgfortran into the directory where 4.3 is installed?).

>  We do add one new symbol to gfortran.map which we should 
> version, but otherwise no impact.

For 4.4 we should put new symbols into a new version node GFORTRAN_1.1 
as documented at http://gcc.gnu.org/wiki/SymbolVersioning

> The approach I am planning will hide asynchronous operations in unix.c.  
> The standard allows a lot of flexibility here, including ignoring the 
> requests and waiting for I/O to complete as we are now, or only doing it 
> when we want, for example, on large arrays only.

IIRC on Linux AIO requires that the file is opened with O_DIRECT, and 
that all I/O is page size (typically 4 KB) aligned. The AIO syscalls do 
work if these conditions are not met, but internally they fall back to a 
normal synchronous I/O. I think there are some efforts to rectify this, 
but I don't think they have been committed to the mainline kernel yet. 
Just something to keep in mind when you want to benchmark the 
implementation.


-- 
Janne Blomqvist



More information about the Fortran mailing list