Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions .github/workflows/macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,19 @@ jobs:
python3 -m pip install --upgrade pip
python3 -m pip install setuptools
# We can comment out after next Mathics3-Scanner release
git clone --depth 1 https://github.com/Mathics3/Mathics3-scanner.git
cd Mathics3-scanner/
pip install --no-build-isolation -e .
bash -x admin-tools/make-JSON-tables.sh
cd ..
# git clone --depth 1 https://github.com/Mathics3/Mathics3-scanner.git
# cd Mathics3-scanner/
# pip install --no-build-isolation -e .
# bash -x admin-tools/make-JSON-tables.sh
# cd ..
# We can comment out after next Mathics3-pygments release
python -m pip install -e git+https://github.com/Mathics3/Mathics3-pygments#egg=Mathics3-pygments
# python -m pip install -e git+https://github.com/Mathics3/Mathics3-pygments#egg=Mathics3-pygments
# We can comment out after next mathics-core release
git clone --depth 1 https://github.com/Mathics3/mathics-core.git
cd mathics-core/
pip install --no-build-isolation -e .
bash -x admin-tools/make-JSON-tables.sh
cd ..
# git clone --depth 1 https://github.com/Mathics3/mathics-core.git
# cd mathics-core/
# pip install --no-build-isolation -e .
# bash -x admin-tools/make-JSON-tables.sh
# cd ..
- name: Install mathicsscript
run: |
make
Expand Down
24 changes: 12 additions & 12 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,20 @@ jobs:
python3 -m pip install --upgrade pip
python3 -m pip install setuptools
# We can comment out after next Mathics3-Scanner release
git clone --depth 1 https://github.com/Mathics3/Mathics3-scanner.git
cd Mathics3-scanner/
pip install --no-build-isolation -e .
bash -x admin-tools/make-JSON-tables.sh
cd ..
# git clone --depth 1 https://github.com/Mathics3/Mathics3-scanner.git
# cd Mathics3-scanner/
# pip install --no-build-isolation -e .
# bash -x admin-tools/make-JSON-tables.sh
# cd ..
# We can comment out after next Mathics3-pygments release
python -m pip install -e git+https://github.com/Mathics3/Mathics3-pygments#egg=Mathics3-pygments
# python -m pip install -e git+https://github.com/Mathics3/Mathics3-pygments#egg=Mathics3-pygments
# We can comment out after next mathics-core release
cd ..
git clone --depth 1 https://github.com/Mathics3/mathics-core.git
cd mathics-core/
pip install --no-build-isolation -e .
bash -x admin-tools/make-JSON-tables.sh
cd ..
# cd ..
# git clone --depth 1 https://github.com/Mathics3/mathics-core.git
# cd mathics-core/
# pip install --no-build-isolation -e .
# bash -x admin-tools/make-JSON-tables.sh
# cd ..
- name: Install mathicsscript
run: |
make
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,19 @@ jobs:
python3 -m pip install wheel setuptools
set LLVM_DIR="C:\Program Files\LLVM"
# We can comment out after next Mathics-Scanner release
git clone --depth 1 https://github.com/Mathics3/Mathics3-scanner.git
cd Mathics3-scanner/
pip install --no-build-isolation -e .
bash -x admin-tools/make-JSON-tables.sh
cd ..
# git clone --depth 1 https://github.com/Mathics3/Mathics3-scanner.git
# cd Mathics3-scanner/
# pip install --no-build-isolation -e .
# bash -x admin-tools/make-JSON-tables.sh
# cd ..
# We can comment out after next Mathics3-pygments release
python -m pip install -e git+https://github.com/Mathics3/Mathics3-pygments#egg=Mathics3-pygments
# python -m pip install -e git+https://github.com/Mathics3/Mathics3-pygments#egg=Mathics3-pygments
# We can comment out after next mathics-core release
git clone --depth 1 https://github.com/Mathics3/mathics-core.git
cd mathics-core/
pip install --no-build-isolation -e .
bash -x admin-tools/make-JSON-tables.sh
cd ..
# git clone --depth 1 https://github.com/Mathics3/mathics-core.git
# cd mathics-core/
# pip install --no-build-isolation -e .
# bash -x admin-tools/make-JSON-tables.sh
# cd ..
- name: Install mathicsscript
run: |
make
Expand Down
6 changes: 3 additions & 3 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ Aug 10, 2025
* Handle images via PNG and matplotlib
* Packaging: include matplotlib in full install
* Customize Asymptote configuration and add a psviewer that removes eps trash
* Bump minimum Mathics core version to 4.0.0
* Bump minimum Mathics3 core version to 4.0.0
* Bug fix: Check if ``self`` has ``session`` attribute in ``asy.__del__``

