Hi!
This is a really annoying problem with Mathematica. They change
the version of the MathLink protocol fairly often.
Earlier this was OK because they still sent the old dll files with
the new versions of Mathematica. Now, they don't.
The easiest fix is if you can find the old ml64i3.dll file in the
old version of Mathematica. For instance in version 12.1, it can
be found at:
C:\Program Files\Wolfram
Research\Mathematica\12.1\SystemFiles\Links\MathLink\DeveloperKit\Windows-x86-64\SystemAdditions\ml64i3.dll
It can be placed in the corresponding folder for your new version.
If that does not work, I suppose that I will have to recompile
xPerm with the new version of the protocol.
However, that would disqualify older versions of Mathematica.
Unfortunately, I can not send the dll file here because gmail does
not allow dll files to be send via email due to security issues.
The same holds for the compiled xperm.win64 file.
Perhaps Jose could add the dll file to the main release if Wolfram
allows that?
With mingw installed, it is also possible to build your own
version of xperm.win64.
For reference, the following is the latest bat file I used for
compilation:
"
@Echo off
set mingwVer=8.1.0
set mmaVer=13.0
set GccBinDir="C:\Program
Files\mingw-w64\x86_64-%mingwVer%-win32-seh-rt_v6-rev0\mingw64\bin"
set mldev64Dir="C:\Program Files\Wolfram
Research\Mathematica\%mmaVer%\SystemFiles\Links\MathLink\DeveloperKit\Windows-x86-64\CompilerAdditions"
set ml64Ver=4
set mllibName=ml64i%ml64Ver%
If Not Exist %mllibName%n.lib (Echo %mllibName%n.lib not found.
Creating it... && %GccBinDir%\gendef
%mldev64Dir%\..\SystemAdditions\%mllibName%.dll &&
%GccBinDir%\dlltool.exe --as-flags=--64 -m i386:x86-64 -k
--input-def %mllibName%.def --output-lib
%mllibName%n.lib&& del %mllibName%.def)
Echo Running mprep...
%mldev64Dir%\mprep -o xpermtm.c
xperm.tm
Echo Compiling and linking...
%GccBinDir%\gcc -mwindows -O3 xpermtm.c -include "stdint.h"
-Wl,-static -I%mldev64Dir% -L%CD% -l%mllibName%n -o xperm.win64
Echo Removing temporary files...
del xpermtm.c
"
However, it is unclear if it will work without modification on
your system. The source code for xperm is located in your xAct
installation under xAct\xPerm\mathlink.
Regards
Thomas