Wolfram Computation Meets Knowledge

Mathematica 6.0.1 Arrives

It’s now two months since we released Mathematica 6, and I am happy to say that all our years of development and testing seem to be paying off: Mathematica 6 is a robust system that is performing excellently.

But even long before Mathematica 6.0.0 was released, we were already working on what would come next. Our development process operates on three basic levels that translate roughly into “X” releases, “X.y” releases and “X.y.z” releases. At any given time, we are making incremental improvements to existing features that will be delivered in the X.y.z releases. We’re also building new features, that will arrive in X.y releases. And we’re working on major new areas of Mathematica functionality that will be delivered in the X releases.

Looking at our internal development database, I see that 6.0.1 contains 259 individual code improvements relative to 6.0.0 (as well as a great many documentation and tutorial updates).

What are they all? Well, they are distributed throughout the system (as well as in an update to the free Mathematica Player)—reflecting the continuing work of our many software development teams.

There are a few areas that we pushed hard to include in 6.0.1 on the basis of feedback about 6.0.0. A leading example is the enhancement of automatic and manual proxy settings for internet connectivity. Connecting directly to the internet is a new capability for Mathematica, and feedback indicated that we needed to make it easier for people to handle complex internet connectivity setups. So, we have done this in 6.0.1.

Another area is legacy documentation. In Mathematica 6 we upgraded many pieces of functionality from “standard packages” to built-in kernel functions. The old standard package functions are still available for compatibility—and now in 6.0.1 their documentation is fully searchable.

There are some good infrastructure improvements, too. After additional testing time, we’re now satisfied that we can release a change to the low-level interprocess communication protocol we use—which improves MathLink throughput by a factor of nearly 50 on Mac and Unix systems.

We’ve also made changes to our asynchronous process startup mechanism to streamline the initialization of services such as the Mathematica in-product help system.

Speaking of the help system, we’ve been adding many new function examples and many tutorials, all of which are now available in 6.0.1. We’ve also added many updates to our curated data for functions like CountryData and FinancialData. Many of these appear automatically whenever Mathematica connects to our servers, and all of them are included in 6.0.1.

We are continually improving the core code of Mathematica, making it more efficient, broader and more robust. We made many such improvements in 6.0.1—for example, greatly increasing the performance of ListPlot, ListPlot3D and Plot3D for inputs involving a large number of data points.

We’re quite obsessive about the overall software quality of Mathematica, hunting down every last bug—sometimes for years. For 6.0.1, we squashed a whole range of bugs. To give a sense of what they were, here are a few random examples: On 64-bit Windows, the front end could crash if the contents of a Tooltip were insanely large. On Linux systems with Firefox set as the default browser, hyperlinks containing “&” would not work. And in some extreme cases on Intel CPUs, RandomInteger with the non-default method MKL could return values outside the prescribed bounds.

Yes, these are quite obscure. And that’s mainly because all major bugs we knew about were fixed before we allowed 6.0.0 to be released. But our Quality Assurance group finds and tracks bugs at all levels of severity. And we systematically continue to fix what they find.

It’s really easy to upgrade to 6.0.1. If you’re a registered Mathematica 6 user, you should soon receive an email telling you where to go to download a free update. If you’re on a site license, your site administrator should be receiving master copies of 6.0.1.

And, of course, everything you’ve created in Mathematica 6.0.0 will work in Mathematica 6.0.1.

But a few new things will work too, and it’ll be a little (or in a few cases, a lot) faster.

(I happen to use a Mac most of the time, and the MathLink speedup makes a real difference when I play my favorite Demonstrations…)