[LLVMdev] Last Known Good Builds?

Mikael Lyngvig mikael at lyngvig.org
Sun Nov 4 01:33:23 PST 2012


Hi,

I have several times over the past three months tried to retrieve the trunk
version of LLVM/Clang/Compiler-RT from Subversion and then tried to build
it on Windows: Without success.  Also, I occasionally get emails from
people who ask me why LLVM/Windows does not build (they find my name in the
mailing list archive).

This has made me ponder the issue and I came up with the following scheme
to ensure that there is a high probability that we Windows users can
actually build the most recent version of LLVM:

1. Every night, an automated build builds LLVM & Co. on all the supported
host platforms and runs the test suite to completion.
2. IF the automated build succceds on ALL supported host platforms AND the
test suite succeeds, the build is marked as "Last Known Good" and
automatically published to the website so that people can download it
without using Subversion.  There should always only be one and only one
Last Known Good (LKG) build - which is sort of equivalent to a "daily
tarball", albeit it is known to build properly on all platforms.

I believe step 1 is already in place, but perhaps the project's build
master, or I, can put together some Python scripts to automate the process
of making a LKG build.

Why is the LKG build so important?  Because in software development in
general, you want to reduce the "granularity" of the process as much as
possible, approximating a kurve rather than a series of steps.  If people
adopt LLVM v3.1 and then have to wait one year for another update (v3.2) in
which LOTS and LOTS of things have changed, they are in for a tough ride
when they want to upgrade to the new version.  If, on the other hand, they
can get a bi-weekly LKG build (assuming the entire build process on all
platforms only succeeds twice a week), they can adopt their code in very
small steps.


Cheers and have a great day!

Mikael Lyngvig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121104/910c8adb/attachment.html>


More information about the llvm-dev mailing list