April 18, 2026
Supports Python 3.14. Python 3.10 support has been dropped. While Python 3.10 may still work, it is not supported.
More YAML/JSON tables added. mathics-core now imports values via mathics.characters. Previously it
created JSON files on its own.
- PR #173 Python 3.14 supported. Python 3.10 support has been dropped. (It may still work, but is not supported.)
- PR #158 Name Pattern token introduced to handle
?and??operands. - PR #156 Token names align more closely with
CodeParser`Tokenize. - PR #149 Add YAML/JSON table for box grouping characters
- PR #147 Disambiguate Unicode for [Rule] and [DirectedEdge].
- PR #145 Add Unicode to ASCII conversion table to named characters
Corrections to YAML table entries, e.g. "latex" field additional/corrections in named characters.
Numerous spelling corrections were performed over the code.
The name Mathics3 replaces Mathics. Mathics was the monolithic
Python 2-ish code. Mathics3 has rewritten a number of major
subcomponents, and the scanner and the character and operators tables in YAML are now in this repository.
Supports Python 3.13. Python 3.8 and 3.9 support has been dropped.
Note: There are incompatible changes. Use with Mathics-core 9.0.0 or greater.
Support for saving token position information was started. This is in
module mathics_scanner.location. Additional location information is saved when
mathics_scanner.location.TRACK_LOCATIONS is set to True.
Scanning was revised to handle more kinds of escape sequences and to
be sensitive to their placement inside and outside a string. This is in module mathics_scanner.escape_sequences.
Tokenization support for Box Input operator \* was added.
Small YML changes were made to reflect a better understanding of boxing
operators. In particular, \* is not a (prefix) operator.
More AMSLaTeX translations added for named characters.
Handle escape sequences in string literals.
Mathics3 scanner exceptions of class TranslateError are incompatible with previous versions, and now store error parameters, "name", "tag", and "args".
- #125 Hex escape sequence in string literal doesn't work.
- #136 Is YAML file valid?
Jan 26, 2025
Re-release to include operators.yml into the tarball/wheel.
A new operator table, operators.yml was added to contain
operator information. This information is based on information from Robert Jacobson.
See https://github.com/WLTools/LanguageSpec/blob/master/docs/Specification/Syntax/Operator%20Table.csv
From operators.yml, operators.json is created, and
This holds operator information that the Mathics3 Kernel uses.
Things like operator precedence, operator arity, associativity, and AMSLaTeX equivalent notation is some of the information we store.
All of the 100 or so Unicode operators without an initial built-in meaning, .e.g., [Cup], [Cap], ... have been added.
The tokenizer and parser in the Mathics3 Kernel use more YAML table information via JSON extraction. However, more will be done in the future.
A new utility program, mathics3-tokens can be used to show
tokenization of an input stream, with the -C or --CodeTokenize
option, the program shows the tokens more closely in the form that the WMA CodeTokens package uses. Over time, we expect that our tokenizer will
be more compliant with CodeTokens.
named-characters.yml was gone over, mostly to fill out
information, such as URL links to Unicode pages.
Operator precedence values have been gone over.
Aug 9, 2024
Python 3.8 is now the minimum Python supported. Python 3.12 is supported. Various dependencies elsewhere force 3.8 or newer.
- Packaging was redone to be able to support Python 3.12.
- Files now follow current Python black formatting and
isortimport ordering - Some Python code linting
- Add escape-code sequence for 32-bit Unicode. Issue #48.
- Correct
InfixandTildecharacter symbols - Support double backslash (
\\) as a single backslash character (\). - Correct Unicode for ScriptN and ScriptCapitalN
- Correct several is-letter-like entries.
- Accept u21A6 as a symbol for Function.
- Change the precedence of
|->``(``Functionsymbol) to 800 so it isn't interpreted as a|followed by-> - ASCII operator tables can now be generated
- Add DifferentialD and Integrate even though we don't have a full set of prefix operators.
- More precedence values added to operators
- Python 3.11 operation verified
- Start adding AMSLateX names.
- Add
ApplyTo, andFactorial2. - Adjust
Tilde, andFactorial. - Regularize Unicode equivalents.
- Add named-characters.yml to distribution packages; Issue #32.
- Use SPDX identifier in license; PR #31.
Redo for packaging problems.
Many thanks to Victor the packager for AUR for pointing this out.
- Add tables for operator precedence.
- Start to add AMSLaTeX symbols. (A future release will finish this)
- Revise
README.rst. - Some small corrections:
Implies - Make
ujsonoptional
Tag unicode operators that have no definition and add the ability to dump them. This is useful for mathics-pygments.
Release 1.1.1 introduced a small bad interaction with Mathics3 and the
unicode infix form of Function[].
In our master table, when there is a unicode operator like there is for "Function", (uF4A1), the operator name to be YAML key name.
There is an alternate ASCII Function operator &. And for that, we
used the name Function, which precluded using it for the Unicode, where
it is mandatory. For ASCII operators, it isn't necessary, but still
nice to do when there is no conflict.
- Finish adding operator names.
- Generate
IndentingNewline(\n) properly in GNU Readline inputrc tables. - Adjust expectation on test since there can be duplicate function operators (for
ApplyandFunction).
- Add operator-name and ASCII fields. See named-characters.yml for a description of these
- Add some whitespace characters like IndentingNewLine and RawReadLine
- Improve testing
- Fix some small tagging based on testing
- Add unicode-to-operator generation
Note: not all operators have been tagged, so expect another release soon when that's done.
- The scanner split off from Mathics3.
- Tables added for converting between WL names and Unicode, ASCII, and character properties. See
implementation.rstfor details. - Code and docstring gone over.
See git in github repository https://github.com/Mathics/Mathics before Jan 18, 2021, for older history information.