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
