Skip to content

Commit 74bb87c

Browse files
committed
Merge remote-tracking branch 'origin/master' into makeboxes_refactor_2025_step_0p5
2 parents 9acbd0a + 367e5f0 commit 74bb87c

File tree

179 files changed

+4059
-3626
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

179 files changed

+4059
-3626
lines changed

.github/workflows/consistency-checks.yml

+6-5
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@ jobs:
2222
run: |
2323
sudo apt update -qq && sudo apt install llvm-dev remake
2424
python -m pip install --upgrade pip
25-
# We can comment out after next Mathics-Scanner release
26-
python -m pip install -e git+https://github.com/Mathics3/mathics-scanner#egg=Mathics-Scanner[full]
27-
git clone https://github.com/Mathics3/mathics-scanner.git
28-
cd mathics-scanner/
2925
pip install -e .
30-
cd ..
26+
# We can comment out after next Mathics-Scanner release
27+
# python -m pip install -e git+https://github.com/Mathics3/mathics-scanner#egg=Mathics-Scanner[full]
28+
# git clone https://github.com/Mathics3/mathics-scanner.git
29+
# cd mathics-scanner/
30+
# pip install -e .
31+
# cd ..
3132
3233
- name: Install Mathics with minimum dependencies
3334
run: |

.github/workflows/mypy.yml

+7-6
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,21 @@ jobs:
2222
run: |
2323
sudo apt update -qq && sudo apt install llvm-dev remake
2424
python -m pip install --upgrade pip
25-
python -m pip install -e git+https://github.com/Mathics3/mathics-scanner#egg=Mathics-Scanner[full]
26-
# We can comment out after next Mathics-Scanner release
27-
git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
28-
# git clone --single-branch --branch operator-refactor-part1.5 https://github.com/Mathics3/mathics-scanner.git
29-
cd mathics-scanner/
3025
pip install -e .
31-
cd ..
26+
# python -m pip install -e git+https://github.com/Mathics3/mathics-scanner#egg=Mathics-Scanner[full]
27+
# We can comment out after next Mathics-Scanner release
28+
# git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
29+
# cd mathics-scanner/
30+
# pip install -e .
31+
# cd ..
3232
3333
- name: Install Mathics with minimum dependencies
3434
run: |
3535
make develop
3636
- name: Run mypy
3737
run: |
3838
pip install mypy==1.13 sympy==1.12
39+
git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
3940
touch ./mathics-scanner/mathics_scanner/py.typed
4041
pip install ./mathics-scanner/
4142
mypy --install-types --non-interactive mathics

.github/workflows/pyodide.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ jobs:
5555
pip install "setuptools>=70.0.0" PyYAML click packaging pytest
5656
5757
# We can comment out after next Mathics-Scanner release
58-
git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
58+
# git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
5959
# git clone --single-branch --branch operator-refactor-part1.5 https://github.com/Mathics3/mathics-scanner.git
60-
cd mathics-scanner/
61-
pip install --no-build-isolation -e .
62-
cd ..
60+
# cd mathics-scanner/
61+
# pip install --no-build-isolation -e .
62+
# cd ..
6363
64-
make mathics/data/op-tables.json mathics/data/operator-tables.json
6564
pip install --no-build-isolation -e .
65+
make mathics/data/op-tables.json mathics/data/operator-tables.json
6666
make -j3 check

.github/workflows/ubuntu-cython.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ jobs:
3030
pip install -e .
3131
cd ..
3232
# We can comment out after next Mathics-Scanner release
33-
python -m pip install -e git+https://github.com/Mathics3/mathics-scanner#egg=Mathics-Scanner[full]
34-
git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
33+
# python -m pip install -e git+https://github.com/Mathics3/mathics-scanner#egg=Mathics-Scanner[full]
34+
# git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
3535
# git clone --single-branch --branch operator-refactor-part1.5 https://github.com/Mathics3/mathics-scanner.git
36-
cd mathics-scanner/
36+
# cd mathics-scanner/
3737
pip install -e .
3838
cd ..
3939

.github/workflows/ubuntu.yml

+6-6
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ jobs:
3131
cd ..
3232
# We can comment out after next Mathics-Scanner release
3333
# python -m pip install -e git+https://github.com/Mathics3/mathics-scanner#egg=Mathics-Scanner[full]
34-
git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
34+
# git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
3535
# git clone --single-branch --branch operator-refactor-part1.5 https://github.com/Mathics3/mathics-scanner.git
36-
cd mathics-scanner/
37-
pip install -e .
38-
python -m mathics_scanner.generate.build_tables
39-
cd ..
36+
# cd mathics-scanner/
37+
# pip install -e .
38+
# python -m mathics_scanner.generate.build_tables
39+
# cd ..
4040
41-
# python -m pip install Mathics-Scanner[full]
41+
python -m pip install Mathics-Scanner[full]
4242
remake -x develop-full
4343
- name: Test Mathics
4444
run: |

.github/workflows/windows.yml

