I've been working on a refactoring of the old assumptions. The first
part was to replace the ._assumptions dict with a dedicated class
(subclassing dict). This brings interesting conceptual clarifications
and code simplifications.

In particular, it's now clear to me that "assumptions" are used in two
rather different ways. For Symbols, assumptions do actually represent
assumptions that are part of the object's definition. For all other
objects, "assumptions" are a smart property cache, that allows some
properties to be computed lazily and efficiently, and these
"assumptions" should therefore never be explicitly set, not even in the
constructors.

I guess that the next steps are to make the split more explicit and to
stop pickling property caches (which would solve
http://code.google.com/p/sympy/issues/detail?id=2587 ). My branch is
here: https://github.com/rlamy/sympy/tree/new-core and I'd be happy to
have some feedback.



-- 
You received this message because you are subscribed to the Google Groups 
"sympy" 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/sympy?hl=en.

Reply via email to