Repository navigation
·
191 commits
to main
since this release
Large matrices and keyboard access to output are the main topics of this
release, which again was developed with substantial help from the AI
assistant Claude. A matrix too large for the window no longer widens
the worksheet, output can be explored part by part with the keyboard, links
in text and output can be opened, and an optional MCP server lets AI tools
read the worksheet. Plus many fixes, among them a security fix
for .wxm files.
Matrices
- A matrix too large for the window by default is displayed with an
elipsis( ⋯, ⋮ and/o ⋱) wx_matrix(M, oversized=full|elide|scroll)chooses this for one matrix.
wx_matrix()now only returns the formatted matrix instead of also
displaying it.- Double-clicking such a matrix opens a resizable window showing all of it,
also for a matrix printed bydisp()in a reopened worksheet. Ctrl+F
there searches the matrix entry by entry. - Hovering over a matrix shows which entry the mouse is over ("Row 2,
column 3"), and large matrices have faintly banded rows and columns. - Dragging across a matrix selects a block of entries, which Shift+arrow
keys can grow or shrink (#2345, #2370, #2380). Every "Copy ..." command,
including "Copy as HTML", copies only that block (#2369), and a matrix or
block can be copied as CSV for a spreadsheet (#2364). - The highlight of selected text in a cell now ends exactly where the text
cursor would be. With fonts that kern or join letters it used to be off by
a few pixels (#2278).
Keyboard and accessibility
- A cell's output can be reached with the keyboard: Down at the end of the
input selects the first result, Enter goes into a selected expression
(numerator, matrix entry, ...), Escape comes back out, and the arrow keys
move between parts. The Menu key or Shift+F10 opens the context menu, and
on Windows screen readers announce each selected part (#2382). The manual
has a new section, "Exploring output with the keyboard". The old
behaviour of Down can be switched back in the configuration dialog. - Output arriving from Maxima no longer pushes the cursor down the screen.
Editing, links and plots
- Web addresses in text cells and in Maxima's output are links: Ctrl+click
(Cmd+click on macOS) or the context menu's "Open Link" opens them
(#2396). The HTML and LaTeX exports keep them as links. - Code cells treat a bracket or quote escaped by a backslash as part of a
name or string (#528). - The unicode symbols wxMaxima offers for Maxima names (π, ⅈ, ⅇ, ∞, ∑, ∏,
∫, √, and the logical operators ⋀ ⋁ ⊻ ⊼ ⊽ ⇒ ⇔ ¬) are now Maxima aliases,
so they also work in files loaded bybatch()orload()and in
eval_string().√2and√xmeansqrt(2)andsqrt(x). - New functions
with_slider_draw_bare(animations made with plain
draw(), so a frame can hold several scenes;file_namesaves a gif,
#2361) andwx_version_min("26.09.0"), which lets a worksheet check the
wxMaxima version it runs in. with_slider_draw(..., file_name="name")no longer deletes the gif right
after showing it (#2389).- A system tray icon shows whether Maxima is busy and offers Interrupt and
Exit (#2286).
Export and files
- The HTML export can optionally write a single self-contained file with
all images embedded (#2266), and "Copy as HTML" puts such a document on
the clipboard (#2265, #2267). - Security fix: a crafted .wxm file could run Maxima code when opened or
loaded, as text containing*/ended its comment early (#1907). - A .mac file saved by wxMaxima keeps its comments unchanged (#2353).
- "Copy as RTF" now pastes into MS Word (#2264); hidden multiplication
signs get proper spacing in MathML/OMML export (#2263). - The manual's PDF no longer needs CJK fonts for non-CJK languages (#2271).
AI chat and MCP server (optional)
- An "AI Chat" sidebar chats about the current worksheet with Anthropic,
OpenAI, Google Gemini, Qwen, GitHub Models, DeepSeek, OpenRouter or a
custom provider, including local servers like Ollama, LM Studio or
llama.cpp. It uses your own API key, stored in the operating system's
secret store, and can read the worksheet but never change or evaluate
it. A status bar icon and a connection monitor show what it is doing.
The sidebar needs wxWidgets 3.3.4 or newer, the first version it works
reliably with; a build against an older wxWidgets leaves it out. That
includes this release's Windows installer and Linux .deb, which are built
with wxWidgets 3.3.2 and 3.2. - An optional MCP server lets an external AI tool read the worksheet, the
Variables sidebar and the evaluation status, and show or hide sidebars.
It listens only on this machine and cannot change the worksheet.
Talking to Maxima
- Interrupting Maxima (Ctrl+G) goes through a second connection when the
Lisp has threads (SBCL, CCL, ECL), which also makes it work reliably on
Windows (#2289). - Batch runs no longer occasionally lose or skip a statement (#2196), and
exit with a status code saying why they stopped (#2276, see the man
page). - Opening a file starts Maxima only once, about two seconds faster.
- The "Maxima isn't connecting" warning no longer fires for large
worksheets (#1182).
Windows
- Releases also offer a portable .zip that runs without installation
(#2298). - New
wxmaxima-cli.exefor command-line use: it waits for wxMaxima and
shows--version,--helpand--batchoutput in the console. - Dark mode now also themes menus, toolbars and dialogs (#2274).
--logtostderr ... 2>&1no longer loses the log.
Other fixes
- Sets (
{1,2,3}) andproduct()no longer render as blank output
(#2270), andproduct()no longer turns into "sum(" when broken into
lines. - A fraction inside a subscript, matrix or
diff()no longer vanishes in a
narrow window. - The "ASCII maths" style now uses a real monospace font, so Maxima's
ASCII art lines up. - The window layout stored by older versions is no longer discarded.
- Toolbar buttons (Redo, "return to the evaluating cell", ...) update their
state immediately and correctly. - Closing the diff viewer no longer resets settings changed meanwhile
(#2356). - The toolbar's height is recomputed at every start instead of being
restored from the previous session, so it can no longer shrink by a pixel
per session on MS Windows.
Building
- wxWidgets 3.2 and a C++20 compiler (GCC 12 or newer) are now required
(#2301). There is no longer a .deb for Ubuntu 22.04. - Compiling is about a third faster: precompiled headers are on by default
and actually work now.