Compatibility Issues in Maple 7

The following is a brief description of the compatibility issues that affect users upgrading from Maple 6 to Maple 7.


Obsolete Packages and Functions


•

The record constructor has been renamed Record for consistency with other, similar constructors. For this release, the name record will continue to work, but is now deprecated in favor of the new spelling.



Numericsrelated Changes



By default, in the exact computation environment (i.e., no floatingpoint numbers or computations involved) the numeric events overflow and underflow cause the corresponding exception to be raised rather than an infinity or 0 to be returned. This is similar to the Maple 6 behavior for the division_by_zero numeric event, and as with that event, this behavior can be controlled by installing a numeric event handler. See NumericEvent and NumericEventHandler.


The UseHardwareFloats environment variable, which was Boolean valued (i.e., took only the values true or false) in Maple 6, now allows a third value, deduced, which is also the new default value. When UseHardwareFloats = deduced, hardware or software floats will be used for certain computations depending on whether the value of the environment variable Digits is less than evalhf(Digits).


The semantics of undefined have been slightly changed in order to deal with certain loop termination conditions. In particular, undefined = undefined returns true.



New Keywords and Names




Miscellaneous


•

The MeijerG function of Maple 6 was using a nonstandard definition of this function. As of Maple 7, this function now has a much more standard definition; Maple 6's variation of the function is still present in Maple 7, but under the name ModifiedMeijerG. See MeijerG for additional details.

•

The oneargument form of the save command, e.g., $\mathrm{save\; filename}$, is obsolete. The list of names to save must now be given explicitly.

•

The behavior of codegen[maple2intrep], codegen[C], and codegen[fortran] has changed. If these functions are used to translate a procedure f which calls another procedure g, then they can determine the return type of g accurately only if the return type of g is declared; otherwise, a default return type of float is assumed.

•

The codegen[C] function now generates standard math library function names in all cases, even when the precision=single option is provided. The new mode=single option must be used to generate single precision math function names such as ``logf''.

•

The codegen[fortran] function now produces generic math function names and double precision variables and constants as defaults.

•

To extend the size of factorials that can be computed, factorials are no longer evaluated at ``compiletime'' (during automatic simplification), and there is no longer any (practical) limit on the size of an integer argument to factorial. This change means that you can now delay factorial computations by using unevaluation quotes. Substituting into an unevaluated factorial expression now requires an evaluation to effect the computation. Small factorials are still computed in the kernel, but the builtin procedure factorial now calls a new library procedure Factorial to handle arguments that are not small integers.

>

length( 40000! ); # not possible in earlier releases of Maple

•

X11 resources on UNIX systems start with Maple 7.



No updtsrc Utility in Maple 7


•

There are no incompatibilities between the syntax of Maple 6 and Maple 7. Therefore, the updtsrc utility is not required for this release. For help porting code files from Maple versions prior to Maple 6 to Maple 7, please visit the Support section of our Web site, www.maplesoft.com.


