public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Carlos O'Donell <carlos@redhat.com>
To: Florian Weimer <fw@deneb.enyo.de>
Cc: libc-alpha@sourceware.org
Subject: Re: Future of libio vtable compatibility
Date: Mon, 18 Jun 2018 20:28:00 -0000	[thread overview]
Message-ID: <6d8c852f-30e2-50f3-b846-0fdd1ad33a9f@redhat.com> (raw)
In-Reply-To: <87efh3u9vo.fsf@mid.deneb.enyo.de>

On 06/18/2018 04:18 PM, Florian Weimer wrote:
> * Carlos O'Donell:
> 
>> Let me pose another question...
>>  
>>> It almost looks to me as if nobody really wants that level of
>>> backwards compatibility.
>>
>> Assume you had reliable test system with 100 tests for the backwards
>> compatibility support.
>>
>> Given the tests, would you still make the same argument for removal?
> 
> Probably not.  Depends how good the tests are.  If lack of testing of
> those internal interfaces does not prevent library cleanups and other
> changes (such as the implement of fgetln, biased locking for stdio
> streams, or *printf speed-ups),
> 
>> Is the argument about poor testing semi-independent of the argument for
>> removal?
> 
> I think the lack of a testsuite is a huge upfront cost if we ever
> tackle libio modernization.  And if we treat vtables as an internal
> implementation detail, it's significantly easier to achieve some
> decent level of coverage.
> 
> If give up the notion of vtable compatibility (or internal, data
> structure layout compatibility), it will be somewhat easier to
> convince that certain fixes are acceptable.
> 
> For example, with virtual methods, the call graph between virtual
> methods is part of the API, and also the relative order of internal
> calls.  Or look at the marker support (see struct _IO_marker).  I'm
> not sure which of the streams are compatible with that.

So either...

(a) Improve libio vtable testing, covering the bug in question,
    and fixing the bug for compat.

and/or

(b) Remove libio vtable compat.

But given the dubious value of the libio vtable compat, I think we
should be deprecating it in a future release. I agree with you that
no complaints upstream is the strongest indicator that nobody is
using old binaries with really new glibc. We usually see breakage
very quickly when we touch features people care about.

It still feels like to me that this is glibc 3.0 material where we
kill the compat, and then enable everyone to start restructuring
the code immediately after 3.0 releases with the expectation set
that we aren't supporting ancient libstdc++ binaries. This can be
done without aprioiri trying to figure out which changes are possible
and which are not (your question about complexity).

My comment about making the next release 3.0 was not meant to give
anyone a heart attack, but just to indicate my willingness to move
this issue forward. Should 2.29 be 3.0?

Cheers,
Carlos.

  reply	other threads:[~2018-06-18 20:28 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-15  7:50 Florian Weimer
2018-06-18 16:07 ` Carlos O'Donell
2018-06-18 17:15   ` Florian Weimer
2018-06-18 17:41     ` Zack Weinberg
2018-06-18 18:25       ` Adhemerval Zanella
2018-06-18 19:08       ` Florian Weimer
2018-06-18 19:26         ` Zack Weinberg
2018-06-18 19:22     ` Carlos O'Donell
2018-06-18 20:18       ` Florian Weimer
2018-06-18 20:28         ` Carlos O'Donell [this message]
     [not found]           ` <878t7bu834.fsf@mid.deneb.enyo.de>
     [not found]             ` <80e0f086-a966-618d-7b27-1f42a7b9a5c9@redhat.com>
2018-06-19 19:11               ` Florian Weimer
2018-06-19 19:20                 ` Carlos O'Donell
2018-06-19 12:18       ` Joseph Myers
2018-06-19 12:39         ` Adhemerval Zanella

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=6d8c852f-30e2-50f3-b846-0fdd1ad33a9f@redhat.com \
    --to=carlos@redhat.com \
    --cc=fw@deneb.enyo.de \
    --cc=libc-alpha@sourceware.org \
    /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).