+6-5
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,14 @@ jobs:
3939
pip install -e .
4040
cd ..
4141
# We can comment out after next Mathics-Scanner release
42-
python -m pip install -e git+https://github.com/Mathics3/mathics-scanner#egg=Mathics-Scanner[full]
43-
git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
42+
# python -m pip install -e git+https://github.com/Mathics3/mathics-scanner#egg=Mathics-Scanner[full]
43+
# git clone --depth 1 https://github.com/Mathics3/mathics-scanner.git
4444
# git clone --single-branch --branch operator-refactor-part1.5 https://github.com/Mathics3/mathics-scanner.git
45-
cd mathics-scanner
45+
# cd mathics-scanner
46+
# pip install -e .
47+
# python -m mathics_scanner.generate.build_tables
48+
# cd ..
4649
pip install -e .
47-
python -m mathics_scanner.generate.build_tables
48-
cd ..
4950
5051
# python -m pip install Mathics-Scanner[full]
5152
make develop-full

.pre-commit-config.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ repos:
77
- id: check-merge-conflict
88
- id: debug-statements
99
stages: [pre-commit]
10+
exclude: ChangeLog-spell-corrected.diff|mathics/builtin/system.py
1011
- id: end-of-file-fixer
1112
stages: [pre-commit]
13+
exclude: ChangeLog-spell-corrected.diff
1214
- repo: https://github.com/pycqa/isort
1315
rev: 5.13.2
1416
hooks:
@@ -19,4 +21,5 @@ repos:
1921
hooks:
2022
- id: black
2123
language_version: python3
24+
exclude: 'mathics/version.py'
2225
stages: [pre-commit]

CHANGES.rst

+92-17
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,62 @@
11
CHANGES
22
=======
33

4+
5+
8.0.1
6+
-----
7+
8+
Feb 8, 2025
9+
10+
Some work was made to the Mathics3 Kernel to work in Python 3.13.
11+
The maximum version of numpy was increased to < 2.3 so as to allow marimo to work.
12+
13+
14+
Bugs
15+
----
16+
17+
Correct for mismatch between ListExpression and tuple in ``DispatchAtom``.
18+
This is needed for PacletManager code to work better.
19+
20+
21+
Compatibility
22+
-------------
23+
24+
* When the result of an evaluation is ``Symbol`Null``, Mathics CLI
25+
now does not show an ``Out[...]=`` line, following the behavior of
26+
the WMA CLI.
27+
* Aymptote rendering of platonic solids added.
28+
29+
30+
Internals
31+
---------
32+
33+
Document tagging code handles TeX math mode more completely. Image tags in PDF properly.
34+
35+
Documentation
36+
-------------
37+
38+
* Documentation has been gone over so that expressions are tagged in TeX. As a result the user guide and reference manual render much nicer in the PDF as well as in Django.
39+
* More links have been added. References to The Digital Library of Mathematical Functions https://dlmf.nist.gov/ have been added where appropriate.
40+
* Add mention of MathicsLive
41+
* Platonic solid render properly in PDF
42+
43+
44+
8.0.0
45+
-----
46+
47+
Jan 26, 2025
48+
449
This release is to get out some of the major changes that have gone on
550
already in advance of redoing Boxing and Formatting.
651

52+
Code now supports the emscripten platform, so this code can be installed
53+
in pyodide using ``micropip.install``.
54+
755
Operators are now controlled from a new operators YAML table from the
856
``mathics-scanner`` repository. A pass was made over the Mathics parser
957
to handle box operators more properly. More work is needed here.
1058

11-
We started adding more debugging capabilites:
59+
We started adding more debugging capabilities:
1260

1361
* ``Breakpoint[]``
1462
* ``Stack[]``, and
@@ -20,33 +68,41 @@ And in the ``Mathics3-Trepan`` repository:
2068
* ``Debugger[]``, and
2169
* ``TraceActivate[]``
2270

23-
This code is very much alpha quality, but it greatly improves the
24-
ability to debug problems in loading existing packages written from
25-
Mathematica. So packages ``BoolEval`` and ``CleanSlate`` were added to
26-
the repostiory.
71+
Option ``--post-mortem`` was added which goes into the `trepan3k debugger <https https://pypi.org/project/trepan3k/>`_ on an unrecoverable error. This option is available on other front ends.
72+
73+
This debugging code is very much alpha quality, but it greatly
74+
improves the ability to debug problems in loading existing packages
75+
written from Mathematica. So packages ``BoolEval`` and ``CleanSlate``
76+
were added to the repository.
2777

2878
Also as a result of the improved ability to debug Mathics3, we now
2979
provide a version of Rubi 4.17 using git submodules . To use this you
3080
will need a patched version of ``stopit``. Aravindh Krishnamoorthy
31-
led the initial port of Rubi.
81+
led the initial port of `Rubi <https://github.com/Mathics3/Mathics3-Rubi>`_.
3282

3383
David A. Roberts worked on ensuring Mathics3 runs on pyodide and
3484
contributed a number of new Built-in Functions that are found in `The
35-
On-Line Encyclopedia of Integer Sequences (OEIS) <https://oeis.org/>`_
85+
On-Line Encyclopedia of Integer Sequences (OEIS) <https://oeis.org/>`_.
3686

3787

3888
New Builtins
3989
++++++++++++
4090

