Hal Finkel
2015-Mar-11 14:55 UTC
[LLVMdev] [RFC] Raise minimum required CMake version to 3.0
[this is not in reply to anyone in particular] I don't understand why we don't ship CMake with LLVM. We seem to think of CMake as a stable system dependency (in the same way that we think of make and the shell), and it's not. It is an actively developed project, like LLVM itself, and, frankly, it is not mature enough to be considered part of the base system. Furthermore, it is not clear that it ever will be: CMake's goal of building an abstraction layer over many different build systems, on many different operating systems, combined with our tendency of being on the leading edge of these features, is not likely to lead to a situation where we can rely for long periods of time on the 'stable subset' of the functionality provided. I think we should stop fighting about this and ship a version of CMake with LLVM. We already have imported dependencies on gtest, etc., and while I understand this is different, I think it will likely be worthwhile in the long run. We can always use a suitable system version, if we find one, instead of rebuilding a version we ship. -Hal ----- Original Message -----> From: "David Chisnall" <David.Chisnall at cl.cam.ac.uk> > To: "Renato Golin" <renato.golin at linaro.org> > Cc: "jroelofs" <jonathan at codesourcery.com>, "Tobias Grosser" <tobias at grosser.es>, "LLVM Dev" <llvmdev at cs.uiuc.edu> > Sent: Wednesday, March 11, 2015 8:22:09 AM > Subject: Re: [LLVMdev] [RFC] Raise minimum required CMake version to 3.0 > > On 11 Mar 2015, at 12:45, Renato Golin <renato.golin at linaro.org> > wrote: > > > > A. LTS Linux users (by far, the biggest constituency among Linux > > users) are stuck old versions of CMake in their packages. > > To put this in perspective, until the latest Ubuntu LTS release it > had been impossible to build LLVM without building some dependencies > manually on Ubuntu LTS. This didn't seem to be a problem for the > project then and I don't really see why it would become one now. It > was slightly annoying (our Jenkins server had to build a load of > stuff from source), but RHEL and Ubuntu LTS generally seem to be > aimed at people who think old software with known security holes is > better than new software with undiscovered bugs, so there's less > reason to expect that they'd want to run the very latest LLVM. > > David > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory
Renato Golin
2015-Mar-11 15:20 UTC
[LLVMdev] [RFC] Raise minimum required CMake version to 3.0
On 11 March 2015 at 14:55, Hal Finkel <hfinkel at anl.gov> wrote:> I think we should stop fighting about this and ship a version of CMake with LLVM.We already manage other unstable dependencies like gcc, glibc, binutils, ninja and python (2.7 vs. 3.0). This is even more true on non x86 platforms. We also have increased the development cost (when not using better C++11 alternatives) because some compilers on some platforms were not up to the task. We have made incremental changes to CMake already (2.8 for now), and bumping it again right now would be unwise, IMO. Just like we waited MSVC to be mature enough to bump the minimum requirement to version 13, I think we should wait for more Linux distributions to pick up CMake 3.0 to bump the version up. We have used a good pattern for that kind of issue before (with C++11) and it worked well in the long run. We should continue the pattern. Bundling CMake with LLVM would make builds more complex. It would require a bootstrap script (for each platform), so that we can build CMake, and we'd need it to be done for all projects. The complexity added is not trivial. cheers, --renato
Hal Finkel
2015-Mar-11 16:17 UTC
[LLVMdev] [RFC] Raise minimum required CMake version to 3.0
----- Original Message -----> From: "Renato Golin" <renato.golin at linaro.org> > To: "Hal Finkel" <hfinkel at anl.gov> > Cc: "LLVM Dev" <llvmdev at cs.uiuc.edu>, "jroelofs" <jonathan at codesourcery.com>, "Tobias Grosser" <tobias at grosser.es>, > "David Chisnall" <David.Chisnall at cl.cam.ac.uk>, "chandlerc" <chandlerc at gmail.com> > Sent: Wednesday, March 11, 2015 10:20:55 AM > Subject: Re: [LLVMdev] [RFC] Raise minimum required CMake version to 3.0 > > On 11 March 2015 at 14:55, Hal Finkel <hfinkel at anl.gov> wrote: > > I think we should stop fighting about this and ship a version of > > CMake with LLVM. > > We already manage other unstable dependencies like gcc, glibc, > binutils, ninja and python (2.7 vs. 3.0). This is even more true on > non x86 platforms. > > We also have increased the development cost (when not using better > C++11 alternatives) because some compilers on some platforms were not > up to the task. > > We have made incremental changes to CMake already (2.8 for now), and > bumping it again right now would be unwise, IMO. > > Just like we waited MSVC to be mature enough to bump the minimum > requirement to version 13, I think we should wait for more Linux > distributions to pick up CMake 3.0 to bump the version up. We have > used a good pattern for that kind of issue before (with C++11) and it > worked well in the long run. We should continue the pattern. > > Bundling CMake with LLVM would make builds more complex. It would > require a bootstrap script (for each platform), so that we can build > CMake, and we'd need it to be done for all projects. The complexity > added is not trivial.Why? CMake itself already has a bootstrap procedure and associated scripts? We'd just defer to those as appropriate. The added complexity is not trivial, but need not be large, and most importantly, is borne by us, not all other users, packagers, systems administrators, etc. Plus, having done so, we'll be in control of what features are available to us, which will provide an offsetting increase in our productivity. Regarding the other dependencies you mentioned, they're mostly providing standardized interfaces (libc, C++11, etc.), except for Python. But Python has lots of optional external dependencies (ncurses, etc.) and would not be a good candidate for shipping inline, plus it's large. CMake's external dependencies are very minimal, and it's not particularly large, making it a much better candidate for bundling. -Hal> > cheers, > --renato >-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory
Joerg Sonnenberger
2015-Mar-11 17:32 UTC
[LLVMdev] [RFC] Raise minimum required CMake version to 3.0
On Wed, Mar 11, 2015 at 09:55:08AM -0500, Hal Finkel wrote:> [this is not in reply to anyone in particular] > > I don't understand why we don't ship CMake with LLVM.Please don't pull in a huge piece of non-trivial software just for the sake of a few Linux users. Personally, I would just require those interested in Ubuntu LTS or RHEL or SLES 10 or whatever to coordinate with their distro's maintainance team for getting appropiate backports. It's not like those don't already exist for other software. Joerg