# Current development version

This release contains an unusually large batch of improvements -- many of them
developed with substantial help from the AI assistants **Claude** and
**Fable**: dark mode for the whole Windows user interface, native
Windows-on-Arm builds, numerous speedups, and a large number of bug and
stability fixes.

- On Windows, switching to dark mode now also darkens the native user
  interface (menus, toolbars, sidebars, dialogs), not just the worksheet.
  wxWidgets can only enable this during application startup, so the saved
  appearance is now applied before the main window is created. (Toggling the
  appearance while wxMaxima is running may still need a restart to fully
  re-theme the native controls -- a Windows limitation.)
- Native Windows-on-Arm (ARM64) builds: each release now includes a
  self-contained portable ZIP for ARM64 Windows, built natively with the
  clang-aarch64 toolchain. Unzip it and run wxmaxima.exe -- no installer and
  no separate runtime needed.
- The worksheet diff viewer now shows changes inside a folded (collapsed)
  section instead of silently ignoring them: the cell alignment used to walk
  only the visible top-level cells, so two worksheets that differed solely
  inside a fold looked identical in the diff. Folded content is now expanded
  in the diff view and highlighted like any other change.
- Typing "(" at the horizontal cursor opens a new code cell containing "()"
  with the caret between the parens again, like "[", "{" and "\"" do. A
  refactor had left the caret in front of the opening paren instead.
- On builds with accessibility support (e.g. Windows) the configuration
  dialog gained an "Accessibility" tab: Maxima's output can now be announced
  to screen readers either as maths in linear text form (the default) or as
  MathML (wrapped in a complete namespaced <math> document), for screen
  readers that can speak MathML.
- Speedup: "Replace All" no longer schedules a re-layout of the whole
  worksheet - only the cells that actually contained the search text are
  re-laid-out.
- Speedup: scrolling to a cell whose position isn't known yet (and the
  caret-visibility check) now schedules a re-layout targeted at that cell
  instead of one spanning the whole worksheet.
- The statistics sidebar now grows its scrollable height to its wrapped
  button rows, like the other sidebars: when the sidebar was narrow, the
  buttons below the fold could neither be shown nor scrolled to.
- The POT file for translators now also includes the translatable strings
  from the source subdirectories (cells, sidebars, wizards, ...): the
  extraction glob was flat and silently dropped them.
- Evaluating a cell whose input is commented out entirely now removes the
  cell's stale output. Previously such a cell was skipped silently while a
  multi-cell evaluation advanced past it, keeping output that no longer
  matches the input.
- LDB mode: after answering an ldb> prompt (or clicking elsewhere), the next
  prompt's input line could no longer be reached - clicking into it did
  nothing and keystrokes opened a new worksheet cell instead. The LDB prompt
  now engages the full question machinery, so clicking into the cell that
  holds the prompt reopens its input line, and pressing Enter falls back to
  the prompt's answer even if the cursor wandered off it. The pending prompt
  is also cleaned up when the Lisp process ends.
- File name arguments (openr(), read_matrix(), load(), demo(), ...) now
  autocomplete bash-style: the popup lists the directory the partial name
  points into, typing narrows the list and Backspace widens it again, and
  choosing a directory descends into it and keeps completing there. Several
  edge cases (the editor's auto-added closing quote, a spurious leading "/" at
  the top level, and completion in a still-unsaved worksheet) were fixed too.
- Fixed a layout bug where the width of parenthesized content was
  underestimated: in partially-broken nested parenthesis/fraction/subscript
  constructs, cells inside a fraction could be drawn at the full font size
  while the surrounding parenthesis used the reduced-size extents. Composite
  cells now always re-lay-out their children at the right font size, and each
  cell remembers (and drawing verifies) the font size it was laid out with.
- Fixed a hang when a worksheet contained an image that could not be rendered
  (a broken or empty `<img>`): querying the size of the not-yet-rendered
  bitmap tripped a wxWidgets assertion. Found by the layout/paint fuzzer.
- Fixed an assertion/crash when cutting or copying cells while the bitmap or
  SVG clipboard flavor was enabled: the off-screen renderer that draws the
  copied cells no longer trips the configuration teardown check.
- Repaired the lisp mode.
- Repaired the maxima debugger mode
- Repaired the SBCL debugger (LDB) mode
- Status bar pictograms for lisp and debugger modes
- Many Speedups
- A complete stability review using a Fable-Class AI
- Speedup: merely moving the mouse across the worksheet no longer repaints the
  whole visible worksheet at up to full frame rate. On GTK the worksheet now
  uses classic scrollbars by default (the overlay ones forced full-window
  repaints; a configuration option brings them back), the paint routine
  redraws each damaged rectangle separately, and needless idle re-layouts of
  the sidebars, status bar and performance monitor were removed. New
  "Worksheet repaints" / "Full-window repaints" counters in the performance
  monitor make such regressions easy to spot.