4191
* ``Between``
42-
* ``Breakpoint`` - forces a Python ``breakpoint()``
92+
* ``Breakpoint`` - (not WMA; forces a Python ``breakpoint()``
4393
* ``CheckAbort``
4494
* ``FileNameDrop``
4595
* ``FormatValues``
46-
* ``SetEnvironment``
96+
* ``ListStepPlot``
97+
* ``MapApply``
98+
* ``PythonCProfileEvaluation`` (not WMA; interface to Python cProfile)
99+
* ``RealValuedNumberQ``
47100
* ``SequenceForm``
101+
* ``SetEnvironment``
48102
* ``Stack``
103+
* ``SyntaxQ``
49104
* ``Trace``
105+
* ``UnitStep``
50106

51107
By `@davidar <https://github.com/davidar>`_:
52108

@@ -74,23 +130,38 @@ By `@davidar <https://github.com/davidar>`_:
74130
* ``SquaresR``
75131
* ``Subfactorial``
76132

133+
Documentation
134+
+++++++++++++
135+
136+
* Unicode operators appear in Django documentation. In the PDF, AMSLaTeX is used.
137+
* Summaries of builtin functions have been improved and regularized
138+
77139
``mathics`` command line
78140
++++++++++++++++++++++++
79141

80-
* ``--post-mortem`` option added which will go into the `trepan3k debugger <https https://pypi.org/project/trepan3k/>`_ on an unrecoverable error.
142+
Option ``--post-mortem`` was added which goes into the `trepan3k
143+
debugger <https https://pypi.org/project/trepan3k/>`_ on an
144+
unrecoverable error. This option is available on other front-ends..
81145

82146
WMA Compatibility
83147
-----------------
84148

85149
* ``GetEnvironment`` expanded to handle ``[]`` and ``{var1, var2,...}`` forms
86150
* The system ``packages`` directory has been renamed ``Packages`` to conformance with WMA.
87151
* ``$Path`` now includes a ``Packages`` directory under ``$HOME``.
152+
* All of the 100 or so Unicode operators without a pre-defined meaning are now supported
88153

89154
Internals
90155
---------
91156

92-
* Operator information has been gone over and is picked up from JSON
93-
tables produced from the Mathics Scanner project.
157+
* More of the on-OO evaluation code that forms what might be an
158+
instruction evaluator has been moved out of the module
159+
``mathics.builtins`` put in ``mathics.eval``. This includes code for
160+
plotting, and making boxes.
161+
* nested ``TimeConstraint[]`` works via external Python module ``stopit``.
162+
* ``Pause[]`` is more interruptible
163+
* More code has been linted, more type errors removed, and docstrings added/improved
164+
94165

95166
Performance
96167
-----------
@@ -108,31 +179,33 @@ API incompatibility
108179
* Patterns in ``eval_`` and ``format_`` methods of builtin classes
109180
parses patterns in docstrings of the form
110181
``Symbol: Expr`` as ``Pattern[Symbol, Expr]``.
111-
To specify associated format in ``format_`` methods the
182+
To specify the associated format in ``format_`` methods the
112183
docstring, the list of format must be wrapped in parenthesis, like
113184
``(InputForm,): Definitions[...]`` instead of just ``InputForm: Definitions[...]``.
114-
185+
* Character and Operator information that has been gone over in the Mathics Scanner project. The information in JSON tables, the keys, and values have thus change. Here, we read this information in and use that instead of previously hard-coded values.
115186

116187

117188
Bugs
118189
----
119190

120191
* Fix infinite recursion when formatting ``Sequence[...]``
192+
* Parsing ``\(`` ... ``\)`` improved
193+
* Fixed #1105, #1106, #1107, #1172 #1173, #1195, #1205, #1221, #1223, and #1228 among others
121194

122195
Mathics3 Packages
123196
+++++++++++++++++
124197

125198
* Added ``BoolEval``
126199
* Added ``CleanSlate``
127-
* ``Combinatorica`` moved to a separate repository and v.9 renamed to 0.9.1.
128-
More code v0.9.1 works. v2.0 renamed v2.0.1 and some code now works.
200+
* ``Combinatorica`` moved to a separate repository and v.9 was renamed to 0.9.1.
201+
More code v0.9.1 works. v2.0 was renamed v2.0.1 and some code now works.
129202
* ``Rubi`` version 4.17 (work in progress; algebraic integrations work)
130203

131204

132205
Mathics3 Modules
133206
++++++++++++++++
134207

135-
* Added preliminary Mathics3 debugger ("pymathics.trepan")
208+
* Added preliminary `Mathics3 debugger `Mathics3-Trepan <https://github.com/Mathics3/mathics3-trepan>`_.
136209

137210
Python Package Updates
138211
+++++++++++++++++++++++
@@ -144,6 +217,8 @@ Python Package Updates
144217
7.0.0
145218
-----
146219

220+
Aug 9, 2024
221+
147222
Some work was done here in support of planned future improvements like
148223
lazy loading of builtin functions. A bit of effort was also spent to
149224
modernize Python code and style, add more type annotations, remove

0 commit comments

Comments
 (0)