Skip to content

Commit 90c3225

Browse files
committed
Merge branch 'master' into github-ci
2 parents de97fbb + 37cffc4 commit 90c3225

160 files changed

Lines changed: 19666 additions & 3020 deletions

File tree

Some content is hidden

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

.github/workflows/sync.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# .github/workflows/sync.yml
2+
name: Sync from Upstream
3+
4+
on:
5+
schedule:
6+
- cron: '0 * * * *' # every hour, adjust as needed
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: write
11+
actions: write
12+
13+
jobs:
14+
sync:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
with:
19+
token: ${{ secrets.GITHUB_TOKEN }}
20+
fetch-depth: 0
21+
22+
- name: Add upstream and sync
23+
run: |
24+
git config user.email "github-actions[bot]@users.noreply.github.com"
25+
git config user.name "github-actions[bot]"
26+
27+
git remote add upstream https://git.code.sf.net/p/maxima/code
28+
git fetch upstream
29+
30+
# Save the workflow file before syncing
31+
cp .github/workflows/sync.yml /tmp/sync.yml
32+
33+
# Sync all branches
34+
git push origin refs/remotes/upstream/*:refs/heads/* --force-with-lease
35+
git push origin --tags --force
36+
37+
# Restore the workflow file to master
38+
git checkout master
39+
git reset --hard upstream/master
40+
mkdir -p .github/workflows
41+
cp /tmp/sync.yml .github/workflows/sync.yml
42+
git add .github/workflows/sync.yml
43+
git commit -m "Restore sync workflow" --allow-empty
44+
git push origin master

ChangeLog

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,9 @@ Maxima 5.49-post change log
44
Bug fixes for numbered bugs:
55
----------------------------
66
* \#4585 Taylor polynomials involving tangent & a quotient
7-
* \#4634 Divergent integral simplifies to -1/4 with simplify_sum
7+
* \#4634 Divergent integral simplifies to -1/4 with simplify_sum
8+
9+
Changes in the Windows installer:
10+
---------------------------------
11+
* Update SBCL
12+
* Update wxWidgets

Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ if ENABLE_BUILD_DOCS
1010
DOC_DIR = doc
1111
endif
1212

13-
SUBDIRS = admin crosscompile-windows src lisp-utils $(DOC_DIR) interfaces share demo plotting desktopintegration $(LOCALE_DIR) tests
13+
SUBDIRS = admin crosscompile-windows src lisp-utils $(DOC_DIR) interfaces share demo desktopintegration $(LOCALE_DIR) tests
1414

1515
EXTRA_DIST = \
1616
common.mk maxima.iss.in \

actions.zip

4.02 KB
Binary file not shown.

configure.ac

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -845,6 +845,17 @@ if test x"${enable_build_docs}" = xtrue ; then
845845
AC_MSG_RESULT([${makeinfo_version_string} (6.8 or later preferred)])
846846
fi
847847

848+
dnl If makeinfo supports the classes for the navigation panel, enable
849+
dnl CSS styling for the panel. This support was added in 7.2.90.
850+
if test ${makeinfo_version} -ge 70290; then
851+
NAV_PANEL_CSS="$(cat | tr -s '\n' ' ' <<EOF
852+
<link rel="stylesheet"
853+
type="text/css"
854+
href="nav-panel.css">
855+
EOF
856+
)"
857+
fi
858+
848859
dnl Enable JS highlighting of examples in the HTML docs.
849860
dnl The API has changed between 6.8 and 7.0, so we need to substitute the
850861
dnl the appropriate things.
@@ -957,6 +968,7 @@ EOF
957968
AC_SUBST(USE_CUSTOM_HILITE)
958969
AC_SUBST(CUSTOM_PYGMENTS)
959970
AC_SUBST(CUSTOM_PYGMENTS_CSS)
971+
AC_SUBST(NAV_PANEL_CSS)
960972
TEXI2HTML=texi2html.init
961973
AC_SUBST(TEXI2HTML)
962974

@@ -1581,7 +1593,7 @@ interfaces/emacs/misc/Makefile interfaces/xmaxima/Makefile \
15811593
interfaces/xmaxima/autoconf-variables.tcl interfaces/xmaxima/Tkmaxima/Header.tcl \
15821594
interfaces/xmaxima/doc/Makefile interfaces/xmaxima/doc/figures/Makefile \
15831595
interfaces/xmaxima/msgs/Makefile interfaces/xmaxima/win32/Makefile \
1584-
plotting/mgnuplot share/Makefile demo/Makefile plotting/Makefile locale/Makefile \
1596+
share/Makefile demo/Makefile locale/Makefile \
15851597
share/contrib/Makefile
15861598
share/contrib/guess/Makefile \
15871599
share/contrib/guess/doc/Makefile \

crosscompile-windows/CMakeLists.txt

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ option(WITH_CLISP "Include CLISP in the installer." YES)
8181
option(WITH_SBCL "Include SBCL in the installer." YES)
8282
option(WITH_ABCL "Include ABCL in the installer." NO)
8383
option(WITH_CCL64 "Include CCL64 in the installer." NO)
84+
option(WITH_ECL "Include ECL in the installer." NO)
8485

8586
# Concerning the used Lisp versions:
8687
# - SBCL is fast, but sometimes runs out of memory in places it really shouldn't
@@ -131,7 +132,7 @@ else()
131132
endif()
132133

133134
set(WITH_DEFAULT_LISP "sbcl" CACHE STRING "Which Lisp should be used by default?")
134-
set_property(CACHE WITH_DEFAULT_LISP PROPERTY STRINGS "clisp" "sbcl" "abcl" "ccl64")
135+
set_property(CACHE WITH_DEFAULT_LISP PROPERTY STRINGS "clisp" "sbcl" "abcl" "ccl64" "ecl")
135136

136137
# If you want to use a updated version of a program,
137138
# update the version number and the checksum.
@@ -188,6 +189,10 @@ endif()
188189

189190
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" -print-file-name=libstdc++-6.dll OUTPUT_VARIABLE MINGW_LIBSTDCPP OUTPUT_STRIP_TRAILING_WHITESPACE)
190191

192+
# wxMaxima and ECL uses C++ threads, include the required mingw library.
193+
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" -print-file-name=libwinpthread-1.dll OUTPUT_VARIABLE MINGW_LIBWINPTHREAD OUTPUT_STRIP_TRAILING_WHITESPACE)
194+
message(STATUS "Found libwinpthread at ${MINGW_LIBWINPTHREAD}")
195+
191196
message(STATUS "Found libstdc++ at ${MINGW_LIBSTDCPP}")
192197

193198
message(STATUS "Found libgcc at ${MINGW_LIBGCC}")
@@ -274,26 +279,41 @@ else()
274279
set(CCL64_DEPENDS "")
275280
set(CCL_ENABLED 0)
276281
endif()
282+
if(WITH_ECL)
283+
add_subdirectory("gmplib/")
284+
add_subdirectory("ecl/")
285+
add_subdirectory("winlibs/")
286+
set(ECL_CONFIGURE --enable-ecl --with-ecl=${CMAKE_BINARY_DIR}/wine-ecl.sh)
287+
set(ECL_DEPENDS ecl winlibs)
288+
set(ECL_ENABLED 1)
289+
else()
290+
set(ECL_CONFIGURE "")
291+
set(ECL_DEPENDS "")
292+
set(ECL_ENABLED 1)
293+
endif()
277294

278295
configure_file("${CMAKE_SOURCE_DIR}/wine-clisp.sh.tmpl" "${CMAKE_BINARY_DIR}/wine-clisp.sh")
279296
configure_file("${CMAKE_SOURCE_DIR}/wine-lisp.sh.tmpl" "${CMAKE_BINARY_DIR}/wine-lisp.sh")
280297
configure_file("${CMAKE_SOURCE_DIR}/wine-sbcl.sh.tmpl" "${CMAKE_BINARY_DIR}/wine-sbcl.sh")
281298
configure_file("${CMAKE_SOURCE_DIR}/wine-ccl.sh.tmpl" "${CMAKE_BINARY_DIR}/wine-ccl.sh")
299+
configure_file("${CMAKE_SOURCE_DIR}/wine-ecl.sh.tmpl" "${CMAKE_BINARY_DIR}/wine-ecl.sh")
300+
configure_file("${CMAKE_SOURCE_DIR}/ecl/ecl-lisp-build.sh.tmpl" "${CMAKE_BINARY_DIR}/ecl-lisp-build.sh")
282301

283302
externalproject_add(maxima
284303
# first copy the maxima source to a build directory, since out-of-source-builds do not work
285304
DOWNLOAD_COMMAND rsync -a --exclude=crosscompile-windows/build/ "${CMAKE_SOURCE_DIR}/../" "${CMAKE_BINARY_DIR}/maxima-prefix/src/maxima"
286-
DEPENDS tcl tk texinfo ${CLISP_DEPENDS} ${SBCL_DEPENDS} ${ABCL_DEPENDS} ${CCL64_DEPENDS}
305+
DEPENDS tcl tk texinfo ${CLISP_DEPENDS} ${SBCL_DEPENDS} ${ABCL_DEPENDS} ${CCL64_DEPENDS} ${ECL_DEPENDS}
287306
BUILD_IN_SOURCE 1
288307
CONFIGURE_COMMAND sh -c "test -x ./bootstrap && ./bootstrap || return 0"
289-
COMMAND PATH=${CMAKE_BINARY_DIR}/texinfo-installroot/bin:$ENV{PATH} LANG=C ./configure --host=${HOST} ${CLISP_CONFIGURE} ${SBCL_CONFIGURE} ${ABCL_CONFIGURE} ${CCL64_CONFIGURE} --with-default-lisp=${WITH_DEFAULT_LISP} --prefix=${WINDOWS_DRIVELETTER}:/maxima-${MAXIMAVERSION}
308+
COMMAND PATH=${CMAKE_BINARY_DIR}/texinfo-installroot/bin:$ENV{PATH} LANG=C ./configure --host=${HOST} ${CLISP_CONFIGURE} ${SBCL_CONFIGURE} ${ABCL_CONFIGURE} ${CCL64_CONFIGURE} ${ECL_CONFIGURE} --with-default-lisp=${WITH_DEFAULT_LISP} --prefix=${WINDOWS_DRIVELETTER}:/maxima-${MAXIMAVERSION}
290309
# during the crosscompiling procedure, we call configure with shell scripts (wine-xyz.sh) to use the Windows versions.
291310
# change that after compiliation to the real binaries (clisp.exe for CLISP, sbcl.exe for SBCL, wx86cl64.exe for CCL64).
292311
BUILD_COMMAND PATH=${CMAKE_BINARY_DIR}/texinfo-installroot/bin:$ENV{PATH} LANG=C $(MAKE)
293312
COMMAND PATH=${CMAKE_BINARY_DIR}/texinfo-installroot/bin:$ENV{PATH} LANG=C $(MAKE) pdf
294313
COMMAND sed -i s+^.*wine-clisp.sh+clisp.exe+g src/maxima.bat
295314
COMMAND sed -i s+^.*wine-sbcl.sh+sbcl.exe+g src/maxima.bat
296315
COMMAND sed -i s+^.*wine-ccl.sh+wx86cl64.exe+g src/maxima.bat
316+
COMMAND sed -i s+^.*wine-ecl.sh+ecl/ecl.exe+g src/maxima.bat
297317
INSTALL_COMMAND PATH=${CMAKE_BINARY_DIR}/texinfo-installroot/bin:$ENV{PATH} LANG=C $(MAKE) install DESTDIR=${CMAKE_BINARY_DIR}/maxima-installroot/
298318
COMMAND PATH=${CMAKE_BINARY_DIR}/texinfo-installroot/bin:$ENV{PATH} LANG=C $(MAKE) extradocinstall DESTDIR=${CMAKE_BINARY_DIR}/maxima-installroot/
299319
)
@@ -321,8 +341,12 @@ install(FILES "${CMAKE_SOURCE_DIR}/../interfaces/xmaxima/win32/win_signals.lisp"
321341

322342

323343
install(DIRECTORY ${CMAKE_BINARY_DIR}/maxima-installroot/${WINDOWS_DRIVELETTER}:/maxima-${MAXIMAVERSION}/
324-
DESTINATION . COMPONENT Maxima
325-
PATTERN "binary-clisp" EXCLUDE PATTERN "binary-sbcl" EXCLUDE PATTERN "binary-abcl" EXCLUDE PATTERN "binary-ccl64" EXCLUDE)
344+
DESTINATION . COMPONENT Maxima
345+
PATTERN "binary-clisp" EXCLUDE
346+
PATTERN "binary-sbcl" EXCLUDE
347+
PATTERN "binary-abcl" EXCLUDE
348+
PATTERN "binary-ccl64" EXCLUDE
349+
PATTERN "binary-ecl" EXCLUDE)
326350
if(WITH_ABCL)
327351
install(DIRECTORY ${CMAKE_BINARY_DIR}/maxima-installroot/${WINDOWS_DRIVELETTER}:/maxima-${MAXIMAVERSION}/
328352
DESTINATION . COMPONENT ABCL PATTERN "binary-abcl")
@@ -331,6 +355,10 @@ if(WITH_CLISP)
331355
install(DIRECTORY ${CMAKE_BINARY_DIR}/maxima-installroot/${WINDOWS_DRIVELETTER}:/maxima-${MAXIMAVERSION}/
332356
DESTINATION . COMPONENT CLISP PATTERN "binary-clisp")
333357
endif()
358+
if(WITH_ECL)
359+
install(DIRECTORY ${CMAKE_BINARY_DIR}/maxima-installroot/${WINDOWS_DRIVELETTER}:/maxima-${MAXIMAVERSION}/
360+
DESTINATION . COMPONENT ECL PATTERN "binary-ecl")
361+
endif()
334362
if(WITH_SBCL)
335363
install(DIRECTORY ${CMAKE_BINARY_DIR}/maxima-installroot/${WINDOWS_DRIVELETTER}:/maxima-${MAXIMAVERSION}/
336364
DESTINATION . COMPONENT SBCL PATTERN "binary-sbcl")
@@ -403,7 +431,6 @@ if(WITH_SBCL)
403431
cpack_add_component(SBCL
404432
DESCRIPTION "The SBCL Lisp compiler.\nOne Lisp compiler is required.")
405433
endif()
406-
407434
if(WITH_ABCL)
408435
cpack_add_component(ABCL
409436
DESCRIPTION "The ABCL Lisp compiler.\nA Java installation is required.\nOne Lisp compiler is required.")
@@ -412,6 +439,10 @@ if(WITH_CCL64)
412439
cpack_add_component(CCL64
413440
DESCRIPTION "The CCL (64Bit) Lisp compiler.\nOne Lisp compiler is required.")
414441
endif()
442+
if(WITH_ECL)
443+
cpack_add_component(ECL
444+
DESCRIPTION "The ECL Lisp compiler.\nOne Lisp compiler is required.")
445+
endif()
415446

416447
cpack_add_component(TclTk
417448
DISPLAY_NAME "Tcl/Tk"
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# SPDX-License-Identifier: GPL-2.0-or-later
2+
3+
# Currently using a recent (as of 2026-03-20) GIT version.
4+
# (not the current master, I want that reproducible...
5+
set(ECL_MD5 "92c91aabe58bf15d360493904ed86850")
6+
set(ECL_URL "https://ecl.common-lisp.dev/static/files/release/ecl-26.3.27.tgz")
7+
8+
ExternalProject_Add(ecl-native
9+
DEPENDS gmplib
10+
BUILD_IN_SOURCE 1
11+
URL "${ECL_URL}"
12+
DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/downloads
13+
URL_MD5 ${ECL_MD5}
14+
CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/ecl-native-root --enable-gmp=included
15+
BUILD_COMMAND make
16+
INSTALL_COMMAND make install
17+
)
18+
19+
ExternalProject_Add(ecl
20+
DEPENDS gmplib ecl-native
21+
BUILD_IN_SOURCE 1
22+
URL "${ECL_URL}"
23+
DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/downloads
24+
URL_MD5 ${ECL_MD5}
25+
PATCH_COMMAND rm -rf "${CMAKE_CURRENT_BINARY_DIR}/ecl-prefix/src/ecl/src/gmp"
26+
COMMAND cp -a "${CMAKE_BINARY_DIR}/gmplib/gmplib-prefix/src/gmplib" "${CMAKE_CURRENT_BINARY_DIR}/ecl-prefix/src/ecl/src/gmp"
27+
# COMMAND cp ${CMAKE_SOURCE_DIR}/ecl/strm_os.d ${CMAKE_BINARY_DIR}/ecl/ecl-prefix/src/ecl/src/c/streams/strm_os.d
28+
COMMAND cp ${CMAKE_SOURCE_DIR}/ecl/asdf.lisp ${CMAKE_BINARY_DIR}/ecl/ecl-prefix/src/ecl/contrib/asdf/asdf.lisp
29+
CONFIGURE_COMMAND ECL_TO_RUN=${CMAKE_BINARY_DIR}/ecl-native-root/bin/ecl CFLAGS=-m64 ./configure --build=x86_64-pc-linux-gnu --host=x86_64-w64-mingw32 --prefix=${CMAKE_BINARY_DIR}/ecl-cross-root --with-cross-config=${CMAKE_BINARY_DIR}/ecl/ecl-prefix/src/ecl/src/util/x86_64-w64-mingw32.cross_config --enable-gmp=included --with-cmp=yes --with-bytecmp=no #--with-asdf=no
30+
BUILD_COMMAND make
31+
INSTALL_COMMAND make install
32+
COMMAND ${CMAKE_COMMAND} -E copy "${MINGW_LIBSTDCPP}" "${CMAKE_BINARY_DIR}/ecl-cross-root"
33+
COMMAND ${CMAKE_COMMAND} -E copy "${MINGW_LIBGCC}" "${CMAKE_BINARY_DIR}/ecl-cross-root"
34+
COMMAND ${CMAKE_COMMAND} -E copy "${MINGW_LIBWINPTHREAD}" "${CMAKE_BINARY_DIR}/ecl-cross-root"
35+
)
36+
install(DIRECTORY ${CMAKE_BINARY_DIR}/ecl-cross-root/ DESTINATION bin/ecl COMPONENT ECL)

0 commit comments

Comments
 (0)