13.07.2015 Views

Caché Upgrade Checklists - InterSystems Documentation

Caché Upgrade Checklists - InterSystems Documentation

Caché Upgrade Checklists - InterSystems Documentation

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Developers3.2.14.7 jBase CHAIN HandlingThe MVBASIC CHAIN statement was not always correctly handled when doing jBASE emulation. CHAIN under jBASEemulation should not pass the default list (list 0) if that list is local or modified. When MVBASIC was initiated by anEXECUTE statement, then a CHAIN would always pass the default list. Now, the passing the default list is always disabledfor programs compiled under jBASE emulation.3.2.14.8 Evaluation Order For Boolean OperatorsThe evaluation order of the Boolean-and operators (AND, “&”) versus the Boolean-or operators (OR, “!”) in MVBASIChas been changed to agree with the MVBASIC specification. Previously, the MVBASIC conjunction operators (AND,“&”) had higher precedence than the disjunction operators (OR, “!”). Without parentheses an AND operator would beevaluated before an OR operator. Now the AND and OR operators have equal precedence; they will evaluated in left-torightorder in the absence of parentheses.3.2.14.9 Handling Of Division By ZeroBeginning with this version, the MVBASIC DIVS() and MODS() array functions now signals a error if eitherencounters a divide-by-zero error. This will end execution of the DIVS() function and execution will start searching for atrap handler. Previously, a divide-by-0 during a DIVS() array operation resulted in a message being sent to the operatorconsole log, a 0 being used for the array component in error and execution of the array divide continuing with the remainingelements.3.2.14.10 List Collections For MVENABLED Class Cannot Be EmptyThe index on a list collection in an MVENABLED class will always contain at least one entry. When the collection is empty,an indexed element value of NULL, and key value = 1 will be inserted into the index.3.2.14.11 DEFFUN CALLING Syntax ChangedThe syntax of the CALLING clause of a DEFFUN statement has been changed. The CALLING keyword can now be followedby either an identifier or a quoted string literal. If a quoted string literal is used, the first character of that quoted string literalmay be an “*” character. If the leading character is an “*:”• Under Unidata emulation, when a name begins with a leading “*”, the leading * is removed and the name is lookedup as a global name. It is an error if the global name is not found.• Non-Unidata emulations allow a function to have a leading “*” character in its name but the leading “*” does notmodify the function name lookup rules in these other emulations.3.2.14.12 PRINT ON Is Now Emulation-SpecificThis release adds MultiValue emulation differences for the use of the statementPRINT ON channel {EXPRESSION}Prior to this, the output would always go to a spooler print job regardless of the use of PRINTER ON or PRINTER OFF.Now, the action depends upon the emulation. For some emulations (Reality, jBASE, D3), the output will go to the screenif the application has not executed a PRINTER ON statement. For other emulations, the behavior remains the same, thatis, output to a spooled job.3.2.14.13 SPOOLER(2) Function Return ChangedIn previous releases, the SPOOLER(2) function call in MVBASIC returns 3 fields that are the same, for compatibility reasons.Beginning with this release, one of the duplicated fields (field 15 or MultiValue 15) is now the <strong>Caché</strong> user name that a user<strong>Caché</strong> <strong>Upgrade</strong> <strong>Checklists</strong> 69

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!