<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/llvm.git/flang/runtime/io-api.cpp, branch EmptyLineAfterFunctionDefinition</title>
<subtitle>github.com: llvm/llvm-project.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/'/>
<entry>
<title>[flang] Emit unformatted headers &amp; footers even with RECL=</title>
<updated>2021-10-22T18:07:01+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-10-19T21:46:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=b03628d986d47e41187278acd2e2b66dd3dc03ae'/>
<id>b03628d986d47e41187278acd2e2b66dd3dc03ae</id>
<content type='text'>
The runtime library was emitting unformatted record headers and
footers when an external unit had no fixed RECL=.  This is wrong
for sequential files, which should have headers &amp; footers even
with RECL.  Change to omit headers &amp; footers from unformatted
I/O only for direct access files.

Differential Revision: https://reviews.llvm.org/D112243
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The runtime library was emitting unformatted record headers and
footers when an external unit had no fixed RECL=.  This is wrong
for sequential files, which should have headers &amp; footers even
with RECL.  Change to omit headers &amp; footers from unformatted
I/O only for direct access files.

Differential Revision: https://reviews.llvm.org/D112243
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] runtime: fix output B/O/Z editing of "negative" values</title>
<updated>2021-10-12T23:02:07+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-10-11T22:41:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=f65f830e5f935ab61ddb1f9af98ce3e5755eb2b2'/>
<id>f65f830e5f935ab61ddb1f9af98ce3e5755eb2b2</id>
<content type='text'>
B/O/Z integer output editing must not reflect any sign extension
of scalar output values.  Add more size-dependent OutputInteger
I/O APIs and kind instantiations of EditIntegerOutput.

Differential Revision: https://reviews.llvm.org/D111678
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
B/O/Z integer output editing must not reflect any sign extension
of scalar output values.  Add more size-dependent OutputInteger
I/O APIs and kind instantiations of EditIntegerOutput.

Differential Revision: https://reviews.llvm.org/D111678
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Implement READ(SIZE=) and INQUIRE(IOLENGTH=) in runtime</title>
<updated>2021-09-23T17:27:56+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-09-20T17:52:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=4393e3776b41471afbd37cb13fe5b777243fedd1'/>
<id>4393e3776b41471afbd37cb13fe5b777243fedd1</id>
<content type='text'>
Count input characters corresponding to formatted edit descriptors
for READ(SIZE=); count output bytes for INQUIRE(IOLENGTH=).

The I/O APIs GetSize() and GetLength() were adjusted to return
std::size_t as function results.

Basic unit tests were added (and others fixed).

Differential Revision: https://reviews.llvm.org/D110291
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Count input characters corresponding to formatted edit descriptors
for READ(SIZE=); count output bytes for INQUIRE(IOLENGTH=).

The I/O APIs GetSize() and GetLength() were adjusted to return
std::size_t as function results.

Basic unit tests were added (and others fixed).

