-
-
Notifications
You must be signed in to change notification settings - Fork 568
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
switch from maxima to pynac for core symbolic manipulation system #5930
Comments
comment:2
Bug/Issue: Control-C doesn't work in some cases.
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:4
There is a sequence of serious speed regressions that I think Burcin caused by changes to the pynac spkg: IN SAGE-3.2 we get OK timings for this benchmarks. They aren't great, but I can live with them, since it is"only" 57 times slower than Singular:
In Singular:
It's hard to tell, but Mathematica seems to take about 1.7ms, which is comparable to the above:
Maxima via Sage takes about 61 ms, since I guess (c)lisp is slow, etc.:
First there was a MAJOR unacceptable speed regression going to sage-3.3 (this is probably all caused by the pynac spkg). The timing jumped all the way to 42ms, so now it's almost as bad as Maxima:
In fact, directly in sage-3.2 with old Maxima symbolics:
IN SAGE-3.4.2 with new symbolics:
This may be due to a change in the pynac layer, where it is calling out to Python for some reason, even though it shouldn't need to. 206ms is really unacceptable. It's much slower than Maxima itself, it's 63 times slower than Pynac was just a few months ago, and it's 367 times slower than Singular. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:8
I've attached symbolics_final2.patch which applies on top of #5777. This patch also requires the Pynac 0.1.7 spkg at http://sage.math.washington.edu/home/mhansen/pynac-0.1.7.spkg |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:11
After applying the first patch, the second fails. This is to clean 4.0.alpha0:
|
comment:12
Replying to @williamstein:
This patch set is on top of last night's 4.0.rc0 merge tree and will not work with 4.0.a0. Cheers, Michael |
comment:13
symbolics_final2.patch does not import:
I have not touched the file that sees rejects since Mike pulled it last night, so please fix this :) Cheers, Michael |
Attachment: symbolics_final2.patch.gz |
comment:14
Ok, the latest patch applies, but lacks a commit message. Cheers, Michael |
comment:15
The spkg needs work:
All this autocrap should never be run in the spkg. The version number as well as the name of the library is also wrong. Cheers, Michael |
comment:16
I've been reading through the megabyte patch, and testing every function that's been touched. I'd estimate my coverage of the file to be about 20%, and I made sure to bounce around a bunch (that is, I didn't just read the top or bottom 20%). I didn't look at many corner cases, because I was trying to test as much as I could, and it often takes thought to come up with good corner cases. In the end, I found some things that Maxima crashed on when it tried to simplify, like
but other than that, I found the entire system to be stable and useful. In a lot of easy cases, it's much faster than before, which makes me happy. |
comment:17
I am doing the following
on
I am currently running Cheers, Michael |
comment:18
Ok, no joy: On Solaris/Sparc this patchset causes a hang in maxima.py. Mike told me that William and him allegedly fixed the underlying issue (see the discussion about the semicolon at #6054), but it causes the hang. All Maxima related doctests pass on that machine (modulo two tiny numerical noise problems), so the patch on this ticket is to blame. Cheers, Michael |
comment:19
And the failing doctest is this one:
Cheers, Michael |
comment:20
Hmm, this looks suspicious, but reverting it does not fix the problem:
Running Cheers, Michael |
comment:21
Hmm, another thing:
is cmp() in this case deterministic? Cheers, Michael |
comment:22
Formal positive review by various other people not me. Followup should be directed to new tickets for 4.0 as long as it is open. Cheers, Michael |
comment:23
Merged in Sage 4.0.rc0. Cheers, Michael |
comment:24
See #6111 for refereeing of symbolics. |
comment:25
Does anybody happen to remember why there is this strange condition involving import inspect
if not hasattr(_the_element,'_fast_callable_') or not inspect.ismethod(_the_element._fast_callable_):
# only warn if _the_element is not dynamic
from sage.misc.superseded import deprecation
deprecation(5930, "Substitution using function-call syntax and unnamed arguments is deprecated and will be removed from a future release of Sage; you ca |
comment:26
Never mind, that condition was actually added in #2516. |
SEE http://wiki.sagemath.org/symbolics/pynac_todo/push
If you want to try the code out do this:
Apply symbolics_final1.patch from [with package and patches] update to pynac 0.1.6 #5777
Apply symbolics_final2.patch from this ticket.
Build new pynac spkg:
http://sage.math.washington.edu/home/mhansen/pynac-0.1.7.spkg
CC: @burcin
Component: symbolics
Issue created by migration from https://trac.sagemath.org/ticket/5930
The text was updated successfully, but these errors were encountered: