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

Reply via email to