Skip to content

Release Version-26.09.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Sep 22:00
· 191 commits to main since this release
Version-26.09.0
e8bbfd0

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 by disp() 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 by batch() or load() and in
    eval_string(). √2 and √x mean sqrt(2) and sqrt(x).
  • New functions with_slider_draw_bare (animations made with plain
    draw(), so a frame can hold several scenes; file_name saves a gif,
    #2361) and wx_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.exe for command-line use: it waits for wxMaxima and
    shows --version, --help and --batch output in the console.
  • Dark mode now also themes menus, toolbars and dialogs (#2274).
  • --logtostderr ... 2>&1 no longer loses the log.

Other fixes

  • Sets ({1,2,3}) and product() no longer render as blank output
    (#2270), and product() 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.