3.3.1
Expand Down Expand Up @@ -200,13 +200,13 @@ the GNU Readline inputrc files from getting created properly.
-----

* All escape sequence for unicode and letter names added for GNU Readline
* Use Mathics Scanner package
* Use Mathics3 Scanner package
* Support XDG-style configuration files

1.1.2
-----

* Fix ```Settings`$ShowFullForm``` now that we use Mathics supports Booleans better
* Fix ```Settings`$ShowFullForm``` now that we use Mathics3 supports Booleans better
* Show mathicsscript version on startup
* Add ```Settings`MathicsScriptVersion``
* Add all of the WL escape sequences
Expand Down
17 changes: 12 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ PYTHON ?= python3
PIP ?= pip3
RM ?= rm

.PHONY: all build check clean inputrc develop dist doc pytest sdist test rmChangeLog
.PHONY: all build \
ChangeLog-without-corrections \
check clean inputrc develop dist doc \
pytest sdist test \
rmChangeLog runner

#: Default target - same as "develop"
all: develop
Expand Down Expand Up @@ -52,15 +56,18 @@ clean:
@find . -name "*.pyc" -type f -delete
@rm mathicsscript/inputrc-no-unicode mathicsscript/inputrc-unicode || true

#: Create source tarball
sdist: check-rst
$(PYTHON) ./setup.py sdist

#: Remove ChangeLog
rmChangeLog:
$(RM) ChangeLog || true

#: Create source tarball
sdist: check-rst
$(PYTHON) ./setup.py sdist
#: Create ChangeLog from version control without corrections
ChangeLog-without-corrections:
git log --pretty --numstat --summary | $(GIT2CL) >ChangeLog

#: Create a ChangeLog from git via git log and git2cl
ChangeLog: rmChangeLog ChangeLog-without-corrections
git log --pretty --numstat --summary | $(GIT2CL) >$@
patch ChangeLog < ChangeLog-spell-corrected.diff
42 changes: 21 additions & 21 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ Features
- saving command history between sessions.
- variable completion, even for symbol names like ``\\[Sigma]``
- limited ESC keyboard input; for example *esc* ``p`` *esc* is π
* Syntax highlighting using `mathics-pygments <https://pypi.org/project/mathics-pygments/>`_ which includes dynamically created variables and functions.
* Syntax highlighting using `Mathics3-pygments <https://pypi.org/project/Mathics3-pygments/>`_ which includes dynamically created variables and functions.
* Automatic detection of light or dark `terminal background color <https://pypi.org/project/term-background/>`_.
* Optional Graphics rendering via `matplotlib <https://matplotlib.org/>`_ for 2D graphics, and `Asymptote <https://asymptote.sourceforge.io>`_ for 3D and 2D graphics.
* Entering and displaying Unicode symbols such as used for Pi or Rule arrows
* Provision for running in non-interactive batch mode which an be used inside POSIX shells
* Entering and displaying Unicode symbols, such as those used for Pi or Rule arrows
* Provision for running in non-interactive batch mode, which can be used inside POSIX shells

Installing
----------
Expand All @@ -30,7 +30,7 @@ To install with the full dependencies, run:

$ make install[full]

To install from git sources so that you run from the git source tree:
To install from git sources, so that you run from the git source tree:


