Releases: Mathics3/Mathics3-scanner
Get ready for release 10.0.0 (#175)
10.0.0
April 18, 2026
Supports Python 3.14. Python 3.10 support has been dropped. While Python 3.10 may still work, but 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 #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 several major
subcomponents, and the scanner and the character and operators tables in YAML are now in this repository.
2.0.0
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.
Internals
Mathics3 scanner exceptions of class TranslateError are incompatible with previous versions, and now store error parameters, "name", "tag", and "args".
Bugs Fixed
1.4.1
1.4.0
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 are 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.
Merge pull request #66 from Mathics3/release-1.3.1
Python 3.8 is now the minimum Python supported. Python 3.12 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 isort import ordering
- Some Python code linting
Too late for Valentines Day
- 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 ScriptCaptialN
- Correct a number of is-letter-like entries.
- Accept \u21A6 as 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
1.2.4
This time, for sure!
Redo for packaging problems.
Many thanks to Victor the packager for AUR for pointing this out.