A.13 Incompatible ChangesA.13.1 IntroductionEvery new version of Mathematica contains many new features. But careful design from the outset has allowed nearly total compatibility to be maintained between all versions. As a result, almost any program written, say, for Mathematica Version 1 in 1988 should be able to run without change in Mathematica Version 5.1--though it will often run considerably faster. One inevitable problem, however, is that if a program uses names that begin with upper-case letters, then it is possible that since the version when the program was first written, built-in functions may have been added to Mathematica whose names conflict with those used in the program. In addition, to maintain the overall coherence of Mathematica a few functions that existed in earlier versions have gradually been dropped--first becoming undocumented, and later generating warning messages if used. Furthermore, it has in a few rare cases been necessary to makes changes to particular functions that are not compatible with their earlier operation. This section lists all major incompatible changes from Mathematica Version 1 onward. A.13.2 Between Versions 1 and 2• 260 new built-in objects have been added, some of whose names may conflict with names already being used. • Accumulate has been superseded by FoldList; Fold has been added. • Condition ( /;) can now be used in individual patterns as well as in complete rules, and does not evaluate by default. • The functionality of Release has been split between Evaluate and ReleaseHold. • Compose has been superseded by Composition. • Debug has been superseded by Trace and related functions. • Power no longer automatically makes transformations such as Sqrt[x^2] x. • Limit now by default remains unevaluated if it encounters an unknown function. • Mod now handles only numbers; PolynomialMod handles polynomials. • CellArray has been superseded by Raster and RasterArray. • FontForm takes a slightly different form of font specification. • Framed has been superseded by Frame and related options. • ContourLevels and ContourSpacing have been superseded by Contours. • Plot3Matrix has been superseded by ViewCenter and ViewVertical. • FromASCII and ToASCII have been superseded by FromCharacterCode and ToCharacterCode respectively. • Alias has been superseded by $PreRead. • ResetMedium has been subsumed in SetOptions, and $$Media has been superseded by Streams. • StartProcess has been superseded by Install and by MathLink. • Additional parts devoted to Mathematica as a programming language, and to examples of Mathematica packages, have been dropped from The Mathematica Book. A.13.3 Between Versions 2 and 3• 259 new built-in objects have been added, some of whose names may conflict with names already being used. • N[expr, n] now always tries to give n digits of precision if possible, rather than simply starting with n digits of precision. • All expressions containing only numeric functions and numerical constants are now converted to approximate numerical form whenever they contain any approximate numbers. • Many expressions involving exact numbers that used to remain unevaluated are now evaluated. Example: Floor[(7/3)^20]. • Plus and Times now apply built-in rules before user-defined ones, so it is no longer possible to make definitions such as 2+2=5. • The operator precedence for . and ** has been changed so as to be below ^. This has the consequence that expressions previously written in InputForm as a . b ^ n must now be written as (a . b)^n. V2Get[file] will read a file using old operator precedences. • \ ^ is now an operator used to generate a superscript. Raw octal codes must be used instead of \ ^A for inputting control characters. • In Mathematica notebooks, several built-in Mathematica functions are now output by default using special characters. Example: x->y is output as x y in StandardForm. • More sophisticated definite integrals now yield explicit If constructs unless the option setting GenerateConditions->False is used. • HeldPart[expr, i, j, ... ] has been superseded by Extract[expr, {i, j, ... }, Hold]. • Literal[pattern] has been replaced by HoldPattern[pattern]. Verbatim[pattern] has been introduced. Functions like DownValues return their results wrapped in HoldPattern rather than Literal. • ReplaceHeldPart[expr, new, pos] has been superseded by ReplacePart[expr, Hold[new], pos, 1]. • ToHeldExpression[expr] has been superseded by ToExpression[expr, form, Hold]. • Trig as an option to algebraic manipulation functions has been superseded by the explicit functions TrigExpand, TrigFactor and TrigReduce. • AlgebraicRules has been superseded by PolynomialReduce. • The option LegendreType has been superseded by an additional optional argument to LegendreP and LegendreQ. • WeierstrassP[u, { , }] now takes  and  in a list. • $Letters and $StringOrder now have built-in values only, but these handle all possible Mathematica characters. • StringByteCount is no longer supported. • Arbitrary-precision approximate real numbers are now given by default as digits`prec in InputForm. This behavior is controlled by $NumberMarks. • Large approximate real numbers are now given by default as digits*^exponent in InputForm. • HomeDirectory[ ] has been replaced by $HomeDirectory. • Dump has been superseded by DumpSave. • $PipeSupported and $LinkSupported are now obsolete, since all computer systems support pipes and links. • LinkOpen has been superseded by LinkCreate, LinkConnect and LinkLaunch. • Subscripted has been superseded by RowBox, SubscriptBox, etc. • Subscript and Superscript now represent complete subscripted and superscripted quantities, not just subscripts and superscripts. • FontForm and DefaultFont have been superseded by StyleForm and TextStyle. In the notebook front end, changes that were made include: • The file format for notebooks has been completely changed in order to support new notebook capabilities. • Notebook files are now by default given .nb rather than .ma extensions; .mb files are now superfluous. • The front end will automatically ask to convert any old notebook that you tell it to open. • The kernel command NotebookConvert can be used to convert notebook files from Version 2 to Version 3 format. • The default format type for input cells is now StandardForm rather than InputForm. • The organization of style sheets, as well as the settings for some default styles, have been changed. • Some command key equivalents for menu items have been rearranged. A.13.4 Between Versions 3 and 4• 61 new built-in objects have been added, some of whose names may conflict with names already being used. • N[0] now yields a machine-precision zero rather than an exact zero. • FullOptions has been superseded by AbsoluteOptions, which yields results in the same form as Options. • Element[x, y] or  now has built-in evaluation rules. • The symbols I and E are now output in StandardForm as  (\ [ImaginaryI]) and  (\ [ExponentialE]) respectively. • A new second argument has been added to CompiledFunction to allow easier manipulation and composition of compiled functions. A.13.5 Between Versions 4 and 5• 44 completely new built-in objects have been added, some of whose names may conflict with names already being used. • Precision and Accuracy now return exact measures of uncertainty in numbers, not just estimates of integer numbers of digits. • Precision now returns the symbol MachinePrecision for machine numbers, rather than the numerical value $MachinePrecision. • N[expr, MachinePrecision] is now used for numerical evaluation with machine numbers; N[expr, $MachinePrecision] generates arbitrary-precision numbers. • ConstrainedMin and ConstrainedMax have been superseded by Minimize, Maximize, NMinimize and NMaximize. • SingularValues has been superseded by SingularValueList and SingularValueDecomposition. SingularValueDecomposition uses a different and more complete definition. • LUBackSubstitution has been superseded by the use of the more general LinearSolveFunction. • FindRoot[f, {x, { , }}] is now used to specify a starting vector value for x, rather than a pair of values. The same is true for FindMinimum. • DSolveConstants has been superseded by the more general option GeneratedParameters. • TensorRank has been replaced by ArrayDepth. • $TopDirectory has been superseded by $InstallationDirectory and $BaseDirectory. • The default setting for the MathLink LinkProtocol option when connecting different computer systems is now "TCPIP" rather than "TCP".
|