[cfe-dev] [LLVMdev] [3.6 Release] RC3 has been tagged

Joerg Sonnenberger joerg at britannica.bec.de
Wed Feb 18 13:46:13 PST 2015


On Wed, Feb 18, 2015 at 03:59:15PM -0500, Tom Honermann wrote:
> On 02/18/2015 03:01 PM, Renato Golin wrote:
> >So it seems that you're one of the very few people that doesn't use
> >ToT. Almost everyone else uses it and the progress of LLVM kind of
> >assume you do.
> 
> My company also does not use ToT.  Being able to associate a product
> with a well-known release is *very* important to us.  It enables
> communication with our customers.  It allows us to determine
> compatibility between our Clang derived product and other Clang
> derived products.  It allows us to easily discuss groups of feature
> sets.
> 
> I personally find it rather crazy that developers are expected to
> use ToT (and then determine stability on their own).  Why have an RC
> series at all if that is the case?

Let's go back a step. This started because a performance regression was
reported very late in the release cycle of 3.6. A performance regression
by 20% or 40% is annoying for whoever is affected by it, but it is not a
critical issue like miscompilation. From the current state of the
analysis, it is not even clear *why* it happens. There are various
patterns like very hot inner loops where minimal changes to the
resulting code can have huge impact on the performance, without being
able to tell from looking at it why that is the case. The combination
results in a sane decision for release management to not consider this a
blocker. It doesn't mean people are ignoring it (now that it has
actually been reported in the proper place, not somewhere on the
internete (TM)). For me, the most critical job of a compiler is creating
working output. The second most critical job is to not pointlessly
create horrible code when the input was "simple enough". Everything else
is nice to have. 

Now Renato's comment about many developers focusing on ToT is a direct
result of the development pace of LLVM. It is not appropiate for
everyone. If your product is mostly about clang as parser for example,
code changes are not nearly as important to trace in real time. The APIs
tend to be quite a bit more stable and the number of fixes and new
features is also lower. A release is also a good point in time to focus
on stabilizing things and shacking out bugs. It doesn't mean that's
ignored the rest of the time, but development focus certainly does
shift for a while around releases. That's something the github model of
"just pull whatever is in trunk" ignores.

Finally, the LLVM community has been starting to put more effort into
release maintainance. A release two years ago was essentially a
hit-and-miss effort. With 3.4 and to a much greater degree 3.5, the
release branch gets further bug fixes and point releases are done.
Kudos to the release manager for that, you know who you are.

Joerg



More information about the cfe-dev mailing list