- Refactored the code into smaller, individually testable classes
- Added automatic tests for most recurring bugs
- More counters in the performance monitor
- Corrupt or hostile .wxmx files now fail cleanly instead of hanging: a damaged
  archive no longer wedges a batch run in an endless "Save As" loop, absurd
  watch-variable or active-cell counts no longer drive near-endless loops, and
  an over-large content.xml is read only up to a sane limit (a
  decompression-bomb guard). Guarded by a new corrupt_wxmx_smoke test. The
  .wxmx document-version check is now parsed locale-independently.
- Fixed: when Maxima asks a question the input cell for the answer appeared
  above the question instead of below it.
- Restarting Maxima no longer spawns a new gnuplot process to probe which
  graphics terminals gnuplot supports: if the restarted Maxima reports the
  same gnuplot as before, the answer from the first probe is reused.

- Stability: a failing save no longer risks stacking one "Saving failed!"
  dialog per autosave interval (the autosave timer restarted before the modal
  dialog was dismissed); the message is now shown once, after the handler that
  detected it has finished. 
- Reading gnuplot's terminal-list reply and cached
  gnuplot source/data files can no longer loop forever on a stream that
  reports a read error instead of an end-of-file. 
- Better prevention of leaked maxima processes
- Automatic line wrapping is now enabled for code cells
- Fixed: typing near the right edge of a wrapping text cell scrolled the
  worksheet sideways for no reason: the caret entered the horizontal
  scroll-into-view zone just before every automatic line wrap.
