Skip to main content.

xAct has been adapted to work smoothly after the many changes Mathematica has introduced in its recent 6.0 version. With respect to xAct I classify them into five groups:

Great changes

The MathLink protocol can now link to a cygwin executable under Windows. This allows the use of the xperm executable in Windows, finally!

The impressive new graphics capabilities are not really needed in xAct...

Conflicts

There is a new function Translate in Mathematica, which conflicted with the function Translate in xPerm. The latter has been renamed as TranslatePerm.

Harmless changes

Many Mathematica builtins have been superseded by new ones, though still keeping the older versions. When "scanning notebooks for compatibility issues" the system recommends to change to the newer builtins, but I cannot do that to keep xAct working on 5.* versions of the system. In particular:

The function Timing now returns {2.37, result} instead of the previous {2.37 Second, result}. This has forced a simple change in the package ShowTime1`.

Absurd changes

An important change is the following: the default $ContextPath is now {..., System`, Global`} instead of the previous {Global`, System`}. This could lead to problems for instance when using the capitals C, D, N, O, K as abstract indices.

Let me also say that the new help system is worse than the previous one... I always feel lost now. It is like google.

Bug fixes

Mathematica has solved the 5.* problem of symbol C being generated in the Private` context when C$ was passed through a Module-list. However, the memory leak of not removing a temporary variable when it has 100 or more downvalues is still present, though I reported it in March 2005.

There are new priorities for ordering definitions. Before f[_?EvenQ[_]]:=A and f[2[_]]:=B reordered but now they do not. (I'm not sure we can call this an improvement.) Now it is our own responsibility to reorder these things correctly. I have changed how typeQ-functions in xAct work to be compatible with both the old and new priorities. It is possible to switch to the old ones by setting SetSystemOptions["DefinitionsReordering"->"Legacy"], but I do not want to do that. Thanks to David Yllanes for googling for this.