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.