svn commit: r220755 - in head: . contrib/gcc/doc contrib/gcc/objc contrib/libobjc etc/mtree gnu/lib gnu/lib/libobjc gnu/usr.bin/cc gnu/usr.bin/cc/cc1obj gnu/usr.bin/cc/cc_tools gnu/usr.bin/cc/doc s...

Warner Losh imp at bsdimp.com
Tue Apr 19 18:06:21 UTC 2011


On Apr 19, 2011, at 6:40 AM, John Baldwin wrote:

> On Monday, April 18, 2011 3:59:45 pm Warner Losh wrote:
>> 
>> On Apr 18, 2011, at 12:18 PM, Doug Barton wrote:
>> 
>>> On 04/18/2011 11:14, Pawel Jakub Dawidek wrote:
>>>> On Mon, Apr 18, 2011 at 11:06:42AM -0600, Warner Losh wrote:
>>>>> 
>>>>> On Apr 18, 2011, at 1:01 AM, Roman Divacky wrote:
>>>>> 
>>>>>> please mark this in src/UPDATING, maybe bump freebsd_version too?
>>>>> 
>>>>> Please do not bump freebsd_version just for this.  Ports wishing to know 
> can go off the last bump, if there are any.
>>>>> 
>>>>> Every freebsd_version bump forces rebuilding all modules and such and is 
> a pita.
>>>> 
>>>> I agree that this is a PITA, but there also should be a way to force
>>>> module load even on version bump. This is PITA especially for
>>>> developers.
>>> 
>>> .... who make up a tiny percentage of the FreeBSD user community. 
> Seriously? We're going to whine because version bumps cause a little extra 
> compile time?
>> 
>> The problem usually manifests itself when I got to debug a new problem, load 
> a driver and find I have to rebuild everything else to use it, which forces an 
> extra reboot on the machine in question.  Sometimes this can be quite 
> disruptive to other things that machine is doing.
> 
> But that is only true if your source tree doesn't match your installed world.  
> If the new driver is standalone and you build it as a module, it will use the 
> headers from /sys and will work fine.

It is rarely the case that my source matches my install world.  My kernel and userland are asynchronously updated when I'm doing heavy kernel development.  My sources are updated all the time to pull in useful things that I need.  When I'm in this mode, I carefully track what's changed to make sure there were no recompile the world events.  When a userland thing changes that bumps freebsd_version, I have to recompile the kernel and reboot, even though there's no need to do so.  This is especially annoying when it happens a few times within one week, since it is a hit to my productivity each time it happens.  There's no great need to have userland features identified with the fidelity of a few dozen commits in -current.  A few hundred or more would suffice for ports and those interested, so bumping more than once a week provides almost no benefit, but inflicts some pain.

> If the new driver is part of the source tree, you do not have to upgrade the 
> entire world, just build a kernel + moduleset, install that to /boot/foo and 
> reboot into the foo kernel.  Yes, that can require a reboot, but lots of 
> kernel development requires reboots.

Just because sometimes a reboot might be required doesn't mean that forcing a reboot is necessary.

>> In this case, there was a new kernel thing just after, so it turned out OK.  
> But let's not gratuitously bump the version since the granularity we have 
> already allows the ports to make good choices on when to leave something in or 
> out.
> 
> Except that that directly contradicts our previously established policy that 
> these version bumps are cheap and that we should do more of them (this came up 
> a few years ago when we changed the policy so that the new "stable" branch 
> after a release starts at N + 500 (e.g. 802500) rather than N + 100 to give 
> more room for version bumps on current).

We have never said that version bumps were totally cheap.  In -current, there's little benefit to bumping things more often than once a week.  Since we generally develop stable for more than 2 years, 100 wasn't enough at the one a week rate.  But that doesn't mean that 5 per week is OK either, since now we suddenly have room for them.  I'm strongly suggesting that for userland-only changes that one check to see when the last bump was and if it is less than a few days (or a week), then to piggyback off the last one/next one to discriminate whether to use an old feature, or start using a new feature.  Especially for retroactive bumps that happen disconnected to the original feature going in.

Warner


More information about the svn-src-head mailing list