Thursday, November 4, 2021

WordMat for Mac M1 released

This is the first release that support the 'new' Mac M1 processor.

A number of problems had to be overcome to create this release. The main problem was that the Math engine 'Maxima' did not run on M1-processor with the rosetta emulator.

  1. First the compiler for SBCL that compiles Maxima had to be created for Maxima. 

  2. Maxima for WordMat was running an older version of Maxima, because the deployment system for newer systems changed to Macports. Eventually I could use Macports to get a compiled version of Maxima for M1. The installer had to rewritten from scratch.

  3. WordMat does not run a standard version of Maxima, but included a lot of additional code. This code had to be updated to match the new Maxima version.

  4. The c-library to communicate between Maxima and Windows was easily compiled for M1, but I simply could not make it work with the new version of Maxima, after many, many attempts. Eventually a new method for communication was developed. The new method starts a new instance of Maxima for each calculation. This makes WordMat a bit slower, but not much as the M1-processor is pretty fast. Coming from a 2 year old computer you will not notice it. 

The new method has a couple of advantages that should make WordMat more stable for Mac:

  • A fresh version of Maxima for every calculation means previous calculation cannot interfere
  • The new method has a default timeout of about 15s. If Maxima does not finish, the process will be killed. On previous versions this could halt Word.