On Jun 5, 1:10 pm, "Glenn H Tarbox, PhD" <[EMAIL PROTECTED]> wrote:
> On Thu, 2008-06-05 at 12:41 -0700, Robert Bradshaw wrote:
> > 1) Sage has a non-trivial build process for Cython files. When a .pyx  
> > file is changed, the .c file needs to be regenerated, as well as .so  
> > file. Changing a .pxd file can result in a cascade of .c/.so files  
> > that need to be regenerated. Clones allow one to keep all these auto-
> > generated files around without having to commit them or (potentially)  
> > re-compiling every time one switches branches. This I think is the  
> > main reason.
>
> This should all be manageable with proper directory organization or
> build rules... as Sage progresses, a mechanism to understand that a
> derived type to one system is a source type to another will need to
> exist regardless.

The point is that we save time (potentially a lot of time) by having a
separate build tree per clone.  Are you suggesting that we have a
separate build tree per branch, instead?  How would that work... would
the build system query the version control system for the current
branch name?

As far as the second half of your response, I'm confused.  The build
system already understands chains where the output of one step is the
input to the next: the .so file is made from the .o file, which is
made from the .c file, which is made from a variety of .pyx, .pxd,
and .pxi files.  When we change a .pxi file, all the required
rebuilding is done automatically (which may take 10 or 20 minutes for
changes to "core" .pxi files, which is why we don't want to do it
every time we change branches).

> > 3) Clones are conceptually easier to understand and harder to mess up  
> > (by, for example, doing working on one task without switching to the  
> > right branch first). I am not saying that virtual branches are too  
> > difficult for anyone to figure out, but clones are even easer for  
> > getting started with the system.
>
> I'd counter by saying the need for symlinks more than offsets any
> advantage and more often than not hides where you are anyway... when you
> do a pwd after traversing a symlink it doesn't indicate the true
> directory.

Are you talking about the sage -> sage-<NAME> symlink?  I'm never
confused by it because I never use it; I always use sage-<NAME>
directly.  We could probably figure out a way to avoid this symlink,
if we decided it was a problem.

> > 4) It's easier to abandon the history of a clone, both for hopelessly  
> > broken development efforts and refereeing of other people's patches.
>
> git branch -D badbranch
>
> as opposed to the usual
>
> git merge developmentBranch
> git branch -d developmentBranch
>
> (btw, I'm a git user... I'm sure there's something similar in Hg)

I don't think there is.  (I've looked.)

Carl
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to