From owner-cvs-src@FreeBSD.ORG Tue Aug 28 16:19:26 2007 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2CF3216A56D; Tue, 28 Aug 2007 16:19:25 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from speedfactory.net (mail6.speedfactory.net [66.23.216.219]) by mx1.freebsd.org (Postfix) with ESMTP id 32BC313C46B; Tue, 28 Aug 2007 16:19:24 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (unverified [66.23.211.162]) by speedfactory.net (SurgeMail 3.8k2) with ESMTP id 205811552-1834499 for multiple; Tue, 28 Aug 2007 12:19:34 -0400 Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.8/8.13.8) with ESMTP id l7SGJ4YV039259; Tue, 28 Aug 2007 12:19:10 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: Daniel Eischen Date: Tue, 28 Aug 2007 11:44:43 -0400 User-Agent: KMail/1.9.6 References: <20070827.204618.-1350500405.imp@bsdimp.com> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200708281144.45019.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Tue, 28 Aug 2007 12:19:10 -0400 (EDT) X-Virus-Scanned: ClamAV 0.88.3/4088/Tue Aug 28 07:51:32 2007 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: src-committers@freebsd.org, peterjeremy@optushome.com.au, yar@comp.chem.msu.su, alfred@freebsd.org, cvs-all@freebsd.org, cvs-src@freebsd.org, "M. Warner Losh" Subject: Re: cvs commit: src/lib/libc/gen fts-compat.c fts-compat.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Aug 2007 16:19:26 -0000 On Tuesday 28 August 2007 12:31:32 am Daniel Eischen wrote: > On Mon, 27 Aug 2007, M. Warner Losh wrote: > > > In message: > > Daniel Eischen writes: > > : I think you're a little confused here. CURRENT users did NOT have > > : to rebuild ports when fts(3) or stdio(3) ABIs changed. They > > : would only have to rebuild if one of these ABIs changed _more > > : than once between releases_. That hasn't ever happened to my > > : knowledge in the past, and it really shouldn't happen as long > > : as things are tested and reviewed properly. > > > > One of the reasons that it hasn't happened before is that we forced > > people who tried to make, or proposed making, such changes to make > > them in a compatible sort of way. We have all kinds of ugliness in > > and around FILE to try, alas in vain, to be compatible. One of the > > reasons people would like to see symbol versioning is to make it > > easier to change the size of different structures because we have > > stood on our heads in the past to not change sizes. > > > > I'm concerned that the empirical evidence from the past might not be a > > good thing to base our future plans upon. We knew we had sucky tools > > to deal with binary incompatibility in the past, so we stood on our > > heads to not make too many binary incompatible changes. With that > > limitation gone, I think the likelihood is large we will see multiple > > ABI changes between major releases on something. Especially since it > > happens when structures change size and there are many functions that > > take pointers to multiple structures... > > The emphasis should be on trying to get things right, tested, and > reviewed the first time ;-) But also to keep compat shims to a > minimum too. It may be easier to create different versions and > keep compatibility, but the SV'd libraries are going to grow with > compat shims if we don't try to reduce ABI changes like we've > done in the past. I think we need an ABI review board monitored > by -standards ;-) > > If you are really concerned about it (I'm not!), then you can > always add another version in between releases, or just bump > the version every time you break an ABI in -current. I'm not > advocating this because I don't think it's necessary. I don't > think you need to have both private and public versions in > -current, just use 1.x and bump x for every ABI change. -current > will always have all versions 1.0 - 1.x, and prior branches > will have some of them. Whenever -current is branched, both > the branch and -current will once again have all versions > until the ABI in -current changes again. See, I'd like to minimize the number of symbols in RELENG_x branches to actually be the symbols used only in prior RELENG_x branches as a way to cap the bloat some. Things don't get always get done right in -HEAD on the first try, but the FBSD-current thing gives us a strategy to allow HEAD to be fluid to eventually get things right while not bloating RELENG_x branches with unneeded compat shims. -- John Baldwin