On Mon, Jul 9, 2012 at 11:54 AM, William Stein <wst...@gmail.com> wrote: > On Mon, Jul 9, 2012 at 11:49 AM, Robert Bradshaw > <rober...@math.washington.edu> wrote: >> On Mon, Jun 18, 2012 at 7:03 PM, Jason Grout >> <jason-s...@creativetrax.com> wrote: >>> On 6/18/12 8:05 PM, John H Palmieri wrote: >>>> >>>> On Monday, June 18, 2012 3:34:15 AM UTC-7, Nathann Cohen wrote: >>>> >>>> Helloooooooooo everybody !!! >>>> >>>> Our graph files are getting quite large, and there is in some >>>> situations a way to make it shorter : we can define some functions >>>> in modules and import them in the Graph class afterwards. >>>> >>>> >>>> The matrix class is large, and is basically broken up into three (or >>>> four) files: matrix0.pyx, matrix1.pyx, matrix2.pyx (and matrix.pyx). >>>> Maybe you could use that approach. >>> >>> >>> And there has been discussion that it was broken up because of limitations >>> in Cython from long ago, and it should be recombined again. >>> >>> Personally, it's a bit confusing to try to find which method is in which >>> file when you're trying to change something... >> >> +1 > > -1 > > I'm in fact surprised by Robert's +1. > > This suggestion is very ironic, because the "limitation" that caused > me to have to break up the files in the first place is that it takes a > *long* time to compile the autogenerated code. That certainly hasn't > changed -- if anything, things are worse now, since Cython generates > even more code. Recombining them will only make it much more painful > to work on these files. > > If anything, it would be good to break them up even further, but in > some logical way. The main improvements in Cython over the years are > that it is much, much easier to break big code into smaller files. > > Doctesting is also bad when you have one big file. I'm against having > a 20,000 line .pyx file in Sage, which is exactly what you're > proposing. The autogenerated C code would be over 100,000 lines. > One file.
I stand by my position that it's a hack to have to break things up due to technical limitations of compilation/testing. Maybe a necessary hack, but we've contorted the code due to tool limitations, not because it's a good way to organize things. (Perhaps things could be laid out more logically, but having authored much of the code in question, I still couldn't tell you without looking it up if Matrix.augment() was in matrix0, matrix1, or matrix2.) - Robert -- -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org