Dear Sage developers,

In the last two years, I have been progressively redesigning the
category infrastructure to make it scale better (#10963). For a buzz
word, it introduces "axioms", which automatizes part of the
construction of the category hierarchy when there are many variants of
a category (e.g. the category Magmas can have any combination of the
axioms Commutative, Associative, Unital, Inverse, Finite, ...).

A building block for this is #13589 which helps Python scale to large
hierarchy of classes by circumventing once for all the dreaded "cannot
create a consistent method resolution order (MRO)".

Issue: this induces a small overhead in the creation of categories; in
particular, upon startup, Sage creates more than 70 categories, and
according to the patch bot this gives a startup time regression of 5%,
that is 75 ms.

I personally think the feature is well worth the price, but this
requires a poll:

- [ ] Fair enough, go ahead
- [ ] 75 ms? are you kidding?

Cheers,
                                Nicolas

PS:

- I pledge to pay my "Carbon Tax" by investing some time in a separate
  ticket toward lazy importing more modules in Sage to make up for at
  least twice the startup time regression.

- Simon is trying to rake some ms to mitigate the speed regression;
  I'd rather give him a green light now and save his dedicated and
  super competent developer's time for more interesting stuff
  (including #10963 and quiver representations).

- In the long run, I believe that automatizing the creation of the
  category hierarchy will allow for local optimizations one would not
  dare to do by hand, and yield speedups.

- The creation of many of the categories that are created upon startup
  could be postponed if Sage did not insist on constructing a couple
  polynomial rings.

- Simon spent quite some time in the past year optimizing the
  construction and usage of categories; this led to several patches
  that were merged recently into Sage.

--
Nicolas M. ThiĆ©ry "Isil" <[email protected]>
http://Nicolas.Thiery.name/

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to