#13933: BuiltinFunction.__call__ is unnecessarily slow
-----------------------------------+----------------------------------------
Reporter: robertwb | Owner: burcin
Type: defect | Status: needs_review
Priority: major | Milestone: sage-5.10
Component: symbolics | Resolution:
Keywords: | Work issues:
Report Upstream: N/A | Reviewers: Burcin Erocal
Authors: Robert Bradshaw | Merged in:
Dependencies: | Stopgaps:
-----------------------------------+----------------------------------------
Old description:
> This was discovered when looking at #12615. Basically, foo(x) eventually
> calls x.foo() if it exists, but only after doing a lot of symbolic work
> (resulting in an order of magnitude slowdown for that example).
>
> Apply only:
>
> * 13933-slow-call.v2.patch
> * 13933-doctests.patch
New description:
This was discovered when looking at #12615. Basically, foo(x) eventually
calls x.foo() if it exists, but only after doing a lot of symbolic work
(resulting in an order of magnitude slowdown for that example).
Apply only:
* 13933-slow-call.v2.patch
* 13933-doctests.patch
* 13933-more-doctests.patch
--
Comment (by robertwb):
I fixed the failed doctest and removed the old-style line continuations.
Let's not let the perfect be the enemy of the good here. I disagree that
the altname taking up time is a big issue--getting rid of this
functionality is a much larger (and backwards incompatible) change, and
for those functions without an alt name (most of them) the overhead is a
single pointer comparison.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13933#comment:7>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" 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-trac?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.