diff --git a/doc_data_html.pcl b/doc_data_html.pcl
new file mode 100644
index 00000000..4b249cfe
Binary files /dev/null and b/doc_data_html.pcl differ
diff --git a/docker/Dockerfile-dev b/docker/Dockerfile-dev
index e7a9f1dd..3cfdd31e 100644
--- a/docker/Dockerfile-dev
+++ b/docker/Dockerfile-dev
@@ -1,5 +1,5 @@
# -*- Dockerfile -*-
-FROM ubuntu:25.04
+FROM ubuntu:26.04
ENV MATHICS3_HOME=/home/ubuntu
ENV MATHICS3_MODULE_OPTION="--load-module pymathics.graph,pymathics.natlang,pymathics.trepan"
@@ -26,6 +26,7 @@ RUN apt-get install -y -qq \
asymptote \
cargo \
evince \
+ enchant-2 \
gfortran \
git \
gyp \
@@ -38,8 +39,8 @@ RUN apt-get install -y -qq \
libxcb-cursor-dev \
libxml2-dev \
libxslt1-dev \
- llvm-15 \
- llvm-15-dev \
+ llvm-18 \
+ llvm-18-dev \
lmodern texlive-latex-extra \
maria \
mesa-utils \
@@ -48,7 +49,7 @@ RUN apt-get install -y -qq \
pkg-config \
pyqt5-dev-tools \
python3-pip \
- python3.13-venv \
+ python3.14-venv \
remake \
rustc \
sqlite3 \
@@ -61,26 +62,24 @@ RUN apt-get install -y -qq \
# # defer deletion until close to the end
# # RUN rm -fr /tmp*_amd64.deb
-RUN /usr/bin/python3.13 -m venv /opt/python3.13
-ENV PATH=.:/opt/python3.13/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-ENV PYTHON=/opt/python3.13/bin/python3.13
-ENV PIP=/opt/python3.13/bin/pip
+RUN /usr/bin/python3.14 -m venv /opt/python3.14
+ENV PATH=.:/opt/python3.14/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ENV PYTHON=/opt/python3.14/bin/python3.14
+ENV PIP=/opt/python3.14/bin/pip
RUN $PYTHON -m pip install --upgrade pip
#########################
# Development libraries
#########################
-RUN $PIP install --local -e git+https://github.com/rocky/python-xdis.git#egg=xdis
+RUN $PYTHON -m pip install setuptools
RUN $PIP install --local --no-build-isolation -e git+https://github.com/rocky/python-filecache.git#egg=pyficache
RUN $PIP install --local -e git+https://github.com/rocky/python-uncompyle6.git#egg=uncompyle6
RUN $PIP install --local -e git+https://github.com/rocky/python-decompile3.git#egg=decompyle3
RUN $PIP install git+https://github.com/rocky/python-filecache#egg=pyficache
RUN $PIP install -e git+https://github.com/Trepan-Debuggers/python3-trepan#egg=trepan3k
-RUN $PIP install -e git+https://github.com/Trepan-Debuggers/python3-trepan#egg=trepan3k
RUN git clone --depth 1 https://github.com/Mathics3/Mathics3-scanner.git
RUN (cd Mathics3-scanner && $PIP install -e .[full] && bash -x ./admin-tools/make-JSON-tables.sh)
-RUN $PIP install git+https://github.com/rocky/python-xdis.git
RUN $PIP install git+https://github.com/Trepan-Debuggers/python3-trepan.git
# #################
@@ -92,14 +91,15 @@ RUN git clone --depth 1 https://github.com/Mathics3/mathics-core.git
# We need to add the second repository Rubi, explicitly
RUN (cd mathics-core && git submodule update --init --recursive && \
git submodule add https://github.com/Mathics3/Mathics3-Rubi.git mathics/Packages/Rubi)
-RUN (cd mathics-core && git submodule && $PIP install -e .[full])
+RUN (cd mathics-core && git submodule && $PIP install -e .[full] --no-build-isolation)
RUN (cd mathics-core && bash ./admin-tools/make-JSON-tables.sh)
##############################################
# Mathics Modules: Trepan, Graph, and Natlang
##############################################
-RUN pip install Mathics3-Module-Base
-RUN pip install mathics-pygments
+RUN $PIP install Mathics3-Module-Base
+RUN git clone --depth 1 https://github.com/Mathics3/Mathics3-pygments.git
+RUN (cd Mathics3-pygments && $PIP install -e . --no-build-isolation)
RUN git clone --depth 1 https://github.com/Mathics3/Mathics3-trepan.git
RUN (cd Mathics3-trepan && $PIP install --no-build-isolation -e .)
@@ -108,6 +108,7 @@ RUN (cd trepan3k-mathics-debugger && $PIP install -e .)
RUN $PIP install --no-build-isolation -e "git+https://github.com/Mathics3/Mathics3-Module-networkx#egg=Mathics3-Module-networkx"
RUN $PIP install --no-build-isolation -e "git+https://github.com/Mathics3/Mathics3-Module-nltk#egg=Mathics3-Module-nltk"
+# RUN $PIP install --no-build-isolation -e "git+https://github.com/Mathics3/Mathics3-Module-PyICU#egg=Mathics3-Module-PyICU"
RUN $PIP install spacy wordcloud
RUN $PYTHON -m spacy download en_core_web_md
@@ -130,7 +131,7 @@ RUN $PIP install nltk
# # COPY src/documentation.tex mathics-core/mathics/doc/latex/documentation.tex
# # COPY src/version-info.tex mathics-core/mathics/doc/latex/
-COPY src/mathics.pdf mathics-core/mathics/doc/latex/mathics.pdf
+COPY src/mathics3.pdf mathics-core/mathics/doc/latex/mathics3.pdf
##################
# Mathics Django #
@@ -145,7 +146,9 @@ RUN (cd Mathics3-django && make build)
# # RUN (cd src/Mathics3-django && PIP=$PIP make)
# RUN (cd Mathics3-django && $PYTHON Mathics3_django/docpipeline.py -ok) || true
COPY src/doc_html_data.pcl doc_html_data.pcl
-RUN mv -v doc_html_data.pcl /home/ubuntu/Mathics3-django/mathics_django/doc/doc_data_html.pcl
+RUN mkdir -p ${MATHICS3_HOME}/.local/var/Mathics3/
+RUN mv -v doc_html_data.pcl /home/ubuntu/.local/var/Mathics3/doc_data_html.pcl
+RUN (cd Mathics3-django && $PYTHON -m pip install --no-build-isolation -e .)
##################
# Mathicsscript #
@@ -154,7 +157,7 @@ RUN mv -v doc_html_data.pcl /home/ubuntu/Mathics3-django/mathics_django/doc/doc_
RUN git clone --depth 1 https://github.com/Mathics3/mathicsscript.git
RUN (cd mathicsscript && PYTHON=$PYTHON make install)
-RUN ${PYTHON} -m pip install mathicsscript[full]
+RUN (cd mathicsscript && $PYTHON -m pip install -e .[full])
# RUN ${PYTHON} -m pip install -e git+https://github.com/Mathics3/mathicsscript#egg=mathicsscript[full]
# RUN (cd src/mathicsscript && make)
@@ -181,7 +184,7 @@ RUN mkdir -p ${MATHICS3_HOME}/.local
RUN mkdir -p ${MATHICS3_HOME}/.config
RUN mkdir -p ${MATHICS3_HOME}/data
RUN mkdir -p ${MATHICS3_HOME}/.local/var/Mathics3/Packages
-COPY django-db/mathics.sqlite ${MATHICS3_HOME}/.local/var/Mathics3/mathics.sqlite
+COPY django-db/mathics3.sqlite ${MATHICS3_HOME}/.local/var/Mathics3/mathics3.sqlite
RUN chown -R ubuntu:ubuntu $MATHICS3_HOME ${MATHICS3_HOME}/.local
RUN chown -R ubuntu:ubuntu ${MATHICS3_HOME}/data
USER ubuntu
diff --git a/docker/django-db/mathics.sqlite b/docker/django-db/mathics3.sqlite
similarity index 96%
rename from docker/django-db/mathics.sqlite
rename to docker/django-db/mathics3.sqlite
index cd220c7c..8f860caa 100644
Binary files a/docker/django-db/mathics.sqlite and b/docker/django-db/mathics3.sqlite differ
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index 8093fa15..0eb63dfd 100644
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -2,9 +2,9 @@
# This is the docker entry point and gets installed as /usr/local/bin/mathics.sh
USER_HOME="/home/ubuntu"
-MATHICS_DJANGO_SYSTEM_DB_PATH="${USER_HOME}/.local/var/Mathics3/mathics.sqlite"
+MATHICS_DJANGO_SYSTEM_DB_PATH="${USER_HOME}/.local/var/Mathics3/mathics3.sqlite"
-export PATH="/opt/python3.13/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${USER_HOME}/.local/bin"
+export PATH="/opt/python3.14/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${USER_HOME}/.local/bin"
export PYTHONBREAKPOINT=trepan.api.debug
script_cmd="${ENTRYPOINT_COMMAND:-$(basename $0)}"
@@ -57,17 +57,19 @@ done
case $mathics_mode in
cli) mathicsscript $@
;;
- mathics3-tokens) mathics3-tokens $@
+ mathics3-code-tokenize) mathics3-code-tokenize $@
+ ;;
+ mathics3-code-parse) mathics3-code-parse $@
;;
minimal|mathics|mathics3)
- mathics $@
+ mathics3 $@
;;
document|pdf)
- evince ${USER_HOME}/mathics-core/mathics/doc/latex/mathics.pdf
+ evince ${USER_HOME}/mathics-core/mathics/doc/latex/mathics3.pdf
;;
copy)
echo "Copying mathics.pdf to host-attached filesystem ${TEMPDIR}."
- cp ${USER_HOME}/mathics-core/mathics/doc/latex/mathics.pdf /usr/src/app/data/mathics.pdf
+ cp ${USER_HOME}/mathics-core/mathics/doc/latex/mathics3.pdf /usr/src/app/data/mathics3.pdf
;;
django|ui|gui)
echo
@@ -79,11 +81,11 @@ case $mathics_mode in
cp -vp $MATHICS_DJANGO_SYSTEM_DB_PATH $MATHICS_DJANGO_DB_PATH
fi
else
- echo "~~~~ SQLite data (worksheets, user info) will be stored in $MATHICS_HOME/data/mathics.sqlite"
+ echo "~~~~ SQLite data (worksheets, user info) will be stored in $MATHICS_HOME/data/mathics3.sqlite"
fi
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo
- mathicsserver -e $@ ;;
+ Mathics3server runserver $@ ;;
shell) /bin/bash ;;
*) echo "unknown mathics_mode=$mathics_mode. See '$script_cmd --help'" ; exit 2 ;;
esac
diff --git a/docker/src/doc_data_html.pcl b/docker/src/doc_data_html.pcl
new file mode 100644
index 00000000..4b249cfe
Binary files /dev/null and b/docker/src/doc_data_html.pcl differ
diff --git a/docker/src/mathics3.pdf b/docker/src/mathics3.pdf
index 609c92af..485ef32f 100644
Binary files a/docker/src/mathics3.pdf and b/docker/src/mathics3.pdf differ
diff --git a/pyproject.toml b/pyproject.toml
index 06b1c31d..c2fa419f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -45,9 +45,11 @@ include = ["script/dmathics3"]
[tool.poetry.scripts]
dmathics3 = { reference = "script/dmathics3", type = "file" }
-dmathics3-tokens = { reference = "script/dmathics3-tokens", type = "file" }
+dmathics3-parser = { reference = "script/dmathics3-parse", type = "file" }
+dmathics3-tokenize = { reference = "script/dmathics3-tokenize", type = "file" }
dmathics3copy = { reference = "script/dmathics3copy", type = "file" }
dmathics3doc = { reference = "script/dmathics3doc", type = "file" }
+dmathics3Server = { reference = "script/dmathics3server", type = "file" }
[tool.setuptools.packages.find]
include = ["mathics3_omnibus*"]
diff --git a/script/dmathics3-code-parse b/script/dmathics3-code-parse
new file mode 100755
index 00000000..219c003e
--- /dev/null
+++ b/script/dmathics3-code-parse
@@ -0,0 +1,26 @@
+#!/bin/bash
+set -e
+if [ -n "$DEBUG" ]; then
+ set -x
+fi
+
+# The release name we are configured to run under.
+typeset dmathics_version='1.0.0'
+
+# Allow customization using POSIX environment variables:
+DOCKER=${DOCKER:-docker}
+
+TAG=${TAG:-latest}
+MATHICS3_IMAGE=${MATHICS3_IMAGE:-mathicsorg/mathics:${TAG}}
+
+# Show environment variables
+for env_setting in MATHICS3_IMAGE; do
+ echo $env_setting = ${!env_setting}
+done
+
+
+$DOCKER run --rm -it \
+ --name mathics3-code-parse \
+ --volume /tmp:/usr/src/app/data \
+ $MATHICS3_IMAGE \
+ --mode mathics3-code-parse -- $@
diff --git a/script/dmathics3-tokens b/script/dmathics3-code-tokenize
similarity index 93%
rename from script/dmathics3-tokens
rename to script/dmathics3-code-tokenize
index 67bd5ffa..222a4811 100755
--- a/script/dmathics3-tokens
+++ b/script/dmathics3-code-tokenize
@@ -23,4 +23,4 @@ $DOCKER run --rm -it \
--name mathics-cli \
--volume /tmp:/usr/src/app/data \
$MATHICS3_IMAGE \
- --mode mathics3-tokens -- $@
+ --mode mathics3-code-tokenize -- $@
diff --git a/script/dmathicsscript b/script/dmathics3script
similarity index 100%
rename from script/dmathicsscript
rename to script/dmathics3script
diff --git a/script/dmathicsscript.cmd b/script/dmathics3script.cmd
similarity index 100%
rename from script/dmathicsscript.cmd
rename to script/dmathics3script.cmd
diff --git a/script/dmathicsserver b/script/dmathics3server
similarity index 64%
rename from script/dmathicsserver
rename to script/dmathics3server
index 147f2a42..d9df7891 100755
--- a/script/dmathicsserver
+++ b/script/dmathics3server
@@ -5,15 +5,15 @@ if [ -n "$DEBUG" ]; then
fi
# The release name we are configured to run under.
-typeset dmathicsserver_version='2.0.0'
+typeset dmathicsserver_version='10.0.0'
# Allow customization using POSIX environment variables:
APP_DATADIR=${APP_DATADIR:-/tmp}
DOCKER=${DOCKER:-docker}
ASYMPTOTE_PDFVIEWER=${ASYMPTOTE_PDFVIWER:-/usr/bin/evince}
USER_HOME="/home/ubuntu"
-MATHICS_DJANGO_DB=${MATHICS_DJANGO_DB:-"mathics.sqlite"}
-MATHICS_DJANGO_DB_PATH=${MATHICS_DJANGO_DB_PATH:-${USER_HOME}/.local/var/Mathics3/${MATHICS_DJANGO_DB}}
+MATHICS3_DJANGO_DB=${MATHICS_DJANGO_DB:-"mathics3.sqlite"}
+MATHICS3_DJANGO_DB_PATH=${MATHICS_DJANGO_DB_PATH:-${USER_HOME}/.local/var/Mathics3/${MATHICS3_DJANGO_DB}}
TAG=${TAG:-latest}
MATHICS3_IMAGE=${MATHICS3_IMAGE:-mathicsorg/mathics:${TAG}}
@@ -26,9 +26,9 @@ for arg in "$@" ; do
-h | --help | help )
cat <<_EOH
usage:
- dmathicsserver [options]
+ dmathics3server [options]
-runs the Mathics command-line interface from a docker container.
+runs the Mathics3 command-line interface from a docker container.
Options specfic to dmathicsserver:
@@ -39,7 +39,7 @@ Options specfic to dmathicsserver:
show this help
-V| --version
- show the dmathicserver version and exit
+ show the dmathics3server version and exit
We will now pass help along to the docker image. Just a sec...
@@ -50,7 +50,7 @@ _EOH
$DOCKER pull $MATHICS3_IMAGE
;;
-v | -V | --version)
- echo "dmathicsserver version ${dmathicsserver_version}"
+ echo "dmathics3server version ${dmathicsserver_version}"
exit 100
;;
default)
@@ -59,24 +59,23 @@ _EOH
done
# Show environment variables
-for env_setting in MATHICS_DJANGO_DB_PATH APP_DATADIR MATHICS3_IMAGE DISPLAY; do
+for env_setting in MATHICS3_DJANGO_DB_PATH APP_DATADIR MATHICS3_IMAGE DISPLAY; do
echo $env_setting = ${!env_setting}
done
$DOCKER run \
-it \
- --name mathics-django \
+ --name Mathics3-django \
--rm \
--env "COLORFGBG=$COLORFGBG" \
--env="DISPLAY" \
--env="ASYMPTOTE_PDFVIEWER=/usr/bin/evince" \
- --env "MATHICS_DJANGO_DB_PATH=$MATHICS_DJANGO_DB_PATH" \
- --env "PYTHON=/opt/python3.12/bin/python3.12" \
+ --env "PYTHON=/opt/python3.14/bin/python3.14" \
--user=$(id -u) \
--workdir=/app \
--volume="$PWD":/app \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
- --volume="${APP_DATADIR}:/home/ubuntu/.local/var/Mathics3" \
- -p 8000:8000 \
+ --network=host \
$MATHICS3_IMAGE \
- --mode ui -- $stripped_args
+ --mode ui -- $stripped_args \
+ # --volume="${APP_DATADIR}:/home/ubuntu/.local/var/Mathics3" \