> > I have some time over the next couple of weeks to experiment with
> > ideas related to Sympy, and a project of mine.
What is your project about? I mean which exact features you need?
> > When I last tried Sympy I had problems with functions, lambdas etc.
> > If Sympycore is the future core for Sympy I'm keen to work with it
> > right from the start. Is the basic class structure in Sympycore
> > reasonably settled now? I mean the basic stuff: Pow, Add, Mul classes,
> > and defining functions, lambdas etc?
>
> Yes, I think so that the basic stuff is quite stable. If you find
> anything
> that is not working as expected, just file a new issue.
> Btw, I am currently working on adding operator support to sympycore.
It depends what you want. Pearu, as I understand it, wants to port
modules from SymPy to sympycore and then switch completely from sympy
to sympycore (possibly renaming it to sympy), the same way as we did
it the last time. While I disagree, because the way forward imho is to
improve SymPy, otherwise you'll get two very similar projects, some
things will be working in one, some other things in the other one.
Starting always from scratch is not the way forward imho.
You can read more about this issue here:
http://groups.google.com/group/sympy/browse_thread/thread/ffdb5468fe5a8356/
Quoting Pearu from there:
"
The issues that are considered difficult to resolve in the
current sympy (such as speed, assumptions model, caching issues)
become almost unresolvable within the current sympy development
policy (which btw is very good for a mature project).
"
So are those fundamental issues (speed, assumptions, caching) resolved
and settled in sympycore already? If so, let's discuss them and then
port them to sympy.
Ondrej
But don't you think this basically creates two competing projects? Do
you want that to happen?
The IO things are just bell and whistles, that are very easy to port.
The other stuff are very difficult to port and to achieve the exact
same functionality as sympy has. Basically things, that you are not
interested in (geometry?, graphing?, IO, maybe some other minor
stuff), are easy to port. The rest is just the whole sympy. We both
agree that the fundamental issues should be improved. We probably both
not yet know, if sympycore already fixes all of them, or still more
work needs to be done. But once sympycore achieves some basic
functionality, I don't think sympy can just use it. Sympycore is just
too much different. So we could port the rest of the modules from
sympy to sympycore. But that's not your plan, so I am confused about
your plan.
Ondrej
As to speed I think a rewrite in C/Cython will be necessary, Python is
imho too slow - how much faster is sympycore compared to sympy? Could
you please try to port Kent's FEM test to sympycore, to see how fast
it is in sympycore? In ginac, it's 0.3s, in sympy it's 2.4s. If we
could get to let's say 3x slower than ginac, that I think could be
fast enough, considering the advantage of being pure python.
As to robustness, this is something that imho just needs to be
improved iterativelly. Why do you think SymPy is difficult to improve
in terms of robustness? I don't think so.
Well, I am just trying us to work just on one project, not two. You
have implemented and are implementing many nice features in sympycore,
that cannot be used from sympy, until someone ports it. I am working
on some other things that cannot be used in sympycore, until someones
ports it. Now new people will implement something in sympy, but it
cannot be used in sympycore. Some other people will choose sympycore,
because they like it's faster (for example), they implement something
nice and again, it will not be possible to use it in sympy. I think
its a very bad situation and it is an issue.
It won't be an issue if neither I nor you wanted to get other people
involved. But I think both me and you want other people involved. So
we really should work just on one project, not two that are
incompatible. I agree we need to fix caching, speed etc. But renaming
classes and methods (otherwise doing the same thing), rearranging
modules just creates it difficult to port code from one project to
another.
Ondrej
Thanks. This is the area of interest of most of us.
> - Unfortunately Lambdas don't work in Sympy - see Sympy issue 427,
> which still failed yesterday. I would like to fix this for myself and
> for the Sympy project, but I find the current Sympy core too complex
> to debug myself. :-(
Could you please give me more details on this? I would like SymPy to
be simple again, as it used to be before the merge to the new core.
In which areas do you find SymPy more complex than sympycore?
> > - help me learn about both projects and decide which to use
> > - help test Sympycore
> > - bring the day closer when Sympy can use the new core (without
> > distracting Pearu from developing the core itself).
> >
> > Is it too early in Sympycore's development to do this, or not?
>
> Not at all, in fact, sympy is already porting many features
> developed in sympycore to sympy.
I think it is a huge waste of our time to port both from sympycore to
sympy and from sympy to sympycore. I think we
should work on one project.
Ondrej