On 17 May 2014 at 4:52, Sergey Popov wrote:
It proposes we eliminate build systems by making the entire thing a graph database compiling per-type rather than per-file.
Well, I've read that part and I'm not convinced it's a good idea. Buildsystem handles not only C++ but other toolchains and tasks. Once compiler writers get around to making their compilers cloud based and treat all cpp files as one enormous translation unit this can be integrated into a build tool as single step. Until then build tools can handle C++ dependencies by scanning header files and exchanging information between separate projects using tools like pkg-config. For now it's best to improve on this.
It isn't doable for a compiler to work as one enormous translation unit. Even today clang is well known to ICE on Microsoft's internal code - MSVC is very, very good at dealing with enormous translation units, and clang will never match MSVC on that with its current design. Also, there is no point making compilers cloud based. Silicon density growth is petering out and will go linear by 2020. After that we no longer get automatically improving compile times for free, and will start having to refactor how we do things to get more performance. It was precisely that refactoring is what my paper is about. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/