- Better authentication of maxima
- Animation frame rates are now floating-point.
- Windows: on shutdown wxMaxima suppresses the OS hard-error message boxes ("this
  application could not be started"
- several configuration-dialog settings were silently not saved when pressing OK
- The diff viewer now highlights, inside each changed cell, the exact words
  the matching cell of the other file doesn't contain (word-level inline
  diff
- Changing a cell's type (Cell -> Convert to code/text/section/...) can now be
  undone.
- The Microsoft Edge WebView2 loader license is now included in the third-party
  notices only on Windows builds that actually use it, i.e. built with webview
  support - not on Linux/Mac, nor on a Windows build with webview disabled.
- Bugfix: the "how long did layout take" log message printed a meaningless
  near-zero duration, and the time-sliced layout of the off-screen part of a huge
  worksheet was not actually time-limited.
- Code deduplication.
- Corrected the line wrapping position
- The diff viewer's panes can be scrolled as soon as they open, instead of only
  after the window is resized.
- The "return to the cell that is being evaluated" toolbar button now lights up
  when the evaluated cell is scrolled out of view, even when the text cursor is
  not inside it (previously it only reacted to the cell that held the cursor).
- Windows: a batch-mode run (wxmaxima --batch, typically started from a
  script) could appear to hang for seconds to minutes before its window
  opened
- Fixed a mangled maxima user directory when maxima is compiled with GCL
  (as Debian's and Ubuntu's maxima packages are) match.
- Fixed find-next getting stuck when a match was found in an input prompt
- Fixed broken equation-image links in HTML exports using the "bitmap" equation
  format
- Added an export safety-net regression test (test_WorksheetExport) covering
  HTML (all equation formats), LaTeX, .mac and .wxm export.
- Fixed math cells with subscripts, parenthesis or lists keeping stale spacing
- Added a layout-idempotency regression test: after zoom and canvas-size changes the converged layout must be identical to laying the same content out from scratch.
- Configuration changes that alter how text is displayed (e.g. drawing a multiplication dot instead of an asterisk) take effect on the next redraw again instead of requiring the cells to be rebuilt.
- The build now autodetects whether the wxWidgets webview and qa components are actually usable instead of failing to configure on installations whose wx-config advertises components that were never built. WXM_DISABLE_WEBVIEW/WXM_DISABLE_QA are still honored to force-disable them.
- Fixed a crash in builds without webview support: requesting help on a topic (e.g. Maxima's ?? command) with exactly one matching topic name accessed the topic list out of bounds - and showed the wrong topic when there were several.
- The help pane is now opened once per help request instead of once per matching topic name.
- Accessibility: screen readers now actually see the worksheet's contents. 
- Accessibility: the symbol/Greek-letter/math sidebar buttons are now announced as named push buttons (by their description, e.g. "Greek small letter alpha") instead of anonymous panels.
- The Unicode characters sidebar can now be used from the keyboard
- Fixed copying/cutting a freshly drag-and-dropped image turning it into an "Image data had zero length" error: the copy no longer reads the image before its background load has finished.
- Fixed copying/cutting a range of cells losing every cell that follows an image, a page break, or a code cell with the "send known answers" flag: those cells' clipboard data was missing a separator, so the following cells were swallowed on paste.
- Windows: wxMaxima now repairs its own .wxmx/.wxm/.mac file association on startup, so updating to a new install location no longer makes Windows "forget" which program opens .wxmx files.
- Windows: a new Help menu item registers wxMaxima as the tool TortoiseSVN and TortoiseGit use to compare .wxmx files.
- Added a regression test guarding the worksheet's line-wrapping (line-breaking) layout pass.

# 26.07.0

- Fixed a crash on loading a worksheet containing an empty `<img/>` or `<slideshow/>` tag (found by the parser fuzzer).
- No longer lose an embedded image on save if the current build cannot decode it.
- The license dialog now has a second tab listing third-party component notices (e.g. the Microsoft Edge WebView2 loader shipped with the Windows builds).
- Added a regression test guarding matrix column widths against being frozen by a layout-time deadline.
- The "follow evaluation" toolbar button now lights up immediately when needed.
- Fixed matrices keeping stale (too narrow or too wide) column widths when a layout-time deadline interrupted their recalculation.
- Fixed short Text and Title cells flickering.
- Fixed data loss when trying to embed .svg.gz files into .wxmx files.
- wxWidgets 3.3 compatibility.
- A proper Dark mode (dark sidebars, toolbars and menus require wxWidgets 3.3 and up)
- Many improvoements to the automatic tests
- Many batch mode improvements
- Many stability improvements
- Windows: pressing Ctrl+F now keeps the keyboard focus in the find dialog.
- Many diff viewer enhancements
- Corrected the find algorithm
- A correctness review for all wizards.
- EditorCells again grow and shrink when the user adds and removes lines

# 26.06.2

- A whole AI-driven safety review 
- MSW only: .wxmx file contents were sometimes loaded twice
- Many diff viewer improvements
- Many find dialogue improvoements
- Corrected the table of contents showing only part of sections, sometimes.
- More responsivity when loading many images.
- Removed some visible glitches.
- Better implementation of the layout timeout.
- Fix layout of fractions inside exponents (e.g. `x^((a+b)/c)`).
- Don't leave orphaned Maxima processes behind when wxMaxima is killed by a
  signal or crashes.
- The crash dialogue now works on more systems.
- Another layout fix.
- Add a new command `wxmxdiff` (symlinked to `wxmaxima` on installation) which automatically opens in side-by-side diff comparison mode.
- More preparation for packaging
- Improve the randomness of the authentication token passed to Maxima.
- Add a "Math layout strategy" radio box to the config.
- Better undo handling.
- Another try to make accessibility work.

# 26.06.1

- Fix the Ctrl+F keyboard focus on MS Windows to correctly focus the find dialogue instead of leaving it on the worksheet.
- Fix syntax errors caused by sending duplicate/consecutive command delimiters to Maxima by filtering out delimiter-only commands and correctly handling unicode non-breaking space characters during ending checks.
- Fix a rare access violation (crash) when activating or clicking on an EditorCell that has a null or detached group cell pointer.
- Fix mouse capture lost warning messages by correctly marking mouse capture loss events as handled in the table of contents and worksheet.
- Fix the error status being immediately replaced by "awaiting input" on the status bar and taskbar when Maxima encounters an error.
- Fix layout recalculation of images and plots when window height changes (e.g. at startup or on vertical resizing).
- Fix duplicate evaluation triggers (sending known answers twice) when Maxima questions are received in multiple chunks.
- Fix scroll position tracking: call ScrolledAwayFromEvaluation(true) when the user manually scrolls so that the active cell is completely outside the visible portion of the worksheet.
- Fix inserting a new cell (via hCaret) on large worksheets causing the scroll range to shrink to the first screen and the view to jump to the top.

# 26.06.0

- Optimize drawing during mouse moves (bracket autohide): redraw only the actual height of the cell, rather than drawing all the way to the absolute bottom coordinate.
- Change the "Jump to first error" menu item to "Jump to last error" and fix its implementation to scroll to the most recent error cell.
- Fix handling of to_lisp() and (to-maxima).
- Fix redundant Maxima process spawns when opening worksheets and in batch mode.
- A Diff Viewer that compares two wxmx files from the same origin that were saved with this wxMaxima version or newer.
- Fix startup keyboard focus: The worksheet now correctly gains focus on application start.
- New `wx_matrix()` command for advanced matrix formatting (lines, headers, custom brackets).
- Persistent matrix formatting: Style flags are now saved within the matrix object.
- Major XML performance optimization: Faster worksheet loading via hash-based attribute filtering.
- Improved XML integrity: Automated validation tests to prevent duplicate attributes and malformed files.
- Windows Accessibility: Fixed several bugs in the `wxAccessible` implementation for better screen reader support.
- Script rendering: Fixed issues where complex subscripts/superscripts would flatten into standard subscripts.
- High-DPI: Optimized SVG rendering and resolved redundant resource requests.
- Editor performance: Optimized drawing by rendering only visible text tokens.
- Non-interactive mode: Automated tests now skip most blocking modal dialogues.
- The log now contains errors maxima encountered.
- Many improvements to the Doxygen documentation.
- Fix the cursor position after autocompletion (#2090).
- Fix XML for saving as wxmx, when Maxima warnings are displayed (#2092).
- Fix XML output for definite integrals. It was saved without the limits.
- Resolved a Crash on encountering some integrals (#2095)
- A complete overhaul of the worksheet's layout and display engine.
- Opening <file.wxmx>#UUID opens the file and scrolls to the Group with 
  that UUID
- Many stability improvements, most of these AI-driven (#2072, #2061)
- The size of subscripts is now calculated correctly
- The table of contents can now show section numbers
- Massive improvement of the search within the worksheet
- Ctrl+G now interrupts the current command again on MS windows
- Reduced the time windows in which wxMaxima blocks because it is 
  processing data
- Fixed a deadlock when closing the application while background 
  autocompletion tasks were running.
- Fixed a bug where finding an item in an output cell didn't trigger a 
  scroll to the found item.
- Fixed a bug where text from long output cells couldn't be selected 
  if the beginning of the cell was scrolled out of view (#2069)
- MS Windows: The "maxima is running" indicator should now work correctly
- HI-DPI improvements
- A few Autocompletion fixes
- Better SVGZ support
- Some fixes for selection of output
- Improved MathML and RTF output
- Big find-and-replace functionality additions
- A compiler supporting C++20 is required now
- Files opened by double-clicking now have a consistent layout
- Added automatic tests and repaired others.

# 26.05.0

- Fix search and replace. Before in a longer string - e.g. "aaaaaaaaa"
  only every second occurrence was replaced, when (e.g.) one wanted to
  replace "a" by "b".
- Update Hungarian and Russian translations.
- Fix crashes at startup on MacOS 26.2 "Tahoe" (#2060).
- Improvements in Plot2dWiz and Plot3dWiz.
- Fix the "Hide all Sidebars" menu option, it did not work.
  (Changed from "Hide all Toolbars"), it hides sidebars, not the toolbar.
- Build system: Allow changing the C++ standard using CMAKE_CXX_STANDARD.
- Build system: Use C++20 by default, if the compiler supports it.
  C++14 still works.
- Build system: Fix compiling with C++20, C++23 and C++26.
- Fix webp support for wxWidgets >= 3.3.0.
- Fix 2nd 'Special constant' button in the integrate wizard.
- Fix many issues in the integrate numerically menu (#2069).
  Also mentioned "QUADPACK" in the menu, so that one knows, from what
  Maxima package these special functions come.
- Don't include dot files in the release archive (#2068).
- New compile option WXM_DISABLE_QA (#2064).
- Fix the 'Create a list from a list' menu (mentioned in the discussion forum).
- Fix the 'Extract nth element of a list' menu.
- Fix the 'Do for all list elements' menu.
- Fix the 'export list to csv file' and 'read list from csv file' menu.
  It was not working at all. Renamed to 'read nested list from csv file', the
  menu item is using read_nested_list(). Mentioned in the discussion forum.
- Fix the 'Apply a function to each list element' menu. Mentioned in the discussion forum.
- Fix the List/Push menu (wrong order of arguments). Mentioned in the discussion forum.
- Provide a relevant OSDescription in the top bar.
- Discard intermediate PNG plots from with_slider_draw (#2081).
- A better 'List sort' wizard. (Mentioned in the discussion forum).
- Fix the Help->Example and Help->Apropos menus.
- Fix the Matrix->Row and columns operations->Remove rows or columns menu.
  Change to one 'Remove rows' and one 'Remove columns' menu.
- Fix statistics sidebar
  (wxbarsplot, wxboxplot, wxpiechart, mean, median, std were not working)
- Fix inconsistent behavior in the list menu (mentioned in the discussion forum)
- Make toolbar icons HDPI (#2074).

# 26.01.0

- Keep the wxm/mac difference when saving wxm/exporting mac.
  This omits unneeded comments (/* [wxMaxima: input   start ] */
  (and input end) in a mac file (structural comments (section, ...)
  are still saved) and especially omits question/answer comments -
  they are unreadable by Maxima (see #2014, not only wxm files but
  also mac files were problematic). At least the issue with mac
  files is solved.
- Replace unicode fractions in math input.
- Use wxArtProvider images for the copy/print icons in the config dialogue.
  They were very small on Linux (Ubuntu).
- Support webp images if wxWidgets >= 3.3.0 is used.
- Fix the General Math sidebar resize issue (#2022).
- Fix the resizing of the 'Insert cell' sidebar (same problem as
  the 'General Math' sidebar).
- MacOS: Fix debug message boxes after closing a file (#2016).
- Fix build with current Mac XCode ('old'/new' build system).
  (reported in a comment in issue #2016).
- Fix a crash when copying a input cell (collapsed to only show the input).
- Fix a crash when closing the configuration menu on OpenBSD (#2027).
- Fix a problem with wxplot2d/wxplot3d on OpenBSD (#2027).
- Fix a crash when deleting a text cell (#2041).
- Fix subscripts of greek letters (#2045).
- Fix the "Numerical solutions of polynomial" (with and without bigfloats) wizards.
  The allroots() and bfallroots() functions use only one argument, not two.
- Save the chosen inversion status in the configuration. Fixes issue #2049.
- Try to highlight input text that coincides with selected output text.
- diff() now doesn't add a ",1" if only the 1st derivate is meant.
- A more consistent worksheet zoom feature.
- Maxima's state should now be displayed in the windows task bar.

# 25.04.0

- Use the (standard) wxWidgets log window instead of our own log pane.
  Less code to maintain, more features (e.g. clear log, save log).
  In "Release" builds the log window will be hidden (and can be enabled
  using View->Toggle log window, otherwise it is shown.
- Make the option "--logtostderr" work on Windows.
  (Windows GUI applications do not have STDIN, STDOUT and STDERR assigned,
  an extra 'text window' with the log messages will be opened at startup).
- Do not set lmxchar/rmxchar (used for displaying a matrix in text mode).
  It did not work at all. Maxima provides a reasonable default - and
  people probably expect the same, if they are using command line Maxima
  and wxMaxima. (#1926)
- Kill Lisp (e.g. sbcl.exe) when closing wxMaxima. (#1963, #1922, #1824, #1199)
- Correct heading colors (#2005)
- Repaired the Equations->Solve numerical->Find numerical solution" menu (#2010)
- Included examples (10MinuteTutorial.wxm, testbench_simple.wxmx) were affected
  by the Maxima/Gnuplot 6 problem. (see issue #1960)
- Support wxWidgets, if it was build with '--enable-utf8=yes' (#2012)
- Fix compiling with wxWidgets without webview.
- HTML export/Mathjax: Don't remove 1st/last label char (#2003)

# 25.01.0

- Remove the change label width popup menu (#1964).
  It was not working at all and caused crashes. And I think the
  label width is not changed so often, so that a (working)
  possibility in the configuration menu is enough.
- If an empty worksheet is saved as wxmx, allow it to be read again (#1978).
  The generated content.xml was empty, which was no valid XML.
- Fix compiling with clang++.
- CopyAsMathML: encode "<" and ">" as HTML entities (valid XML).
- CopyAsMathML: improvements (operators and identifiers)
- Fix the check for Gnuplot-Cairo on Windows.
- Fix the (Windows) crash in the suggestions menu (#1980).
- HTML export: print the output labels on the left side.

# 24.11.0

- A Spanish translation update by cyphra.
- Resolved a crash when inverting the worksheet (#1951)
- Do not strip Lisp comments before sending the input to Maxima (#1953)
- Correctly copy superscript when CopyAsMathML (#1945)
- Copy as MathML: Use a centered dot instead of *, if configured (#1956)
- Fix superfluous quote marks in text copied by "Copy as MathML" (#1946)
- Fix copy as MathML for boxes.
- Correct display/handling of minf.
- WxMaxima was not responsive in the 1st minute.
- Fix display of subscripts. (#1584, #1807)
- Allow Maxima strings with newlines. (#76)
- Support Maxima which uses ABCL.

# 24.08.0

- An advanced plotting tutorial
- Try harder to kill maxima on closing it
- Try harder to clean up maxima's temporary files on closing it
- Resolved a race condition on closing multiple windows
- Resolved a CMake error on configuration with -B switch (#1917)
- More menu icons
- A better dialogue if Maxima isn't found
- Better search for the Maxima binary
- Find Gnuplot on Windows if wxMaxima is packaged alone. This
  is needed for the 'Popout interactively' function of wxdraw().
- Security: Use a standard function (CreateTempFileName) for
  creating a temporary file for the 'popout interactively'
  function of wxdraw.
- Security: Add a random number to lisp generated temporary files.
- Fix the 'Gnuplot command window' (on Windows) (issues #771, #1680 and #1732).
- A Spanish translation update by cyphra
- Fix the greek letter replacement for 'beta' with newer Maxima versions (#1921).
- Fix a problem, when 'maxima-local' (a not installed version of Maxima)
  was chosen as Maxima. WxMaxima did not finish on File->Exit and used
  much CPU power.
- Size calculations for numbers that were broken into lines failed the first time
  (#1931)
- On MS Windows one can now choose between Gnuplot and wGnuplot (#1934)
- Fixed the error message about dual manifest files on MSVC

# 24.05.0

- Faster discarding of maths that is too long to read
- Resolved a crash on closing the last window (#1898)
- Now only wxWidgets builds with Unicode support (default) are allowed.
  Builds without Unicode support are strongly discouraged
  by the wxWidgets team.
- Update German and Italian translations
- Use po4a instead of po4a-translate for the generation of
  internationalized manuals. po4a-translate is deprecated (#1899)
- Allow compilation with the current wxWidgets development version
- Code reorganization to promote stability
- Security: Use a standard function (CreateTempFileName) for creating
  temporary filenames instead of using the process id as 'random' number.
- Security: (autosaved) temporary files now use secure permissions,
  are not readable by everyone.
- wxm files no more truncate text (#1908)
- Unicode sidebar: Allow searching for unicode numbers too, not only the
  character name.
- Unicode sidebar: Correct the search filter, the last char was always
  shown, even if there was no match.
- Improvements of the manual.
- Performance: Replaced many copy operations by references to const
- Correctly handle deletion of the last cell (#1911, #1840)
- A link from the help menu to maxima's help page
- Offer more maxima demos in the right-click menu
- Resolved a threading race condition (#1912)
- Printing integral, sum and product signs on MS Windows (#1909)
- Resolved literally hundreds of warnings from static analysis tools
- Support for the %catalan constant
- Better MSVC support
- On MSW wxWidgets >=3.2 now is mandatory for getting high-DPI support
- A backward-search fix (#1913)

# 24.02.2

- Set maxima's LANG variable, not wxMaxima's LANG (#1897)
- Sped up the communication between maxima and wxMaxima
- Sometimes newlines in misc text from maxima got lost (#1894)

# 24.02.1

- wxMaxima now correctly installs its icons (#1892)
- A race condition on closing Maxima
- Update the autocompletion only in idle state
- Fixed a race condition on dropping the log target
- Alt+Up at startup no more crashes (#1886)
- Resolved a compilation error on old wxWidgets versions
- Resolved GCC errors about too long functions
- Resolved an assert if no history file exists
- Ctrl+Alt+M now restarts maxima
- Added a Maxima/Memory menu

# 24.02.0

- Faster start-up
- Better performance directly after startup
- Faster loading of files
- Better button placement in sidebars
- Got rid of a crash on startup in fedora (#1862)
- Clear wxMaxima's input buffer on starting a new maxima process (#1856)
- A nicer ChangeLog dialogue
- Corrected for swapped row and columns in wizard enter matrix
- Fixed a few bugs in the XML saving code (#1867)
- Zooming did cause recalculation only for the 1st cell (#1870)
- Many config changes now have immediately effect on the worksheet
- Added the unicode-enhanced ASCII art from maxima to the menus
- Steamlined the cell size calculation stuff
- Completely overhauled the printing functionality
- Moved more of the help file indexing to the background (#1856)
- Better event handling in the unicode sidebars (#1875, #1863)
- Reading out the values of maxima variables for the GUI was broken
- Many checkmarks in menus had the wrong value
- Maxima's demos are now available in the menu and context menu
- Default the filter search boxes to text search, not regex
- Rescaling affected size calculations for code only with a delay
- Mac Os: way higher stability if multiple windows are open
- The context menu in the "greek letters" sidebar now works (#1878)
- Resolved an assert if the internal help browser was disabled,
  but requested (#1881)
- wxMaxima now preserves history entries between sessions
- Better LibreOffice compatibility with the MathML output
- Better HTML output
- Fix crash when exporting a worksheet with animations to TeX
- Resolved a crash on closing a window (#1889)

# 23.12.0

- Input text selection was cleared when right-clicking
  on it (#1845)
- Pressing both mouse buttons simultaneously caused an
  assert (#1844)
- Corrected the cursor position after unsuccessful autocompletes
- Corrected the handling of question prompts from maxima (#1827)
- Bug corrections in the search functionality
- RegEx search works again
- Clicking on the notification now is more likely to focus the worksheet
- Corrected the cell folding logic (#1853)
- Folded cells are no more evaluated (#1853)
- Now we try to generate a backtrace on crashes (#1802)
- Corrected the position of integral limits
- Nicer product, sum and integral signs
- Hidden cells weren't restored from wxm files (#1855)
- diff() no longer causes spurious multiplication dots (#1825)

# 23.11.0

- Correctly draw the bracket of the cell under the cursor (#1811)
- Maths display was corrupted if the window was temporarily not wide
  enough to display it in 2D (#1812)
- Added many range checks to the code
- Correct label scaling after changing the zoom factor (#1815)
- Repaired "copy as bitmap" (#1820)
- Repaired EMF and SVG output (#1838)
- Focus the search text on activating the search box (#1821)
- Correctly support dropping multiple files on the worksheet
- If the worksheet isn't empty dropping a file on the worksheet
  no more closes the currently open file
- Try harder to kill maxima on closing it (#1824)
- Menu items for displaying the internal representation
- Better display of diff(), if multiplication dots are enabled (#1825)
- Tried to resolve a few asserts (#1831)
- Resolved many warnings from several static analysis tools
- Fine-tuning of the "undo" function

# 23.10.0

- A big rewrite to make the static analysis tools happy
- Many stability improvements
- Maxima's help commands work again out-of-the-box.
- Corrected the worksheet size calculation
- Better support for loading .wxmx files from weird paths
- Finally resolved the "Right-click resets zoom" problem (#1810)
- A speed up
- Many right-click menu fixes (#1810)
- Display/Hide label fixes
- Many help browser improvements (#1802)
- The worksheet size no more is underestimated (#1802)
- Cell creation fixes
- Copy-and-paste improvements (#1809)
- Better error messages for bitmaps
- Many additional bug fixes

# 23.08.0

- Better print scaling
- More consistent page size handling for printing
- Many performance and stability fixes from coverity-scan
- Resolved many warnings from cppcheck
- A RegEx search

# 23.07.0

- Printing: Made the page margins configurable (#1787)
- Printing: We no more print page headers (#1791)
- Printing: Printing no more omits labels (#1507)
- Printing: A better pagebreak algorithm
- Printing: No more ghost lines around text cells
- Less ugly integral signs
- Many stability fixes
- More consistent worksheet scaling and sizes (#1780)
- Correctly save the color settings (#1789)
- Correctly check the numeric and other menu items
- The cursor no more disappears (#1788)
- Updated italian translation

# 23.05.1

- Updated the Russian and Italian translation.
- Process the command line option `--maxima=<str>`.
- Resolved several possibilities to crash the config dialogue
  (#1774, #1766)
- Correctly calculate the worksheet size in the background (#1766)
- Correctly restore parenthesis on load (#1779)
- Always revise the decision what to display as 2D equation on
  window width changes
- 2D display of integrals had zero size (#1780)

# 23.05.0

- Got rid of some compiler and cppcheck warnings
- Big performance improvements
- A "maxima versus typical programming languages" tutorial.
- Table of contents: Jump to the chapter the cursor is in.
- Resolved another crash in the config dialogue
- Updated the unicode character list
- Resolved more potential event ID clashes
- Use an external file as wxMathML.lisp is now selected using
  a command line option, not configured in the GUI.
  This is mostly needed for developers, no need to expose it
  to the end user.
- Better handling of paths to maxima when starting new
  wxMaxima processes
- new wxMaxima processes now get more of the command-line args
  of the parent process
- wxMaxima no more tries to install its own fonts.

# 23.04.1

- More config dialogue tweaks
- MacOs: No more create config icons that aren't needed
- Recent file list: Don't try to re-use no-more-used wxWidgets IDs
- Make sure that the help sidebar is shown when opening a help topic
- If maxima wants us to open a help browser and wxMaxima was compiled
  without one it now opens an external help browser
- Be aware that the MSW port recycles unused window IDs.
- The load() command now again works with symbols as package names.

# 23.04.0

- Made the GUI more responsive for functions with much output
- Handle errors in the XML from maxima more gracefully
- Rewrote parts of the lisp part of wxMaxima
- Resolved a few lisp warnings
- Resolved a few XML errors caused by not escaping special chars
- Automatic XML generation tests
- More MacOs fixes
- Correct display of operators
- A better style sample for the config dialogue
- Resolved several asserts
- Resolved a few small bugs in the autosave logic

# 23.03.0

- Make sure all bitmaps are valid on High-DPI MacOs (#1749)
- More styles consistency (#1753)
- Better configuration validation
- Depending on the wxWidgets version Unicode letters were
  interpreted inorrectly (#1754)
- The manual anchors cache now saves the file-per-chapter URLs, too.
- cmake -DWXM_DISABLE_WEBVIEW now allows to find wxWidgets, if
  wxWebView wasn't compiled.
- Completely rewrote the dockable-sidebars-stuff
- Many files are now build on demand, not at configure time

# 23.02.0

- Fix XML generation of wxmx documents (#1556)
- A faster font cache
- Faster communication between wxMaxima and Maxima
- Dropped the dependency on an \[internal\] ww898 library
- More consistent text style handling
- A try to improve locale management on the Mac platform
- A separate style for operators (#1002)
- A nicer ChangeLog

# 22.12.0

- A cleaner status bar with double-click actions
- Better display of labels
- box() now is displayed as a box, as the maxima manual states
- box(expr, "highlight") display expr in red, instead
- Resolved a few display glitches
- Resolved OS-dependant wrong actions on gui events
- A few system and compiler specific fixes
- Resolved a few compilation warnings
- Try harder to connect maxima if one communication port is blocked (#1717)
- Better display of help text in the console
- Faster saving of .wxmx files
- Better toolbar bitmap handling

# 22.11.1

- Repaired zooming the worksheet

# 22.11.0

- Resolved an ID collision (#1726)
- Faster restart of maxima (#1715)
- Make various dialogs window-modal (#1712)
- Proper handling of unicode in selection (#1726)
- An unicode conversion error (#1727)
- Repaired the "enter matrix" dialogue
- Jump to the correct anchor even if using online help
- Translation updates
- Many windows build improvements
- Resolved a crash on restarting maxima

# 22.09.0

- Support for wxWidgets 3.1.7
- The description field for wizards no more is a MouseOverToolTip
- Wizards now accept chars from the unicode buttons
- Wizards now can balance parenthesis
- Wizards for operatingsystem, basic programming and string operations
- More miscellaneous work on the wizards
- The watchlist was broken
- In MacOs the config dialogue crashed
- Better scalability of the config dialogue
- Folded multiline code cells are now sent to Maxima correctly (#1674)
- The output of the "?" command contained spurious "\<" (#1688)
- ?, ?? and describe() now use a browser window, by default
  (an up-to-date Maxima is required for that feature)
- Search harder for the Maxima manual
- Search harder for Maxima manual entries
- Now we find Maxima manual entries that have no explicit anchor
- On Linux, MacOs and, if wxWidgets was compiled with edge support
  the help browser can be obened in a dockable window
- wxMaxima can now compiled, even if wxWidgets was configured with
  the option "--enable-privatefonts=no".
  Use the option -DWXM_INCLUDE_FONTS=NO when compiling wxMaxima.
- Names that end in an underscore are now printed correctly (#1706)
- Made the tests work on more platforms (#1709)
- Resolved some asserts (#1574)
- Working MathJaX (#1702)
- A primitive integrated ChangeLog viewer
- Better documentation (#1693)
- Better unicode handling (#1691)
- Many additional bugfixes

# 22.05.0:

- Updated the Ukrainian translation
- Added `guess_exact_value` to the numeric menu.
- Added lapack to the matrix menu
- Added linpack to the numeric menu
- Added a "declare facts" right-click menu entry to variables
- We no more reserve space for hidden input
- A better logexpand section in the numeric menu
- Many wizards have a more modern look and feel, now
- The modern-style wizards are now dockable by default
- Undo and redo buttons for the toolbar
- A "construct fraction" wizard (#1664)
- Printing multiple-page documents now should work again on Linux (#1671)
- The selection should now no more overwrite test (#1665)
- Hidden code cells now are correctly sent to maxime (#1674)
- MacOs: The toolbar icons work now on retina screens (#1657)
- MacOs: The config dialogue works again (#1662)
- Many additional MacOs fixes
- The Cygwin build works again
- Support for wxWidgets 3.1.6

# 22.04.0:

- A Russian translation update from Olesya Gerasimenko
- Repaired drag-and-drop on MacOs (#1624)
- Resolved a bug in parenthesis matching (#1649)
- Faster startup logic

# 22.03.0:

- Add an compile option "WXM_INCLUDE_FONTS", which allows to
  specify, if additional fonts should be included.
  Current default: YES; use -DWXM_INCLUDE_FONTS=NO when calling
  CMake to disable that.
  Including fonts caused some issues on MacOS. (#1580)
- Rename command line option --logtostdout to --logtostderr.
  Because the option does print the log messages to STDERR, not STDOUT.
- A better heuristics for finding out what to style as 1D maths
- An updated french translation from Frédéric Chapoton
- Consistent image resolutions
- No more crashes on exporting multiple animations at once (#1616)
- Drag-and-Drop in the table of contents
- Table of contents: Convert sections to subsections and similar (#1629)
- Parenthesis and quote matching now uses the Maxima parser.
  This means it now both knows the details of the Maxima language
  and is much faster than before.
- A way of limiting the toc depth shown in the table of contents
- Now the problems after a kill(all) should be finally resolved
- Better support for the debugger (#1625)
- Machine-Float NaNs no more causes XML errors
- Labels with hexadecimal numbers no more cause crashes (#1633)
- wxMaxima no more skips chars in subscripted variables (#1632)
- Merging cells per keyboard shortcut works again (#1626)
- Symbols buttons whose symbols the GUI font lacks are now hidden

# 21.11.0:

- Allow seeing all files in the file save dialog. (#1557)
- Fix an error when using Alt up arrow (show previous command) (#1566)
- Rewrote a config dialogue
- Improvements in the manual
- Update Spanish translation of manual
- Update German, Russian, Hungarian and Ukrainian translation
- Fix a warning, which occurred, when starting wxMaxima the first time
- ww898 unnecessarily limited the list of supported platforms
- wxMaxima's properties to Maxima symbols can now no more be killed
- Allow single GroupCells to be converted to LaTeX
- Enable reloading and changing images inserted via "Cell" -> "Insert Image..." (#1597)
- Correctly set the document saved state when the size of an image is changed
- Use the AUTHORS file for the Credits page in the "About" dialogue
- Handle power events (#1607)
- Fix ugly buttons in the sidebars with recent wxWidgets

# 21.05.2:

- The integral signs disappeared or were misplaced on some MS Windows computers

# 21.05.1:

- Resolved a segfault on printing that could be triggered on some computers

# 21.05.0:

- Long numbers now can be broken into lines
- On Export long numbers sometimes got lost
- The height of folded cells now is calculated correctly, again (bug #1532)
- Printing now can insert pagebreaks within GroupCells (bug #970, #1528,
  #1241, #181, #573,#1082)
- A Russian translation update by OlesyaGerasimenko
- A Ukrainian translation update by Yuri Chornoivan
- Changed the font for the PDF manuals to free Google Noto fonts.
  Now all PDF manuals can be created without missing characters
  (before cyrillic, chinese and greek characters were missing).
- Solved a crash when printing.

# 21.04.0

- Fix visualization after "Evaluate all cells (Ctrl+Shift+R)" (bug #1512).
- Fix context sensitive help with F1 (bug #1508).
- Add an option for not showing matching parenthesis (bug #1509).
- Changed the weather icons in the toolbar to more meaningful ones (bug #1514).
- Many bugfixes with respect to correctly breaking lines (bugs #1528, #1471, #1512).
- Fix a bug in copy-paste of saved/loaded results (bug #1518).
- Fix a crash when pressing Ctrl-X while a math cell is selected (bug #1519).
- CMake 3.10 is now required for building wxMaxima.
- C++ 14 is required for building wxMaxima. Now CMake knows about that fact.
- Many external build scripts are now replaced by C++ and CMake commands.
- A menu entry for when to invoke the debugger.

# 21.02.0

- A Spanish translation update by cyphra
- Replaced openMP by c++11's built-in thread handling. This should improve
  stability at the cost of making loading files with lots of images slower.
- Language selection now works on Windows.
- Resolved a crash when deleting regions.
- The --ini switch should work again correctly.
- Fix an issue, where demos didn't re-center screen anymore, when screen
  is full and print was incomplete.
- Made the time between autosaves configurable.
- Fixed an issue with reproducible builds.

# 21.01.0

- Chinese translation updates by 刘荣.
- A Russian translation update by OlesyaGerasimenko
- Many small bugfixes including a crash on loading files with images.

# Changes in older wxMaxima versions you can find here

<https://github.com/wxMaxima-developers/wxmaxima/blob/Version-21.02.0/NEWS.md>