Differential Revision: https://reviews.llvm.org/D110291
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Move runtime API headers to flang/include/flang/Runtime</title>
<updated>2021-09-03T18:08:34+00:00</updated>
<author>
<name>Peter Klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-09-01T23:00:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=830c0b9023cd0cf91955900e0d96283e7a8c3711'/>
<id>830c0b9023cd0cf91955900e0d96283e7a8c3711</id>
<content type='text'>
Move the closure of the subset of flang/runtime/*.h header files that
are referenced by source files outside flang/runtime (apart from unit tests)
into a new directory (flang/include/flang/Runtime) so that relative
include paths into ../runtime need not be used.

flang/runtime/pgmath.h.inc is moved to flang/include/flang/Evaluate;
it's not used by the runtime.

Differential Revision: https://reviews.llvm.org/D109107
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the closure of the subset of flang/runtime/*.h header files that
are referenced by source files outside flang/runtime (apart from unit tests)
into a new directory (flang/include/flang/Runtime) so that relative
include paths into ../runtime need not be used.

flang/runtime/pgmath.h.inc is moved to flang/include/flang/Evaluate;
it's not used by the runtime.

Differential Revision: https://reviews.llvm.org/D109107
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Remove *- C++ -* incantation from runtime .cpp files. NFC</title>
<updated>2021-09-03T07:17:45+00:00</updated>
<author>
<name>Diana Picus</name>
<email>diana.picus@linaro.org</email>
</author>
<published>2021-09-02T08:14:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=651f58bf63e6cb6926faf0f33200c57fdd591a85'/>
<id>651f58bf63e6cb6926faf0f33200c57fdd591a85</id>
<content type='text'>
We should only need to spell the language out in .h files.

Differential Revision: https://reviews.llvm.org/D109138
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We should only need to spell the language out in .h files.

Differential Revision: https://reviews.llvm.org/D109138
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Fix "non-advancing" I/O, support $ in FORMAT</title>
<updated>2021-06-28T19:18:25+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-06-28T18:41:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=cd0a1226b50081e86eb75a89d01e8782423971a0'/>
<id>cd0a1226b50081e86eb75a89d01e8782423971a0</id>
<content type='text'>
Non-advancing I/O was failing; ExternalFileUnit was losing
track of what writes had been committed to the file.  Fixed.
Also, support the common extension of $ and \ in a FORMAT
as being equivalent to ADVANCE=NO.

Differential Revision: https://reviews.llvm.org/D105046
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Non-advancing I/O was failing; ExternalFileUnit was losing
track of what writes had been committed to the file.  Fixed.
Also, support the common extension of $ and \ in a FORMAT
as being equivalent to ADVANCE=NO.

Differential Revision: https://reviews.llvm.org/D105046
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Implement user-defined derived type runtime I/O</title>
<updated>2021-06-28T18:36:19+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-06-25T17:40:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=43fadefb0e77c56de7637c391cf98cf709b27095'/>
<id>43fadefb0e77c56de7637c391cf98cf709b27095</id>
<content type='text'>
With derived type description tables now available to the
runtime library, it is possible to implement the concept
of "child" I/O statements in the runtime and use them to
convert instances of derived type I/O data transfers into
calls to user-defined subroutines when they have been specified
for a type.  (See Fortran 2018, subclauses 12.6.4.8 &amp; 13.7.6).

 - Support formatted, list-directed, and NAMELIST
   transfers to internal parent units; support these, and unformatted
   transfers, for external parent units.
 - Support nested child defined derived type I/O.
 - Parse DT'foo'(v-list) FORMAT data edit descriptors and passes
   their strings &amp;/or v-list values as arguments to the defined
   formatted I/O routines.
 - Fix problems with this feature encountered in semantics and
   FORMAT valiation during development and end-to-end testing.
 - Convert typeInfo::SpecialBinding from a struct to a class
   after adding a member function.

Differential Revision: https://reviews.llvm.org/D104930
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With derived type description tables now available to the
runtime library, it is possible to implement the concept
of "child" I/O statements in the runtime and use them to
convert instances of derived type I/O data transfers into
calls to user-defined subroutines when they have been specified
for a type.  (See Fortran 2018, subclauses 12.6.4.8 &amp; 13.7.6).

 - Support formatted, list-directed, and NAMELIST
   transfers to internal parent units; support these, and unformatted
   transfers, for external parent units.
 - Support nested child defined derived type I/O.
 - Parse DT'foo'(v-list) FORMAT data edit descriptors and passes
   their strings &amp;/or v-list values as arguments to the defined
   formatted I/O routines.
 - Fix problems with this feature encountered in semantics and
   FORMAT valiation during development and end-to-end testing.
 - Convert typeInfo::SpecialBinding from a struct to a class
   after adding a member function.

Differential Revision: https://reviews.llvm.org/D104930
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Support legacy extension OPEN(ACCESS='APPEND')</title>
<updated>2021-05-13T18:51:20+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-05-12T19:03:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=72abc199772c30ea2cffaa5dd4a8aa2bb2b7f18c'/>
<id>72abc199772c30ea2cffaa5dd4a8aa2bb2b7f18c</id>
<content type='text'>
It should of course be POSITION='APPEND' but Sun Fortran
supported it on ACCESS=.

Differential Revision: https://reviews.llvm.org/D102350
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It should of course be POSITION='APPEND' but Sun Fortran
supported it on ACCESS=.

Differential Revision: https://reviews.llvm.org/D102350
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Implement NAMELIST I/O in the runtime</title>
<updated>2021-05-06T18:18:36+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-05-05T18:37:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=6a1c3efa051e012aaf102b7d9e7e428a58ea8ad9'/>
<id>6a1c3efa051e012aaf102b7d9e7e428a58ea8ad9</id>
<content type='text'>
Add InputNamelist and OutputNamelist as I/O data transfer APIs
to be used with internal &amp; external list-directed I/O; delete the
needless original namelist-specific Begin... calls.
Implement NAMELIST output and input; add basic tests.

Differential Revision: https://reviews.llvm.org/D101931
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add InputNamelist and OutputNamelist as I/O data transfer APIs
to be used with internal &amp; external list-directed I/O; delete the
needless original namelist-specific Begin... calls.
Implement NAMELIST output and input; add basic tests.

Differential Revision: https://reviews.llvm.org/D101931
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Runtime must defer formatted/unformatted determination</title>
<updated>2021-05-06T18:06:43+00:00</updated>
<author>
<name>peter klausler</name>
<email>pklausler@nvidia.com</email>
</author>
<published>2021-05-05T18:33:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/llvm.git/commit/?id=199a623ebf808a01e920ebd9904c99e633c33a1f'/>
<id>199a623ebf808a01e920ebd9904c99e633c33a1f</id>
<content type='text'>
What the Fortran standard calls "preconnected" external I/O units
might not be known to be connected to unformatted or formatted files
until the first I/O data transfer statement is executed.
Support this deferred determination by representing the flag as
a tri-state Boolean and adapting its points of use.

Differential Revision: https://reviews.llvm.org/D101929
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
What the Fortran standard calls "preconnected" external I/O units
might not be known to be connected to unformatted or formatted files
until the first I/O data transfer statement is executed.
Support this deferred determination by representing the flag as
a tri-state Boolean and adapting its points of use.

Differential Revision: https://reviews.llvm.org/D101929
</pre>
</div>
</content>
</entry>
</feed>
