[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-dev] Large-scale cleanup

From: Andrew Guertin
Subject: Re: [Gnash-dev] Large-scale cleanup
Date: Tue, 19 Apr 2011 06:12:00 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20110303 Lightning/1.0b2 Thunderbird/3.1.9

On 04/18/2011 09:01 AM, Rob Savoye wrote:
On 04/18/11 02:32, Andrew Guertin wrote:

Why do you often build only a directory or two?

   For example, lately I've been doing much hacking on librender, so
often just do "make -C librender&&  gui/fb-gnash -vv test.swf". Since
it's a small library, it recompiles quickly. If you look at the hwaccel
branch, you can see that while all top level libraries build
recursively, all the sub directories do use non-recursive Makefiles. I
think it's this hybrid technique that works best.

So it looks like you're mainly using it to hack around the normal build method to gain speed.

I call this a hack because it's fragile and requires a knowledgeable developer to know when it's permissible and when a full rebuild is required (e.g. in the case of any API/ABI changes), but when it is used with caution, it does provide the speed benefit.

My expectation is that switching to non-recursive would provide enough of a speed increase to nearly equal the current hack: the major culprits of traversing unchanged directories and linking objects multiple times would be removed. Also, even those without the ability to determine if the hack is safe (e.g. buildbot) would benefit.

Would you be willing to change your workflow if a switch does speed things up enough?

(Note that another option is to move to non-recursive, but keep all the libraries as-is. This would allow your workflow to remain almost identical. [librender would be a target in the top level (only) makefile, so you would run something like "make" instead of "make -C librender".] I don't recommend it, though; better is to speed things up enough that hacks aren't necessary.)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]