#7377: Symbolic Ring to Maxima via EclObject
-----------------------------------------------------------------------+----
   Reporter:  nbruin                                                   |       
Owner:  nbruin      
       Type:  enhancement                                              |      
Status:  needs_work  
   Priority:  major                                                    |   
Milestone:  sage-feature
  Component:  symbolics                                                |    
Keywords:              
     Author:  Nils Bruin, Jean-Pierre Flori                            |    
Upstream:  N/A         
   Reviewer:  Jean-Pierre Flori, François Bissey, Karl-Dieter Crisman  |      
Merged:              
Work_issues:                                                           |  
-----------------------------------------------------------------------+----

Comment(by nbruin):

 Some forensics on:
 {{{
 sage -t  devel/sage-main/sage/structure/sage_object.pyx
 }}}
 The error occurs on
 {{{_class__sage_interfaces_maxima_MaximaFunction__.sobj}}} in the pickle
 jar, coming from the doctest (slightly adapted):
 {{{
 sage: f=maxima.function('x,y','sin(x+y)')
 sage: save(f,"newpickle.sobj")
 sage: load("newpickle.sobj")==f
 True
 }}}
 The incompatibility seems to come from a rearranging of the
 abstract_maxima interface etc.
 To pin down version information:
 {{{
 $ ls -l _class__sage_interfaces_maxima_MaximaFunction__.*
 -rw-r--r-- 1 nbruin nbruin  96 2009-03-10 13:04
 _class__sage_interfaces_maxima_MaximaFunction__.sobj
 -rw-r--r-- 1 nbruin nbruin 130 2009-03-10 13:04
 _class__sage_interfaces_maxima_MaximaFunction__.txt
 $ cat _class__sage_interfaces_maxima_MaximaFunction__.txt
 type(obj) = <class 'sage.interfaces.maxima.MaximaFunction'>
 version = 3.4.rc1
 obj =
 '                                    sage270'
 }}}
 Loading this pickle into a new version yields:
 {{{
 sage:
 load("/home/nbruin/_class__sage_interfaces_maxima_MaximaFunction__.sobj");
 AttributeError: 'module' object has no attribute
 'reduce_load_Maxima_function'
 }}}
 On the other hand, loading the new pickle into an old version (4.3.4):
 {{{
 sage: load("newpickle.sobj");
 ImportError: No module named maxima_abstract
 }}}
 So this seems to be not so much an error but more a non-compatible change.
 I am sure these have happened before elsewhere. I'd be happy to just
 accept the fact that these pickles aren't portable across these versions,
 but if someone has an example we might be able to put the hooks in to
 preserve backwards compatibility (really, no-one should have a reason to
 pickle maxima functions from sage).

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/7377#comment:81>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to