Re: [sage-combinat-devel] Python, Sage, categories

2010-07-27 Thread Carl Witty
On Mon, Jul 26, 2010 at 5:03 PM, Carl Witty carl.wi...@gmail.com wrote: I think I've tracked down the underlying problem; it's a subtle Cython performance bug. In VERY limited testing, the following procedure fixes the __getattr__ -related performance issues that I've noticed.  Nicolas and

Re: [sage-combinat-devel] Python, Sage, categories

2010-07-27 Thread William Stein
On Tue, Jul 27, 2010 at 11:20 AM, Nicolas M. Thiery nicolas.thi...@u-psud.fr wrote: On Tue, Jul 27, 2010 at 02:05:21AM -0700, Robert Bradshaw wrote: Option 4 is to fix this defect in Cython. I played around with this the other night and the problem is this: the Python C API has only one

Re: [sage-combinat-devel] Python, Sage, categories

2010-07-26 Thread Nicolas M. Thiery
On Fri, Jul 23, 2010 at 01:05:00PM -0700, William Stein wrote: During the last few weeks I've spent time optimizing code, among other things. Great! A surprising number of random things I look at in Sage are too slow by a factor of 10-100, usually due to programming style. One way to help

Re: [sage-combinat-devel] Python, Sage, categories

2010-07-26 Thread William Stein
On Mon, Jul 26, 2010 at 11:31 AM, Nicolas M. Thiery nicolas.thi...@u-psud.fr wrote: On Fri, Jul 23, 2010 at 01:05:00PM -0700, William Stein wrote: During the last few weeks I've spent time optimizing code, among other things. Great! A surprising number of random things I look at in Sage are

Re: [sage-combinat-devel] Python, Sage, categories

2010-07-26 Thread Carl Witty
On Mon, Jul 26, 2010 at 11:53 AM, William Stein wst...@gmail.com wrote: Ironically, extension types are far less affected, if at all: Without:    sage: timeit('ZZ._list',number=10^6)    sage: timeit('ZZ.gens',number=10^6)    sage: timeit('ZZ.an_element',number=10^6)    100 loops, best

Re: [sage-combinat-devel] Python, Sage, categories

2010-07-26 Thread Nicolas M. Thiery
William, grumpy o' pa There is a strong technical issue that needs to be resolved, and for which I explicitly take the blame. And I understand your frustration when fighting with zillions of technical points. However I perceived your e-mail as unfairly bashing the sage-combinat

Re: [sage-combinat-devel] Python, Sage, categories

2010-07-26 Thread William Stein
On Mon, Jul 26, 2010 at 3:36 PM, Nicolas M. Thiery nicolas.thi...@u-psud.fr wrote:        William, grumpy o' pa  There is a strong technical issue that needs to be resolved, and for  which I explicitly take the blame. And I understand your frustration  when fighting with zillions of

Re: [sage-combinat-devel] Python, Sage, categories

2010-07-26 Thread Carl Witty
On Mon, Jul 26, 2010 at 3:36 PM, Nicolas M. Thiery nicolas.thi...@u-psud.fr wrote: I just had a look at the Python sources (in Object/typeobject.c), and it's all about the difference between slot_tp_getattro and slot_tp_getattr_hook, the later being a bit more complicated than the former. I

Re: [sage-combinat-devel] Python, Sage, categories

2010-07-24 Thread Carl Witty
On Fri, Jul 23, 2010 at 1:05 PM, William Stein wst...@gmail.com wrote: The categories implementation as it is in Sage must be changed or removed.  There, I got your attention. A few months ago some code was added to Sage by the combinat folks called categories.  I recently learned ObjectiveC,

Re: [sage-combinat-devel] Python, Sage, categories

2010-07-24 Thread Robert Miller
On Fri, Jul 23, 2010 at 10:05 PM, William Stein wst...@gmail.com wrote: Anyway, a slowdown of more than 1 microsecond on everything throughout sage is absolutely unacceptable. +1 -- Robert L. Miller http://www.rlmiller.org/ -- You received this message because you are subscribed to

[sage-combinat-devel] Python, Sage, categories

2010-07-23 Thread William Stein
Hi, During the last few weeks I've spent time optimizing code, among other things. A surprising number of random things I look at in Sage are too slow by a factor of 10-100, usually due to programming style.One way to help to remedy that would be to write a book or article about how to