|
|
Subscribe / Log in / New account

Benjamin: Towards a new SymPy

In a series of posts on his blog, Oscar Benjamin looks at SymPy, which is a Python-based symbolic-mathematics library. In the first article, he outlines the "big changes for SymPy with particular focus on speed". The second covers polynomial handling; subsequent articles will examine other pieces of the puzzle.
I will be writing this in a series of blog posts. This first post will outline the structure of the foundations of a computer algebra system (CAS) like SymPy, describe some problems SymPy currently has and what can be done to address them. Then subsequent posts will focus in more detail on particular components and the work that has been done and what should be done in the future.


to post comments

Benjamin: Towards a new SymPy

Posted Sep 8, 2023 23:10 UTC (Fri) by nickodell (subscriber, #125165) [Link] (6 responses)

A very interesting dive into SymPy internals. I've used SymPy before, but never appreciated how it works under the hood. It's a shame he doesn't have an RSS feed for people who want to follow the blog.

Benjamin: Towards a new SymPy

Posted Sep 12, 2023 18:55 UTC (Tue) by lamikr (guest, #2289) [Link] (5 responses)

Works like everything else in Python, no any kind of quarentee for stable API and lot of broken code/rewritting for upcoming years.

Benjamin: Towards a new SymPy

Posted Sep 14, 2023 8:40 UTC (Thu) by smurf (subscriber, #17840) [Link] (4 responses)

Stop dissing Python. Others are not much better, just try recompiling any nontrivial C++ program from a decade ago.

Benjamin: Towards a new SymPy

Posted Sep 15, 2023 23:18 UTC (Fri) by Sesse (subscriber, #53779) [Link] (3 responses)

I've frequently done exactly this, without much ado. There's been stuff like a few missing #includes, but no major semantics changes (including in libraries).

Benjamin: Towards a new SymPy

Posted Sep 21, 2023 6:47 UTC (Thu) by LtWorf (subscriber, #124958) [Link] (2 responses)

Well most libraries in python are stable.

In C++, like in python, if you pick a library written by a noob that changes the API at every release, you do get the problem.

There is no programming language that by its very structure makes sure that API compatibility is kept.

Benjamin: Towards a new SymPy

Posted Sep 21, 2023 6:58 UTC (Thu) by gioele (subscriber, #61675) [Link]

> There is no programming language that by its very structure makes sure that API compatibility is kept.

Elm has "Enforced Semantic Versioning" (from <https://elm-lang.org/>)

> Elm detects all API changes automatically thanks to its type system. We use that information to guarantee that every single Elm package follows semantic versioning precisely. No surprises in PATCH releases.

Benjamin: Towards a new SymPy

Posted Sep 21, 2023 12:48 UTC (Thu) by pizza (subscriber, #46) [Link]

> In C++, like in python, if you pick a library written by a noob that changes the API at every release, you do get the problem.

In C++, you'll (almost always) know this at compile time. In Python, you won't know that a sub-sub-sub dependency changed an API until a backtrace pukes all over your shoes at _some point_ during program execution.


Copyright © 2023, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds