Skip to content

Improve Maxima backend usability and result handling - #124

Merged
ChrisRackauckas merged 5 commits into
JuliaSymbolics:mainfrom
Amin-El-Sayed:maxima-usability-0.2
Aug 3, 2026
Merged

Improve Maxima backend usability and result handling#124
ChrisRackauckas merged 5 commits into
JuliaSymbolics:mainfrom
Amin-El-Sayed:maxima-usability-0.2

Conversation

@Amin-El-Sayed

Copy link
Copy Markdown
Contributor

Summary

  • surface concrete Maxima assumption questions instead of parser failures
  • preserve exact constants and broaden special-function round-tripping
  • add exact simplification, numerical evaluation, status, and help utilities
  • document the backend and prepare SymbolicIntegrationMaxima v0.2.0

Motivation

Parametric improper integrals could previously end in a raw parser error when Maxima asked for an assumption. Exact special-function values could also be converted to floating-point values too early, and unsupported Maxima functions stopped otherwise usable results from returning to Symbolics.

This update makes the backend suitable for interactive use while keeping assumptions explicit: the package does not silently choose mathematical domains or signs for the user.

Behavior

The backend now:

  • captures Maxima's assumption requests and reports which assumption is missing
  • distinguishes assumption, timeout, process, parse, and unsupported-result failures
  • preserves exact %pi and %e
  • handles incomplete gamma values and common special functions more naturally
  • preserves unknown Maxima functions as symbolic calls when possible
  • provides maxima_simplify, maxima_numeric, maxima_help, and maxima_status
  • documents installation, assumptions, improper integrals, simplification, and diagnostics

Validation

  • Julia 1.10: 90/90 basic tests passed
  • Julia 1.12: 90/90 basic tests passed
  • difficult corpus, 103 cases: 62 ok, 35 maybe, 0 fail, 4 unevaluated, 2 assumption-needed, 0 exceptions
  • Documenter build and doctests passed
  • git diff --check passed

Release and registry

The subpackage version is bumped to 0.2.0. After this PR is merged, the General registry source entry should first be updated to:

repo = "https://github.com/JuliaSymbolics/SymbolicIntegration.jl.git"
subdir = "lib/SymbolicIntegrationMaxima"

Then 0.2.0 can be registered from the merged commit. Existing entries in Versions.toml, especially the 0.1.1 tree hash, must remain unchanged.

@codecov-commenter

codecov-commenter commented Jul 13, 2026

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 54.51%. Comparing base (8647f0d) to head (fd973fe).
⚠️ Report is 11 commits behind head on main.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #124      +/-   ##
==========================================
+ Coverage   50.98%   54.51%   +3.52%     
==========================================
  Files          23       23              
  Lines        4309     4309              
==========================================
+ Hits         2197     2349     +152     
+ Misses       2112     1960     -152     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Amin-El-Sayed

Copy link
Copy Markdown
Contributor Author

Hi @ChrisRackauckas, all 24 checks are green and the PR is conflict-free. It includes the Maxima 5.46 assumption regression fix, expanded integration tests, and the dedicated backend documentation. Is there anything else you would like changed before merge?

@ChrisRackauckas

Copy link
Copy Markdown
Member

Nope that looks great.

@ChrisRackauckas
ChrisRackauckas merged commit 7002229 into JuliaSymbolics:main Aug 3, 2026
24 checks passed
@Amin-El-Sayed

Copy link
Copy Markdown
Contributor Author

Thanks for merging this. SymbolicIntegrationMaxima is now version 0.2.0 under lib/SymbolicIntegrationMaxima, and the subpackage TagBot step from #125 is also on main. General still points to the former standalone repository and only contains v0.1.1. Could a JuliaSymbolics maintainer please trigger the official subpackage registration with @JuliaRegistrator register subdir=lib/SymbolicIntegrationMaxima? The existing v0.1.1 tree hash must remain unchanged.

@JuliaRegistrator

Copy link
Copy Markdown

Error while trying to register: Register Failed
@Amin-El-Sayed, it looks like you are not a publicly listed member/owner in the parent organization (JuliaSymbolics).
If you are a member/owner, you will need to change your membership to public. See GitHub Help

@ChrisRackauckas

Copy link
Copy Markdown
Member

oh yes misssed that sorry!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants