Oh boy, the pickle as it is is always going to be horribly broken anyway:

si4 = unpickle_newobj(pg_Partition_class, ())
unpickle_build(si4, {'_hash':11648069979105038r, '_list':[]})

It looks like it's putting a cache dictionary on the Partition_class object 
that has a hash value in it! That means that whenever the implementation of 
the hash on Partition changes, these pickles would be dangerously 
out-of-date. This is probably happening all over the place. We're fooling 
ourselves with the current pickle jar. We're not checking at all whether 
pickles continue to function from one version to the next.

The reconstruction of the pickle seems to be broken before #15575 already, 
by the way. I'm getting:

sage: load('_class__sage_combinat_sf_kschur_kSchurFunctions_t__.sobj')
<class 'sage.combinat.sf.kschur.kSchurFunctions_t'>
sage:  ks3 = kSchurFunctions(QQ, 3); ks3
k-Schur Functions at level 3 over Univariate Polynomial Ring in t over 
Rational Field

(I'm pretty sure that the pickle is supposed to create the same thing as 
the second command. As you can see, it prints very differently)

I think we have bigger problems than worrying about deprecated 
SchurFunctions unpickling. The entire approach of pickling in sage seems to 
be fundamentally flawed and will always only "sort of" work.

-- 
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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
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