::
Expand All @@ -41,19 +41,21 @@ To install from git sources so that you run from the git source tree:
Running
-------

Once install run using ``mathicsscript``:
Once installed, run using ``mathicsscript``:

::


$ mathicsscript
Mathicscript: 7.0.0, Mathics 7.0.0
on CPython 3.11.9 (main, May 6 2024, 12:58:03) [GCC 13.2.0]
Mathicscript: 10.0.0, Mathics3 10.0.0
on CPython 3.14.3 (main, Mar 30 2026, 06:42:16) [GCC 13.3.0]

Using:
SymPy 1.12.1, mpmath 1.3.0, numpy 1.26.4
cython 3.0.10, matplotlib 3.8.4,
Asymptote version 2.87
SymPy 1.13.3, mpmath 1.3.0, numpy 2.4.4
cython 3.2.4, matplotlib 3.10.8,
Asymptote version 2.95

Copyright (C) 2011-2024 The Mathics Team.
Copyright (C) 2011-2026 The Mathics3 Team.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions.
Expand All @@ -67,12 +69,10 @@ Once install run using ``mathicsscript``:
For batch use:
::

$ mathicsscript -c "N[Pi, 30]"
3.14159265358979323846264338328

To read from a file
$ mathicsscript -c "N[Pi]"
3.14159

In file ``/tmp/test.m``:
To read from a file, in file ``/tmp/test.m``:

::

Expand Down Expand Up @@ -126,17 +126,17 @@ doc under `8.29 three
Why not IPython via Jupyter?
----------------------------

There will always be a need for simple terminal-like
interaction. Although there is IPython support via Jupyter all of this
is pretty heavy-weight. To code to this protocol, a developer needs to
write a kernel, and use a wire protocol. This adds complexity not
There will always be a need for a simple terminal-like
interaction. Although there is IPython support via Jupyter, all of this
is pretty heavyweight. To code to this protocol, a developer needs to
write a kernel and use a wire protocol. This adds complexity not
only for the person developing this package, but also for the user who
needs to load the extra layers that aren't used. And when something
goes wrong, it is harder to track down problems.

At the other end of the spectrum, if the dependencies of this package
are too onerous and you want even simpler, lighter-weight terminal interaction *without*
any of the features mentioned above, use ``mathics`` which is distributed as part of
any of the features mentioned above, use ``mathics3`` which is distributed as part of
the core Mathic3 package.


Expand Down
2 changes: 1 addition & 1 deletion admin-tools/make-dist.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ if ! pyenv local $pyversion ; then
exit $?
fi
rm -fr build
python setup.py bdist_wheel
python -m build --wheel
python ./setup.py sdist
finish
2 changes: 1 addition & 1 deletion admin-tools/pyenv-versions
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ if [[ $0 == ${BASH_SOURCE[0]} ]] ; then
exit 1
fi

export PYVERSIONS='3.8 3.9 3.10 3.11'
export PYVERSIONS='3.11 3.12 3.13 3.14'
4 changes: 2 additions & 2 deletions mathicsscript/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,8 +246,8 @@ def fmt_fun(query: Any) -> Any:

# Should we test exit code for adding to history?
GNU_readline.add_history(source_code.rstrip())
# FIXME add this... when in Mathics core updated
# shell.definitions.increment_line(1)
# FIXME add this... when in Mathics3 core updated
shell.definitions.increment_line(1)

except KeyboardInterrupt:
shell.errmsg("\nKeyboardInterrupt")
Expand Down
2 changes: 1 addition & 1 deletion mathicsscript/autoload/settings.m
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@

Settings`MathicsScriptVersion::usage = "This string is the version of MathicsScript we are running."

System`$Notebooks::usage = "Set True if the Mathics is being used with a notebook-based front end."
System`$Notebooks::usage = "Set True if the Mathics3 is being used with a notebook-based front end."
System`$Notebooks = False

Settings`$GroupAutocomplete::usage = "This Boolean variable sets whether mathicsscript should automatically close braces."
Expand Down
Loading