[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Build systems suck. Can Lua be the basis for a better build system?
- From: steve donovan <steve.j.donovan@...>
- Date: Fri, 8 Mar 2013 12:33:22 +0200
On Fri, Mar 8, 2013 at 11:08 AM, Sean Conner <sean@conman.org> wrote:
> I would think any header file that exists outside the top level directory
> of your project can be pruned. At the very least, on a Unix system, any
> header file in "/usr/include", "/usr/local/include" and /opt/include" could
> be removed.
With GCC, I use -MMD to get the used include files, and this option is
clever enough to exclude any system includes. The MSVC equivalent is
/ShowIncludes and it isn't clever, so that output gets pruned.
No, the real problem is that you get very big dependency graphs, and
checking whether a node has change involves checking whether any child
node has changed. The obvious thing is to cache this information so
one isn't needlessly checking branches. I intend to do some
experiments along this direction this weekend.
I am _very_ aware that this must be complete old-hat and
well-understood. Currently the biggest Lake project is LuaBuild, and
there's about 43 KLoc involved with 80 files, and it takes lake about
half-a-second to work out if something has changed. That isn't good
enough.
steve d.