Incompatible Changes since Mathematica Version 1
Every new version of the Wolfram Language 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 code written, say, for Mathematica Version 1 in 1988 should be able to run without change in Wolfram Language Version 13—though it will often run considerably faster.
One inevitable problem, however, is that if code 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 the Wolfram Language whose names conflict with those used in the program, or syntax changes and option specifications for that function may have changed, affecting its use.
In addition, to maintain the overall coherence of the Wolfram Language, some features that existed in earlier versions have gradually been dropped—first becoming undocumented, and later generating warning messages if used. Furthermore, it has been necessary in some cases to make changes to particular functions that are not compatible with their earlier operation.
14.0 to 14.1
- Starting in 14.1, several products, such as Mathematica, Wolfram|One and Wolfram|Alpha Notebook Edition, are now all part of a unified Wolfram application. This application has different values for $InstallationDirectory, $BaseDirectory and $UserBaseDirectory. This is further explained in Upgrading from Mathematica to Wolfram.
- Environment variables used to customize locations used by the Wolfram Language have been changed. MATHINIT is now WOLFRAMNB_INIT, MATHEMATICA_BASE is WOLFRAM_BASE and MATHEMATICA_USERBASE is WOLFRAM_USERBASE.
- On Windows, the current working directory of the kernels launched either by the front end or via the Start menu is now the user's profile directory instead of their documents folder.
- Options["symbol"] now checks for the options of a symbol with name "symbol," if one exists. Specifying a stream by giving its name as a string will not be supported in future versions of the Wolfram Language.
- Alpha channels are now preserved though Colorize by default.
- WebImageSearch no longer accepts a FixedOrder pattern object as input.
- The interpretation of the second argument to a neural network evaluation has been modified. Now net[data, "string"] will always interpret "string" as a net property. Ports must be specified as NetPort["string"].
- TimeSeries and TemporalData objects sampled outside of their data ranges by default no longer give warnings about the use of extrapolation.
- In 14.0 and earlier, CreateCompilerEnvironment[ TargetSystem Automatic] would generate a compiler environment for the current platform. In 14.1, CreateCompilerEnvironment[ TargetSystem Automatic] generates compiler environments for a range of popular platforms. The previous behavior can be recreated with CreateCompilerEnvironment[ TargetSystem Inherited], which is the default.
13.3 to 14.0
- When an abort is generated inside a data-parallel computation, such as ParallelMap, the abort is propagated to the master kernel and the whole computation is aborted. This now behaves the same as it would in a sequential computation; previously, the parallel computation would continue running.
- ValueQ[LocalSymbol[…]] now checks whether the local symbol exists, rather than always giving True.
- FindExternalEvaluators no longer returns the property "Version".
- ExternalEvaluate[{system,"Version"…},…] usage has been deprecated.
- VerificationTest, TestEvaluate and TestReport will no longer return the outcome "Error" and will instead return "Failure". A new property "FailureType" has been added, which contains different types of failure modes, such as "UncaughtThrowFailure" or "SameTestUnevaluated".
- The Formatting Toolbar, which was obsoleted in 13.2, has been removed in 14.0.
- "Enable Parallel Monitoring Tools" in the Preferences menu no longer causes "Parallel`Debug`" to be added to $ContextPath.
- RLink no longer supports the bundled R installations that used to come with it. Instead, it now automatically discovers and uses existing external R installations (for more details, see the InstallR documentation page).
- The MaxItems option for ChatEvaluate and LLMSynthesize has been deprecated. The property "MaxTokens" in LLMConfiguration can be used instead.
- When an explicit VertexTextureCoordinates value is not specified, Texture[] will now use the projection specified by the new TextureMapping option, which defaults to Automatic. To restore the previous behavior, apply the setting TextureMappingNone to individual primitives you wish to be excluded from the projection.
- URLs generated by a URLBuild command with a specified "Domain" but without a specified "Path" component no longer have a trailing slash.
- The event "ReportFinished" issued by TestReport during evaluation has been renamed to "ReportCompleted".
- The HandlerFunctions key "Event" for TestReport has been renamed to "EventName".
13.2 to 13.3
- Partial differential equation term functions such as DiffusionPDETerm now more aggressively auto-simplify their output when variable dependencies are not explicitly stated.
- The included Java SSH client has been deprecated and removed from the layout. Customized remote kernel configurations now depend on a local SSH command.
- TestResultObject has been deprecated and replaced with the new TestObject.
- The parameter "ModelForm" in SolidMechanicsPDEComponent has been renamed to "SolidMechanicsModelForm". The "ModelForm" parameter now serves exclusively for distinguishing conservative from non-conservative convection in all PDE components.
- The parameter "MaterialModel" in SolidMechanicsPDEComponent has been renamed to "SolidMechanicsMaterialModel".
- The default list of parallel kernels is now $DefaultParallelKernels, superseding $DefaultKernels. When Version 13.3 is first launched, any existing persistent setting for the old $DefaultKernels is migrated. Thereafter, $DefaultParallelKernels maintains its own persistent setting.
- The Highlighted wrapper is no longer removed by default when formatted output is used as input. Use the new option StripOnInput→True to restore the previous behavior.
- Replace has been made consistent with ReplaceAll, ReplaceAt and ReplaceRepeated by respecting the HoldAllComplete attribute of Association. Transformations are no longer automatically evaluated prior to being inserted into an association. Instead of lhs :> rhs, use the standard idiom lhs:>With[{new=rhs},new/;True] if you need to insert an evaluated transformation.
- PGN and FEN formats are obsolete. They are included in the Wolfram/Chess paclet in the Wolfram Paclet Repository.
- ImageSaliencyFilter now uses the "U2Net" method by default. The previous default was "ImageSignature".
- IdentityMatrix, DiagonalMatrix, ToeplitzMatrix, HankelMatrix and FourierMatrix now return structured array objects by default for larger matrix sizes instead of explicit lists. The previous behavior can be recreated by adding the option TargetStructure "Dense".
- The ChatTools paclet is deprecated and is no longer included with Wolfram products.
- ByteArray[{}] and ByteArray[""] will now return a ByteArray object rather than an empty list.
13.1 to 13.2
- Compiled function specification from symbol definitions now uses DownValuesFunction.
- The Julia data type conversion has changed. Julia configuration needs to be updated to make ExternalEvaluate["Julia",...] work. The updated configuration can be found in the Configure Julia for ExternalEvaluate workflow.
- Quantity operations now systematically distinguish temperatures, with units such as "DegreesCelsius", from temperature differences, with units such as "DegreesCelsiusDifference". Operations that might have been ambiguous in the past will now emit a message warning about the possible change of result.
- Successful evaluation of proof functions constructed by FindEquationalProof now gives Success results instead of True.
- The "JSON" structure in the second argument of ExpressionTree and TreeExpression has been updated to remove ambiguity. The children of a key with a list value are now represented as children of an intermediate unlabeled node.
- Expressions that exceed global limits such as $IterationLimit and $RecursionLimit now return a TerminatedEvaluation expression rather than attempting to return the original expression wrapped in Hold.
- FieldSize is no longer an option for ActionMenu.
13.0 to 13.1
- f@@@x is now interpreted as MapApply[f,x] rather than Apply[f,x,{1}]. Code that deals with unevaluated expressions or that is exported to be used by legacy versions may need to account for this difference.
- The clustering family (FindClusters, ClusterClassify, ClusteringComponents) now treats the syntax f[data,n] to signify that data has to be partitioned in exactly n clusters. To get back the old behavior that treated n as an upper limit, one can use f[data,UpTo[n]].
- The structures in the second argument of ExpressionTree and TreeExpression have been reorganized, including the addition of a Heads option that replaces some of the previous cases. For the old behavior of "Subexpressions" and "Atoms", use Heads True. Held structures also now wrap subexpressions in HoldComplete rather than HoldForm.
- Specifications that extract multiple subtrees at one level, such as TreeExtract[tree, {All, 1}], now retain the data at that level for consistency with Extract.
- TreeFold[f,tree] now gives TreeFold[ {f,#&},tree]. Use TreeFold[{f,f[#,{}]&},tree] for the old behavior.
- Following the distinction between x and x[], several tree manipulation functions now distinguish between Tree[data,None] and Tree[data,{}].
- Path tour specification syntax has been superseded by sampling a function for TourVideo.
- ConcaveHullMesh now selects cells of dimension d, where d is the embedding dimension of the points.
- CellDingbat no longer places the dingbat relative to the contents, but now places it relative to the left edge of the CellFrame. Instead of indirectly relying on the CellFrameMargins option to shift the dingbat's position, the new CellDingbatMargin option should be used (including setting its value negative to bring it closer to or inside the frame).
- "ColorSpace" import element for the following formats has changed in 13.1: GeoTIFF GrayLevel -> Grayscale GIF RGBColor -> RGB HEIF RGBColor -> RGB JPEG RGBColor -> RGB OpenEXR RGBColor -> RGB PNG RGBColor -> RGB TIFF RGBColor -> RGB WebP RGBColor -> RGB
12.3 to 13.0
- The default typesetting of colors evaluated and saved in a 13.0 kernel will not display properly if the notebook is opened in a front end before 12.2.
- Notebooks and preference files now save associations using the < > syntax rather than the Association syntax. Notebook front ends before 10.0 will report syntax errors. This can make it difficult to run such front ends on the same system as 13.0 because, by default, the old and new FEs will share the same automatically managed preferences file in $UserBaseDirectory/FrontEnd/init.m. If this is an issue, you can force the usage of versioned preferences files by evaluating: CurrentValue[$FrontEnd, VersionedPreferences]=True
- GeoGraphics[] now produces a map of the world instead of a local map. Previous behavior can be obtained with GeoGraphics[Here].
- "TraversalOrder" option of TreeSelect has been replaced with the new "TreeTraversalOrder" option, which supports the previous values. The default has been changed from "PostOrder" to Automatic, which is functionally equivalent.
- TreeMap[f, tree, levelspec "Tree"] has been deprecated. The old behavior of TreeMap[f, tree, {0, Infinity} "Tree"] is available as TreeMap[f, tree, {0, Infinity} "OriginalSubtree"].
- TreeData and TreeChildren no longer take an optional second argument. Use TreeExtract[tree, pos, TreeData] for the old behavior of TreeData. Similarly for TreeChildren.
- The internal structure of SparseArray has been changed. It is now treated as a raw object for purposes of pattern matching.
- AbsoluteOptions has been reimplemented to be more accurate, and the form returned for a particular option may be different now.
- GenerateSymmetricKey Method suboptions "InitializationVector" and "BlockMode" have been deprecated in favor of equivalent suboptions for Encrypt Method.
- The experimental FrameFitting option has been renamed to ConformationMethod. The option works with the following functions: VideoTranscode, VideoJoin, VideoInsert and VideoReplace
- CloudExpression no longer supports linear indexing of Association.
- Support for bundled R installations in RLink on Linux has been discontinued.
- The FullForm of DateObject at certain granularities no longer explicitly includes default values for the calendar or time zone.
12.2 to 12.3
- RemoteKernelObject has new and different ways to define kernel objects.
- Metafiles and Enhanced Metafiles are no longer supported on Windows.
- PIDData has been superseded by SystemsModelControllerData.
- EstimatorRegulator and LQGRegulator now return a controller whose inputs consist of all the deterministic inputs and measure outputs of the controlled system. The old behavior can be restored by specifying "EstimatorRegulatorFeedbackModel" as the method.
- NotebookObject and CellObject now use a UUID string instead of specific FrontEndObject values. Any code that uses these objects is unaffected.
- Header options (HeaderSize, HeaderStyle, etc.) for Dataset with cyclic specifications now start with the first labeled column. Previously, the unlabeled corner header was the first index.
- Import[file.stx,"LabeledData"] now returns an association containing NumericArray objects. Previous behavior can be accessed by specifying "LabeledDataLegacy" as the element upon import.
- Manipulate, FullDefinition and related functions no longer automatically pull in definitions from the System context and other built-in contexts. Use ExcludedContexts and IncludedContexts to customize which contexts to save.
- ExternalEvaluate commands that fail now return Failure objects with additional information instead of $Failed.
- GenerateSymmetricKey now uses the same Method suboptions as Encrypt. Method suboptions "InitializeVector" and "BlockMode" have been deprecated.
- OverwriteTarget→True can now be used with RenameDirectory to either change the name of a directory to an existing file (Windows) or change the name of a directory to that of an existing empty directory (Unix). Previously, these would result in errors.
- The Molecule properties "InChI" and "InChIKey" now return ExternalIdentifier objects instead of strings. Previous behavior can be restored by using the "ExternalID" property on ExternalIdentifier to retrieve the strings.
- Export now generates Version 5.0 or 7.3 "MAT" files instead of 4.
- Importing most "OpenEXR" elements, aside from "Image" or "ImageSize", now returns an association. Previously, they returned a list.
- AnimationDirection has been removed from AnimatedImage and animated formats.
- FindPeaks now uses Padding→"Reflected" instead of Padding→"Reversed". This was changed to avoid peaks that are outside of the input domain.
- Dataset options that can take a function f as the value, such as HeaderDisplayFunction and ItemDisplayFunction, now require that function to be of the form f[elem,position,data]. Previously, the third argument would need to be the dataset in question instead of the data it contains.
- Using Offset within AttachCell[obj,expr,post,dist] as dist has been changed to be more consistent with general use of the function Offset. That is, dx,dy in Offset[{dx,dy}d] are now interpreted as absolute displacements.
- Default specifications for Dashing and AbsoluteDashing now use CapForm["Butt"] unless otherwise specified.
12.1 to 12.2
- ValueQ has been redesigned to test for the presence of a definition regardless of whether the definition is used. Old behavior can be restored by specifying "Legacy" as the method.
- The keyboard shortcut for underscript is now + + , . The old shortcut ( + + 4) now belongs to the TEX assistant.
- NDSolve sparsity specification for the Jacobian has been changed. See Finite Element Programming for in-depth information.
- GPU computation using CUDA is no longer supported on macOS.
- The default element for Import[file,"PDF"] has been changed from Graphics to Image. Previous behavior can be accessed by specifying "PageGraphics" upon import.
- Import[file,"MP4"] and Import[file,"Ogg"] now use Audio or Video elements, depending on whether a video track exists.
- The default element for Import[file,"3DS"]has been changed from Graphics3D to MeshRegion. Previous behavior can be accessed by specifying "Graphics3D" upon import.
- VideoTrim now trims all tracks. VideoTracks, AudioTracks, SubtitleTracks, etc. options have been deprecated.
- VideoMapTimeSeries has superseded experimental function VideoTimeSeries.
- VideoFrameList and VideoExtractFrames now extract from the first track. The VideoTracks option has been deprecated.
- SpeechSynthesize now uses GeneratedAssetLocation to set storage location instead of Method.
- AtomQ of Molecule objects now returns True.
- AtomList, AtomCount, BondList, BondCount and MoleculeValue now use All as the default value for the option IncludeHydrogens. Old behavior can be restored by specifying "ExplicitOnly" as the option value.
- If a Graphics object has an ImageSizeMultipliers value other than 1, ImageSize→Automatic will not automatically resize the object when horizontally resizing the notebook window.
- A copy of the file commons-collections-3.1.jar is no longer included in DatabaseLink`.
12.0 to 12.1
- QuantityArray and SymmetrizedArray no longer return StructuredArray objects.
- Graphics3D and derived functions now use False as the default value for ControllerLinking.
- ControllerMethod was removed as an option for Graphics3D and derived functions, while Manipulate and derived functions use ControllerMethod→None as the default specification.
- VectorScale has been deprecated in favor of the options VectorScaling, VectorAspectRatio and VectorSizes for VectorPlot.
- The Properties option for custom Graph properties has been deprecated in favor of AnnotationRules, and PropertyValue has been deprecated in favor of AnnotationValue.
- URL has superseded GraphStore`IRI.
- CurryApplied and OperatorApplied have superseded the experimental function Curry.
- Most functions from the "PacletManager`" context are now in the "System`" context and fully documented, and the "PacletManager`" context is no longer on the $ContextPath.
- "Ogg" is now a video format, and the previously registered audio format has been renamed to "OggVorbis".
- "QuickTime" and "AVI" files now import as Video objects instead of a list of frame indices.
- ImageFileApply and ImageFileFilter now store their results in $WolframDocumentsDirectory/Image by default instead of in the current working directory.
- AudioCapture, AudioRecord and SpeechSynthesize now store their results in $WolframDocumentsDirectory/Audio by default instead of in $UserDocumentsDirectory.
- The symbol Splice has a new definition; its previous functionality can be accessed with FileTemplate.
- The default value of SphericalRegion in Graphics3D is now Automatic rather than False.
- A Molecule object constructed from a "SMILES" string will only explicitly contain those hydrogen atoms explicitly included in the input.
- Graph3D now sets the Method suboption "ShrinkWrap" to True rather than False.
11.3 to 12.0
- FinancialData now returns Quantity and TimeSeries objects by default. Old behavior can be restored by specifying "Legacy" as the method.
- Tetrahedron[] no longer autoevaluates and now gives a regular tetrahedron.
- PolyhedronData with the "Faces" property now returns a GraphicsComplex representation of faces, suitable for visualization using Graphics3D.
- GraphPlot, GraphPlot3D, LayeredGraphPlot and TreePlot have a new default plot theme.
- The operator precedence of < - > was changed to match the precedence of (\[ TwoWayRule]).
- "CSV" and "TSV" export a full array now by default. Old behavior can be restored by specifying False for the option "FillRows".
- Importing "FITS" file types now returns an Association by default for both single- and multi-dataset files.
- Image switched from "Real64" to "Real32" as the default type.
- Total no longer works on expressions with an arbitrary Head.
- SkinStyle has been renamed to AnatomySkinStyle, and AnatomyForm has been renamed to AnatomyStyling.
- "MXNet" has deprecated the following import options: "RawArrayAssociation", "RawArrayList".
- Syntax changes to GraphPlot, GraphPlot3D, LayeredGraphPlot and TreePlot. Options specified with the older syntax have been deprecated.
- EdgeLabeling, EdgeRenderingFunction, Method, PackingMethod, VertexCoordinateRules, VertexLabeling and VertexRenderingFunction options for GraphPlot have been deprecated.
- CompanyData has deprecated the property "TotalFunding" and renamed the property "Revenue" to "TotalRevenue".
11.2 to 11.3
- Numerical calculations with machine-precision numbers no longer automatically switch to arbitrary-precision numbers in cases of underflow. The "CatchMachineUnderflow" system option has been removed.
- Input criterion and syntax for FindFaces has changed, and it now returns Rectangle objects.
11.1 to 11.2
- Rasterize now returns an Image by default.
- TwoWayRule () is parsed as \[ TwoWayRule] instead of UndirectedEdge for symbols other than Graph.
- TaskObject has superseded ScheduledTaskObject and SessionSubmit has superseded CreateScheduledTask.
11.0 to 11.1
- Graphics primitives are now more strict with regard to the depth of their location specification.
- Over 550 new functions added.
- The syntax of MovingMap has changed.
- Default font for input and output cells has changed to Source Code Pro on Mac, Consolas on Windows, and Bitstream Vera Sans Mono on Linux distributions.
- Splice has been superseded by FileTemplate.
- 700 new functions have been added.
- #x and #"x" now parse as Slot["x"] instead of #1*x and #1*"x", respectively.
- Dispatch objects are now atomic.
- DateDifference now returns a Quantity expression instead of a Real.
- GeoDistance and GeoDirection now return a Quantity expression.
- WeatherData returns a Quantity expression.
- Klingon character support has been removed.
- NSolve returns the same solution several times to indicate its multiplicity.
- Majority of Combinatorica functionality package is built into the Wolfram System.
- Default Plot styling has been updated with new colors.
- Image objects are now atomic.
- Solve can now return ConditionalExpression objects, rather than just one particular branch of the inverse.
- Legend functionality has been overhauled.
- Ordering of Permute has changed to follow standard conventions.
- 500 new functions have been added.
- Hash no longer includes quotation marks when calculating hashes of strings.
- Over 400 completely new built‐in objects have been added, some of whose names may conflict with names already being used.
- For raster image formats, Import[file] now returns Image[…] instead of Graphics[Raster[…]] to take advantage of the new image processing functionality. Use Import[file,"Graphics"] to import file as a Graphics expression.
- For more precise expression structure, Import[file,"XML"] and Export[file,"XML"] now always import and export symbolic XML expressions only. Import["file.xml"] will still determine the XML format automatically as in Mathematica 6.
- To allow for more diverse interactive controls, the option ActionDelay has been renamed TooltipDelay. The usage is unchanged.
- Over 800 completely new built‐in objects have been added, some of whose names may conflict with names already being used.
- The graphics functionality has significantly changed. For compatibility purposes, use <<Version5`Graphics` to restore graphics capabilities from Mathematica 5. To restore the Mathematica 6 graphics capabilities, use <<Version6`Graphics`.
- The output form of a Graphics or Graphics3D object is now the rendered graphic rather than an output such as ⁃Graphics⁃.
- $DisplayFunction is now set to Identity, so that no side effect happens by default when evaluating a graphic. To produce a side effect similar to Version 5 output, you can use the Print function to print the graphic.
- The default font in graphics has changed from Courier to Times.
- GraphicsArray has been superseded by GraphicsGrid and Grid.
- The default for AspectRatio in Graphics and ParametricPlot is now Automatic.
- The PlotDivision option for Plot has been superseded by MaxRecursion.
- The PlotJoined option for ListPlot has been superseded by ListLinePlot.
- Plot3D[{f,s},{x,xmin,xmax},{y,ymin,ymax}]: the shading specification s has been superseded by MeshShading.
- The option HiddenSurface->False has been superseded by PlotStyle->FaceForm[ ].
- ContourGraphics has been superseded by ListContourPlot and GraphicsComplex.
- DensityGraphics has been superseded by ListDensityPlot and GraphicsComplex.
- Plot3D and other 3D plotting functions now emit GraphicsComplex rather than a raw list of Polygon primitives.
- ListPlot now aggregates lists of points into a single Point primitive.
- The MeshRange option has been superseded by DataRange.
- DensityPlot and ListDensityPlot by default now do not draw meshes.
- ListPlot3D[array,shades] has been superseded by MeshShading.
- SurfaceColor in 3D graphics has been superseded by explicit color and the directives Specularity and Glow.
- Lighting now supports a syntax for specifying different kinds of light sources, including spotlights, point light sources, directional lighting and ambient lighting.
- The graphics primitive PostScript is no longer supported.
- The options RenderAll and PolygonIntersections are no longer supported.
- Rectangle[{xmin,ymin},{xmax,ymax},graphics] has been superseded by Inset.
- StyleForm and StylePrint have been superseded by Style.
- TextStyle has been superseded by the general BaseStyle mechanism.
- SequenceForm has been superseded by Row.
- 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,{x0,x1}}] 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 Wolfram Symbolic Transfer Protocol (WSTP) LinkProtocol option when connecting different computer systems is now "TCPIP" rather than "TCP".
- 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 x∈y 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.
- 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 xy 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,{g2,g3}] now takes g2 and g3 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.
- 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 WSTP.