PING

On Tue, May 27, 2014 at 11:50 PM, Janne Blomqvist
<blomqvist.ja...@gmail.com> wrote:
> Hi,
>
> the attached patch implements the idea in
> https://gcc.gnu.org/ml/fortran/2013-04/msg00258.html ; though it
> turned out it was much simpler than what I envisaged back then. With
> this patch, we no longer seek back and forth when writing small
> records with sequential unformatted, which previously happened due to
> the buffer filling up when not on record boundaries.
> Performance-wise, I didn't really see any difference on Linux/tmpfs,
> but maybe it makes a difference in other circumstances. And of course,
> as a side-effect, it makes sequential unformatted work on unseekable
> devices such as pipes as long as the records are small, although I'm
> not sure this is something we want to advertise to users.
>
> Regtested on x86_64-unknown-linux-gnu, Ok for trunk?
>
> 2014-05-27  Janne Blomqvist  <j...@gcc.gnu.org>
>
>     PR libfortran/56981
>     * io/unix.h (struct stream_vtable): Add new member function,
>     markeor.
>     (smarkeor): New inline function.
>     (flush_if_unbuffered): Remove prototype.
>     * io/unix.c (raw_markeor): New function.
>     (raw_vtable): Initialize markeor member.
>     (buf_markeor): New function.
>     (buf_vtable): Initialize markeor member.
>     (mem_vtable): Likewise.
>     (mem4_vtable): Likewise.
>     (flush_if_unbuffered): Remove function.
>     * io/transfer.c (next_record): Call smarkeor instead of
>     flush_if_unbuffered.
>
>
> --
> Janne Blomqvist



-- 
Janne Blomqvist

Reply via email to