On Mon, Feb 20, 2012 at 9:31 PM, Keshav Kini <[email protected]> wrote:
> William Stein <[email protected]> writes:
>> On Mon, Feb 20, 2012 at 10:06 AM, Keshav Kini <[email protected]> wrote:
>>> Robert Bradshaw <[email protected]> writes:
>>>> Cython is just a py(x) to C compiler. The problem is not Cython per
>>>> se, but re-building when changing branches. Each "clone" keeps it's
>>>> own independent set of build artifacts, so switching between them does
>>>> not require a re-build.
>>>
>>> Sure, that much I certainly understand. I don't know what William is
>>> saying about dependency checking, though.
>>
>> If you switch between git branches all the build artifacts are for the
>> branch right
>> *before* you did the switch.  It would seem likely this could confuse
>> the hell out
>> of Pyrex, but maybe not Cython (?).    Even if it doesn't confuse
>> them, it can cause
>> huge build times -- e.g., each time you switch branches, you might have to 
>> wait
>> 30 minutes for "sage -br", in case the branches touch something that is 
>> depended
>> on by a lot of other Cython code.   The Sage version of branches
>> completely solves
>> this problem.
>>
>
> OK, why not cache object files by hashes of input or something? Of
> course I'm probably vastly underestimating the complexity of this
> problem...

IMHO, this is the correct solution. Of course the "input" to a binary
typically consists of a file, all its dependencies, and possibly some
of the environment. Possible (and I really hope we get there), but a
bit more complicated. See ccache or NixOS for prior art.

- Robert

-- 
To post to this group, send an email to [email protected]
To unsubscribe from this group, send an email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to