Hi Christian,

On Mon, Jun 21, 2010 at 8:24 PM, Christian Muise
<christian.mu...@gmail.com> wrote:
> I was asked to update the list with my progress daily until Friday, so I'll
> keep this quick.
>   I've pushed hard against the branch to remove the old assumptions, and as
> of a few minutes ago I've managed to get the sympy/core working smooth:
> ======= tests finished: 329 passed, 6 expected to fail, in 12.57 seconds
> =======
> - Commit: 5e76a479db9f5ad2c55a
>   This is in contrast with the state of affairs just after the discussion
> late last week:
> tests finished: 306 passed, 22 failed, 5 expected to fail,
> 1 expected to fail but passed, 1 exceptions, in 8.12 seconds
> - Commit: 91bcb155b24fd354cfdc
>   And this is the stats on my netbook for the master branch (just in case
> those times looked a little high):
> ======= tests finished: 390 passed, 7 expected to fail, in 11.58 seconds
> =======
>   Few things worth noting:
> - Most of the default assumption handling occurs now in the Expr class. It
> dispatches to the global_assumptions if there is a straight up assumption
> referring to the current query (<var>.is_foo), then attempts to
> _eval_is_foo, and in some cases check's related is_foo2's.
> - Instead of commenting out / deleting the tests that used assumptions, I
> rewrote them to use global assumptions. There may be more in the core that
> I've missed, but once they're stripped from the constructor those should
> surface. This flies against the recommended path, but I think they test
> important things and we can always place them some place else (it's easy to
> locate all instances in the testing files).
> - I found that from time to time an expression would be cached, and then the
> symbol would be used later with different assumptions. This proved to be
> /extremely/ problematic and hard to debug. Would it be worth modifying the
> cache so that all expressions related to a symbol (eg. x) are dumped when
> the Symbol('x') is called again?

This is a phenomenal progress! Thanks for this. Yes, you have just
discovered another problem, why I so desperately want to get the old
assumptions gone --- caching. And exactly because of the bugs that you
posted, the cache has to be either fixed or removed.

I would be more than happy if we can remove all caching altogether,
but since it currently would slow sympy down, Well, maybe not anymore.
We should do some tests. But let's say we need to keep the cache (at
least optional).

Do I understand correctly, that now the expressions don't remember
their assumptions themselves, but you need to use either local or
global assumptions? If so, I would just store the pure expression in
the cache and only store the result in some form, that is independent
of the assumptions. Or maybe with the assumptions themselves -- e.g.
both an expression and the assumptions.

Ondrej

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to sy...@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to