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:
- Date[] has been changed to DateList[].
- ColumnForm has been changed to Column.
- LogListPlot has been changed to ListLogPlot.
- LogLogListPlot has been changed to ListLogLogPlot.
- Random[Integer, range] has been changed to RandomInteger[range].
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.