From: Petr Ovtchenkov <ptr@void-ptr.info>
To: Paolo Carlini <paolo.carlini@oracle.com>
Cc: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: Re: [PATCH 3/4] libstdc++: avoid character accumulation in istreambuf_iterator
Date: Thu, 16 Nov 2017 11:03:00 -0000 [thread overview]
Message-ID: <20171116140319.321231b1@void-ptr.info> (raw)
In-Reply-To: <33717f79-e6f2-c7a6-6cfb-bf01efebb7a3@oracle.com>
On Thu, 16 Nov 2017 10:39:02 +0100
Paolo Carlini <paolo.carlini@oracle.com> wrote:
> Hi,
>
> On 16/11/2017 06:31, Petr Ovtchenkov wrote:
> > Is we really worry about frozen sizeof of instantiated template?
> Yes we do. See https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html
> under "Prohibited Changes", point 8.
>
> Of course removing the buffering has performance implications too -
> that's why it's there in the first place!
"buffering" here is a secondary buffering (after streambuf).
No relation to performance, but place for incoherence with
state of attached streambuf.
Of cause, I can spend time to measure the difference.
The main point of this patch series is avoidance of lost link between
streambuf and istream_iterator when istream_iterator see eof.
Implementations that forget about attached streambuf after
istream_iterator see eof (or lost synchronization with attached
streambuf) violate principles of C++ objects life cycle.
From practical point of view, such implementation block usage of
istream_iterator for sockets, ttys, etc. --- only non-modified
files remains in scope of application.
> - which I remember we
> investigated a bit again in the past when somebody reported that a few
> implementations had it other did not. But I can't say to have followed
> all the (recently uncovered) conformance implications, it could well be
> that we cannot be 100% conforming to the letter of the current standard
> while taking advantage of a buffering mechanism. Jonathan will provide
> feedback.
>
> Paolo.
--
- ptr
next prev parent reply other threads:[~2017-11-16 11:03 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-27 20:16 Make tests less istreambuf_iterator implementation dependent François Dumont
2017-09-28 12:12 ` Jonathan Wakely
2017-09-28 19:59 ` François Dumont
2017-09-28 21:56 ` Jonathan Wakely
2017-10-02 5:43 ` François Dumont
2017-10-03 14:20 ` Jonathan Wakely
2017-10-04 16:21 ` François Dumont
2017-10-04 23:23 ` Jonathan Wakely
2017-11-15 20:52 ` [PATCH 1/4] Revert "2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>" Petr Ovtchenkov
2017-11-15 20:52 ` [PATCH 2/4] libstdc++: istreambuf_iterator keep attached streambuf Petr Ovtchenkov
2017-11-15 20:52 ` [PATCH 3/4] libstdc++: avoid character accumulation in istreambuf_iterator Petr Ovtchenkov
2017-11-15 20:52 ` [PATCH 4/4] libstdc++: immutable _M_sbuf " Petr Ovtchenkov
2017-11-15 21:31 ` [PATCH 3/4] libstdc++: avoid character accumulation " Paolo Carlini
2017-11-16 5:32 ` Petr Ovtchenkov
2017-11-16 9:39 ` Paolo Carlini
2017-11-16 11:03 ` Petr Ovtchenkov [this message]
2017-11-16 11:29 ` Paolo Carlini
2017-11-16 11:41 ` Petr Ovtchenkov
2017-11-16 11:51 ` Paolo Carlini
2017-11-16 10:56 ` [PATCH 1/4] Revert "2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>" Jonathan Wakely
2017-11-16 11:35 ` Petr Ovtchenkov
2017-11-16 11:39 ` Jonathan Wakely
2017-11-16 11:40 ` Jonathan Wakely
2017-11-16 11:57 ` Petr Ovtchenkov
-- strict thread matches above, loose matches on Subject: below --
2017-10-13 17:14 Make istreambuf_iterator::_M_sbuf immutable and add debug checks François Dumont
2017-10-23 19:08 ` François Dumont
2017-11-06 21:19 ` François Dumont
2017-11-16 5:52 ` Petr Ovtchenkov
2017-11-16 10:57 ` Jonathan Wakely
2017-11-16 11:46 ` Jonathan Wakely
2017-11-16 12:08 ` Petr Ovtchenkov
2017-11-16 17:40 ` François Dumont
2017-11-16 18:12 ` Petr Ovtchenkov
2017-11-16 21:31 ` François Dumont
2017-09-23 7:10 [PATCH] libstdc++: istreambuf_iterator keep attached streambuf Petr Ovtchenkov
2017-09-25 13:46 ` Jonathan Wakely
2017-09-28 10:34 ` Jonathan Wakely
2017-09-28 12:06 ` Petr Ovtchenkov
2017-09-28 12:38 ` Jonathan Wakely
2017-10-03 20:39 ` Petr Ovtchenkov
2017-10-04 5:04 ` [PATCH v2] " Petr Ovtchenkov
2017-10-06 16:01 ` [PATCH] libstdc++: istreambuf_iterator proxy (was: keep attached streambuf) François Dumont
2017-10-06 18:00 ` Petr Ovtchenkov
2017-10-08 14:59 ` [PATCH] libstdc++: istreambuf_iterator proxy François Dumont
2017-10-09 19:32 ` Petr Ovtchenkov
2017-10-10 5:52 ` Petr Ovtchenkov
2017-10-10 14:21 ` [PATCH] libstdc++: istreambuf_iterator proxy (was: keep attached streambuf) Jonathan Wakely
2017-08-24 11:27 [PATCH] streambuf_iterator: avoid debug-dependent behaviour Petr Ovtchenkov
2017-08-29 20:02 ` François Dumont
2017-08-30 5:05 ` Petr Ovtchenkov
2017-08-31 20:30 ` François Dumont
2017-09-01 9:10 ` Jonathan Wakely
2017-09-07 21:02 ` François Dumont
2017-09-08 5:47 ` Petr Ovtchenkov
2017-09-08 6:15 ` François Dumont
2017-09-09 20:17 ` François Dumont
2017-09-21 5:46 ` François Dumont
2017-09-28 10:50 ` Jonathan Wakely
2017-09-28 10:58 ` Jonathan Wakely
2017-09-21 18:23 ` Petr Ovtchenkov
2017-09-25 9:34 ` Petr Ovtchenkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171116140319.321231b1@void-ptr.info \
--to=ptr@void-ptr.info \
--cc=gcc-patches@gcc.gnu.org \
--cc=libstdc++@gcc.gnu.org \
--cc=paolo.carlini@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).