On Thu, Feb 4, 2010 at 6:17 AM, Stefan Behnel <[email protected]> wrote:

> I actually really meant "partial". During development, bounded changes will
> only trigger a limited subset of rebuilds, so an edit-compile-run cycle
> will not suffer that much from small Cython modules being larger than
> strictly required.

I think a large part of the issue is that partial builds are totally
unreliable with distutils. Numscons and source splitting (to make
partial builds as small as possible) really changed the way I work on
Numpy C code, because it changed from waiting ~ 1 minute to do testing
to a few seconds. With distutils, there are so many cases where
partial builds cause weird issues that I have given up doing anything
but full rebuilds with it.

Assuming a reliable partial build, I feel like there are several
stages, between instantaneous, a bit long but not too long to do
something else, and the long enough that you are doing something else.
I think that cython in some cases makes me going from the
instantaneous to a bit long stage. I will try to look at it more
seriously to look for pathological cases.

>> Yes // builds help a lot for large projects, for example scipy - a
>> fully optimized scipy build takes < 2 minutes on a beefy computer, and
>> ~ 45 seconds for debug builds. At that point, numscons and scons
>> become the bottleneck.
>
> I don't care so much about complete project builds.

Yes, not everybody cares about full builds - I do because I am
involved with installers/deployment issues.

Another argument for caring about full builds is regression hunting
through things like git bisect and co, where reliable partial builds
are not always possible (I know numscons has some issues in that
area).

>That
> limits the amount of app deployments that we can run in our CI process, but
> it limits neither development nor unit testing.

I think it depends on what you are doing. Going from 5 to 2 minutes
for a full build of scipy is not that useful for many people, but if
every project started this kind of speedup, you could hope building
things like EPD or pythonxy in one hour instead of whatever is needed
ATM, and that changes the things you can do w.r.t. quality testing
IMO.

cheers,

David
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to