TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes...

31
TIBCO ® Enterprise Runtime for R Release Notes Software Release 5.1.0 May 2020 Document Updated: July 2020

Transcript of TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes...

Page 1: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

TIBCO® Enterprise Runtime for RRelease NotesSoftware Release 5.1.0May 2020Document Updated: July 2020

Page 2: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Important Information

SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCHEMBEDDED OR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY (ORPROVIDE LIMITED ADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE. THEEMBEDDED OR BUNDLED SOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BY ANYOTHER TIBCO SOFTWARE OR FOR ANY OTHER PURPOSE.

USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS ANDCONDITIONS OF A LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTEDSOFTWARE LICENSE AGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THECLICKWRAP END USER LICENSE AGREEMENT WHICH IS DISPLAYED DURING DOWNLOADOR INSTALLATION OF THE SOFTWARE (AND WHICH IS DUPLICATED IN THE LICENSE FILE)OR IF THERE IS NO SUCH SOFTWARE LICENSE AGREEMENT OR CLICKWRAP END USERLICENSE AGREEMENT, THE LICENSE(S) LOCATED IN THE “LICENSE” FILE(S) OF THESOFTWARE. USE OF THIS DOCUMENT IS SUBJECT TO THOSE TERMS AND CONDITIONS, ANDYOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF AND AN AGREEMENT TO BEBOUND BY THE SAME.

ANY SOFTWARE ITEM IDENTIFIED AS THIRD PARTY LIBRARY IS AVAILABLE UNDERSEPARATE SOFTWARE LICENSE TERMS AND IS NOT PART OF A TIBCO PRODUCT. AS SUCH,THESE SOFTWARE ITEMS ARE NOT COVERED BY THE TERMS OF YOUR AGREEMENT WITHTIBCO, INCLUDING ANY TERMS CONCERNING SUPPORT, MAINTENANCE, WARRANTIES,AND INDEMNITIES. DOWNLOAD AND USE OF THESE ITEMS IS SOLELY AT YOUR OWNDISCRETION AND SUBJECT TO THE LICENSE TERMS APPLICABLE TO THEM. BY PROCEEDINGTO DOWNLOAD, INSTALL OR USE ANY OF THESE ITEMS, YOU ACKNOWLEDGE THEFOREGOING DISTINCTIONS BETWEEN THESE ITEMS AND TIBCO PRODUCTS.

This document is subject to U.S. and international copyright laws and treaties. No part of thisdocument may be reproduced in any form without the written authorization of TIBCO Software Inc.

TIBCO, the TIBCO logo, the TIBCO O logo, TIBCO Spotfire, TIBCO Enterprise Runtime for R, TERR,TIBCO Spotfire Server, TIBCO Spotfire Web Player, TIBCO Spotfire Statistics Services, S-PLUS, andTIBCO Spotfire S+ are either registered trademarks or trademarks of TIBCO Software Inc. in the UnitedStates and/or other countries.

Java and all Java based trademarks and logos are trademarks or registered trademarks of Oracle and/orits affiliates.

All other product and company names and marks mentioned in this document are the property of theirrespective owners and are mentioned for identification purposes only.

This software may be available on multiple operating systems. However, not all operating systemplatforms for a specific software version are released at the same time. Please see the readme.txt file forthe availability of this software version on a specific operating system platform.

THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.

THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICALERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESECHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCOSOFTWARE INC. MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S)AND/OR THE PROGRAM(S) DESCRIBED IN THIS DOCUMENT AT ANY TIME.

THE CONTENTS OF THIS DOCUMENT MAY BE MODIFIED AND/OR QUALIFIED, DIRECTLY ORINDIRECTLY, BY OTHER DOCUMENTATION WHICH ACCOMPANIES THIS SOFTWARE,INCLUDING BUT NOT LIMITED TO ANY RELEASE NOTES AND "READ ME" FILES.

2

TIBCO® Enterprise Runtime for R Release Notes

Page 3: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

This and other products of TIBCO Software Inc. may be covered by registered patents. Please refer toTIBCO's Virtual Patent Marking document (https://www.tibco.com/patents) for details.

Copyright © 2012-2020 TIBCO Software Inc. All rights reserved.

3

TIBCO® Enterprise Runtime for R Release Notes

Page 4: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Contents

Documentation and support services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

TIBCO Enterprise Runtime for R Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

New features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Changes in functionality, features, and compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Update or reinstall a version of TERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Package compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

Closed issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Known issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4

TIBCO® Enterprise Runtime for R Release Notes

Page 5: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Documentation and support services

How to Access TIBCO Documentation

Documentation for TIBCO products is available on the TIBCO Product Documentation website, mainlyin HTML and PDF formats.

The TIBCO Product Documentation website is updated frequently and is more current than any otherdocumentation included with the product. To access the latest documentation, visit https://docs.tibco.com.

System Requirements for Spotfire Products

For information about the system requirements for Spotfire products, visit http://spotfi.re/sr.

TIBCO Enterprise Runtime for R documentation

You can find the following documents for TIBCO Enterprise Runtime for R in the TIBCODocumentation Library.

● TIBCO® Enterprise Runtime for R Technical Documentation

● Language Reference (HTML)

● Differences Between TIBCO® Enterprise Runtime for R and Open-Source R (HTML)

● Release Notes (PDF)

● License Agreement (PDF)

You can also find links to CRAN package compatibility reports for this release on TIBCO Cloud™Spotfire®.

How to Contact TIBCO Support

You can contact TIBCO Support in the following ways:

● For an overview of TIBCO Support, visit http://www.tibco.com/services/support.

● For accessing the Support Knowledge Base and getting personalized content about products you areinterested in, visit the TIBCO Support portal at https://support.tibco.com.

● For creating a Support case, you must have a valid maintenance or support contract with TIBCO.You also need a user name and password to log in to https://support.tibco.com. If you do not have auser name, you can request one by clicking Register on the website.

How to Join TIBCO Community

TIBCO Community is the official channel for TIBCO customers, partners, and employee subject matterexperts to share and access their collective experience. TIBCO Community offers access to Q&A forums,product wikis, and best practices. It also offers access to extensions, adapters, solution accelerators, andtools that extend and enable customers to gain full value from TIBCO products. In addition, users cansubmit and vote on feature requests from within the TIBCO Ideas Portal. For a free registration, go to https://community.tibco.com.

For quick access to the TIBCO® Enterprise Runtime for R content, see https://community.tibco.com/products/terr.

5

TIBCO® Enterprise Runtime for R Release Notes

Page 6: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

TIBCO Enterprise Runtime for R Release Notes

The Release Notes for this product version are provided to inform you of new features, known issues,and issues from previous releases that have been closed.

These release notes are for TIBCO® Enterprise Runtime for R (TERR™) version 5.1. They cover Linux®,Apple macOS®, and Microsoft Windows® installations.

TERR™ is a high-performance statistical engine, which is compatible with open-source R. It can beembedded into a wide range of applications as an enterprise-grade alternative to open-source R, andcan run a wide array of packages from CRAN.

This release of TERR focuses on improving compatibility with open-source R.

Open-source R is available under separate open source software license terms and is not part of TERR.As such, open-source R is not within the scope of your license for TERR. Open-source R is notsupported, maintained, or warranted in any way by TIBCO Software Inc. Download and use of open-source R is solely at your own discretion and subject to the free open source license terms applicable toopen-source R.

New featuresThe following features have been added to version 5.1.0 of TERR.

Compatibility with open-source R version 3.6.2

TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2.

Remember that changes in TERR 5.0 made for compatibility with open-source R 3.5.0 mean thatpackages compiled to work with R 3.4.4 or older must be recompiled to work with TERR 5.1.0.

Uploading SBDF files to a Spotfire library

The new function, SpotfireData::uploadSBDF, provides the functionality to upload to a Spotfirelibrary a Spotfire binary data file (SBDF) that is created in TERR.

Improved SPK tools

● The SPK created by the functions buildSPK and buildServerSPK now include Imports packages aswell as the previously included Depends packages.

● You can now create and upload multiple SPKs to a TIBCO Spotfire® Server deployment area.

When you upgrade to TERR version 5.1, we strongly recommend that you rebuild and redeploy anySPKs that were built with a previous version of TERR to take advantage of additional compatibilitywith newer package versions.

New implementation for R compatiblity

● The iconv function has a new option sub = "Unicode". If this argument is set to the string'Unicode', then any character that cannot be converted is turned into a string specifying its Unicodecode point, such as "<U+30A4>".

● approx and approxfun have a new argument: na.rm=TRUE. If this argument is set to FALSE, thendata with NA in the x or y vector is not removed. NAs in x cause an error. If an element of y is NA,then all predictions based on that element of y are NA.

● Added support for altrep objects of type logical, raw, and complex (which were added in R 3.6.0).

6

TIBCO® Enterprise Runtime for R Release Notes

Page 7: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

● Added a check.names argument with a default value of TRUE to stattran::importData. If thisargument is set to FALSE, then illegal characters (such as blanks, commas, parentheses, and so on) inthe variable names are not changed in the returned data.frame.

New implementation for Bioc compatibility

● We implemented the Rapi entries R_tryWrap and R_tryUnwrap. These functions are required toload the Bioc package matter.

● We implemented the built-in altrep "wrapper" classes wrap_logical, wrap_raw, and wrap_complex.These additions allow loading the Bioc package SharedObject.

New functions

The following functions have been added to packages that are provided in this installation of TERR.

Package Name Details

base .bincode This function bins a numeric vector. It is requiredby several packages, including the CRANpackages loo and spam.

base .External2 This function is required by recent versions of theCRAN package rlang.

base c.difftime This function is required by the CRAN packagelubridate.

base dontCheck This function returns the single input argumentwithout changing it. It is used in some packagesto evade CRAN checks. Added for open-source Rcompatibility

base ...length

...elt

These functions count the number of argumentsin ... or evaluate one of the arguments withoutevaluating any of the others.

base forceAndCall This function is required by the CRAN packagespurrr and sparklyr.

base function The function called function has been partiallyimplemented. It is required by recent versions ofthe CRAN package rlang, on which many otherpackages depend.

base grouping This function has been added for open-source Rcompatibility.

base list2DF This function has been added for open-source Rcompatibility. It provides a quick way to make a(possibly malformed) data.frame from a list ofvectors. This function was added to open-sourceR after R 3.6.1 was released.

7

TIBCO® Enterprise Runtime for R Release Notes

Page 8: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Package Name Details

methods className This function is added to improve compatibilityfor building the CRAN packages mhurdle,R2MLwiN, shinyboottrap2, shiny, rJava, bucky,estimatr, texreg, btergm, and MplusAutomation;also estimatr, which uses it at load time.

methods● S3Part

● S3Part<-

● as(x, 'S4')

● as(x, 'S3')

These functions are added for improved supportfor S4 classes inheriting from oldClass functions.

methods● removeGeneric

● removeMethods

These functions are required for the Bioconductorpackage Biobase.

SpotfireData uploadSBDF This function uploads an SBDF format file to alibrary directory on TIBCO Spotfire Server.

stats .splinefun This unexported function is needed for TERR toevaluate spline functions generated in open-source R by splinefun(). Some modelingfunctions in the the CRAN package gamlssrequire this.

tools● assertError

● assertWarning

● assertCondition

These functions are used by a few packages fortesting.

tools CRAN_package_db This function provides a data frame with one rowfor every package on CRAN. The columnsprovide information about each package.

tools pskill This function is required by the following CRANpackages.

● fscaret

● installr

● opencpu

● rite

● RSelenium

● Ryacas

● processx

8

TIBCO® Enterprise Runtime for R Release Notes

Page 9: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Package Name Details

tools psnice This function returns the current priority value(between -20 and 19) of the specified process. Ifthe process does not exist, or if its priority cannotbe accessed, then it returns NA_integer_.

tools Rdiff We have provided a rudimentary implementationfor package compatibility, as well as thecorresponding command line 'TERR CMD Rdiff'utility.

tools● SIGCHLD

● SIGCONT

● SIGHUP

● SIGINT

● SIGKILL

● SIGQUIT

● SIGSTOP

● SIGTERM

● SIGTSTP

● SIGUSR1

● SIGUSR2

These variables contain integer values for thecorresponding signals, which can be passed to thepsnice or pskill functions.

utils .S3methods This function is similar to utils::methods,except that utils::.S3methods does not collectS4 methods. This function is needed for loadingthe CRAN package forecast v8.10.

utils askYesNo This function is provided for increased open-source R compatibility. (Previously required forthe the CRAN package arkdb.)

utils argsAnywhere,

getAnywhere

These functions search attached packages, loadednamespaces, and S3 methods for the specifiedname.

utils getParseData,

getParseText

These functions are used by packages like theCRAN package lambda.r. The value produced bygetParseData is not exactly the same as in open-source R, because parse term ID numbers can bedifferent.

New R C API functions

The following R C API functions are implemented to improve package loading and compatibility.Additionally, over 100 Rapi entries have been implemented to support altrep compatibility. For more

9

TIBCO® Enterprise Runtime for R Release Notes

Page 10: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

information, see Changes in functionality, features, and compatibility. To see a complete listing of theRapi C API functions implemented in TERR so far, run the following code.library(terrUtils)implementedRapiEntries()

R C API function Description

call_R We do not recommend that new code use this function; however, itis required by a few older CRAN packages, such as rmutil.

DDVAL and SET_DDVAL This function is required for loading the CRAN package nseval.

double R_unif_index This function was added to open-source R 3.4.0 and is required byseveral packages.

MARK_NOT_MUTABLE This function is required for loading the CRAN package rlang that iscompiled with open-source R version 3.6.0.

R_ExecWithCleanup This function is needed to load the CRAN package processx 3.4.2.

R_GetCurrentEnv This function is required for loading v3.0 of the CRAN packageglmnetpackage.

R_RunExitFinalizers This function is required for the CRAN package TMB.

Rf_allocSExp This function is required to load the CRAN package igraph version1.0.1. The function now accepts types DOTSXP, LANGSXP, LISTSXP,PROMSXP, CLOSXP, and NILSXP, in addition to ENVSXP.

● REFCNT

● INCREMENT_REFCNT

● DECREMENT_REFCNT

● TRACKREFS

● DISABLE_REFCNT

● ENABLE_REFCNT

● ENSURE_NAMEDMAX

● ENSURE_NAMED

● SETTER_CLEAR_NAMED

● RAISE_NAMED

These functions are needed for accessing the NAMED/REFCNT field.

Changes in functionality, features, and compatibilityFrom release to release, we might change the functionality, deprecate, or remove features. In caseswhere product changes require migration procedures, we provide information for that purpose. Thefollowing changes have been made to TERR version 5.1.

Changes in functionality and compatibility

Version 5.1 of TERR was tested with open-source R version 3.6.2.

tibbrConnector deprecated

10

TIBCO® Enterprise Runtime for R Release Notes

Page 11: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

The TERR package tibbrConnector has been deprecated in version 5.1 and will be removed in a futurerelease.

Change to data class in Sdatasets:quakes.bay

The date column in the dataset Sdatasets::quakes.bay is now of class Date. Previously, it was the S-PLUS class dates.

Change to model.frame.default

The offset and weights arguments have been removed from model.frame.default - they are nowhandled as part of the ... arguments. This change affects the packages that usemodel.frame.default directly instead of using the generic model.frame function.

Other version updates

Version updates and version compatibility testing include the following.

● OpenSSL updated to version 1.1.1d (Included with TERR).

● Tested with JAVA version 11; however, any compatible version of Java can be used.

● open-source R version 3.6.2.

● RStudio Desktop and Server version 1.2.5042. For more information, see Configuring RStudio to useTIBCO® Enterprise Runtime for R in the TERR documentation.

TERR is no longer tested with Spark, KNIME, or Hadoop. See the TERR articles on the TIBCOCommunity site for more information about using these tools.

The following packages included with TERR require a bit-matching 32-bit or 64-bit version Java.

● parallel

● sjdbc

● terrJava

Additionally, if you want to use the rJava package, or any other CRAN package that requires access toJAVA_HOME, this information applies.

To use these packages, you must set the JAVA_HOME environment variable to a valid Java installationbefore you load the packages. You can set JAVA_HOME using TERR by calling the following in theconsole:Sys.setenv(JAVA_HOME="path_to_your_JRE_installation")

To check if the environment variable is set, call the following in the console:Sys.getenv("JAVA_HOME")

As of TERR version 4.1, for Windows and Mac installations, if the JAVA_HOME environment variable isnot set, TERR uses system info to identify and load the latest Java installed on the system.

Update or reinstall a version of TERRWhen you update to a more recent version of TERR, remove the previous version, and follow theguidelines to protect your installed packages.

Installing TERR over a previous TERR installation without removing it can cause unexpected failures.To remove TERR, follow the instructions for your operating system.

For a list of operating systems that TERR is supported on, see the TIBCO Enterprise Runtime for Rsystem requirements.

11

TIBCO® Enterprise Runtime for R Release Notes

Page 12: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

When you update to a new version of TERR, follow the guidance in "Package installation locations andrecommendations for updating" in the Package Management section of the TIBCO® Enterprise Runtimefor R Technical Documentation.

On Linux

● From the command line, run the command rm -rf <TERR_HOME>, where TERR_HOME is theinstallation directory.

On Mac

● At the Terminal command prompt, run the following commands.sudo rm -rf /Library/Frameworks/TERR.framework /usr/local/bin/TERR /usr/local/bin/TERRscript /usr/local/bin/RStudio-TERR

If you are prompted to supply a password, provide the administrator password for the computer.

The following three specified items are removed.

● The TERR framework package.

● Scripts for running TERR.

● A script to launch RStudio running TERR.

On Windows

● From the Settings app, click Apps, and then from the Apps & features list, double-click run thelisting TIBCO Enterprise Runtime for R <version#>.

After uninstalling TERR, run the installer for the version of TERR you want to install.

Package compatibilityAs a standard part of each TERR release, we run all help examples provided in packages in theComprehensive R Archive Network (CRAN) in the TERR engine from the Windows, Linux, and Macplatforms.

Beginning with release 5.1, we also run all help examples provided in packages in the Bioconductor(BIOC) list.

Package loading improvements

● To see a list of issues fixed to improve package loading and performance, see Closed Issues.

● To see a list of Rapi C API functions and TERR functions implemented in this release to improvepackage loading and performance, see New features.

● To see a complete listing of the Rapi C API functions implemented in TERR so far, run the followingcode.library(terrUtils)implementedRapiEntries()

Package compatibility analysis in Spotfire

We report the results of these tests in visualizations that are available on TIBCO Cloud™ Spotfire® atthe following links. You can browse and review the results for the packages you want to use and theirCRAN Task Views. You can review the results run for every expression in every help file for everyCRAN package for the following platforms.

● CRAN packages (Windows platform)

12

TIBCO® Enterprise Runtime for R Release Notes

Page 13: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

● CRAN packages (Linux platform)

● CRAN packages (macOS platform)

The tests run against code examples in the help provide some guidance for determining rates ofsuccess. The accuracy of information collected depends on the number and quality of examples in thepackage reference topics. These analyses are not meant to be the definitive determination of exactcompatibility.

For more information about CRAN packages, see https://cran.r-project.org/web/packages/

TIBCO does not warrant, deliver, or support code or other material provided by the R Project forStatistical Computing, including but not limited to development tools and packages, and such code andother material does not constitute a part of TERR. Such material therefore is not within the scope ofyour license for TERR. Download and use of such material is solely at your own discretion and subjectto the free open source license terms applicable to such material. TIBCO recommends that you consult alegal professional concerning compliance with any free open source license terms applicable to suchmaterial, particularly if you plan to engage in redistribution of TERR and/or such material. (Please notethat TERR may be redistributed solely pursuant to a license that expressly grants such redistributionrights.)

Package compatibility summary in TERR

Alternatively, we provide a summary of our testing results on the TIBCO documentation site in thefollowing CSV-formatted files.

● CRANonTERR-Linux.csv

● CRANonTERR-Win.csv

● CRANonTERR-Mac.csv

TERR console code example

You can use the TERR console to quickly access a summary of the information. The following examplereturns the results for testing the help files for the CRAN package caret. You can change the example tomatch the repository, platform, and package of your choice.

1. Change the CSV file name to match the repository and the platform (Linux, Win, or Mac).

2. Remove the comment markers for the CSV file name.

3. Provide the name of the package you want to query.

# CRAN tests compatibility with this version of TERR##packageCompat <- read.csv("https://docs.tibco.com/pub/enterprise-runtime-for-R/5.1.0/doc/csv/CRANonTERR-Linux.csv", # stringsAsFactors=FALSE)##packageCompat <- read.csv("https://docs.tibco.com/pub/enterprise-runtime-for-R/5.1.0/doc/csv/CRANonTERR-Win.csv", # stringsAsFactors=FALSE)##packageCompat <- read.csv("https://docs.tibco.com/pub/enterprise-runtime-for-R/5.1.0/doc/csv/CRANonTERR-Mac.csv", # stringsAsFactors=FALSE)#subset(packageCompat, Package.Name=="caret")## (update)

The returned results resemble the following for the above example. Package.Name Version Status Percent.Successful Total.Executed1520 caret 6.0-86 Mostly successful 98.5% 201 Passed Failed Graphics Random.Numbers1520 198 3 17 104

13

TIBCO® Enterprise Runtime for R Release Notes

Page 14: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

This table shows how to read the results for this example. (Shows sample results for running theexample on Windows. Results for Linux and Mac can vary slightly.)

Column name Result

Package.Name caret

Version 6.0-86

Status Mostly successful

Percent.Successful 98.5%

Total.Executed 201

Passed 198

Failed 3

Graphics 17

Random.Numbers 104

Closed issuesThis table lists closed issues in version 5.1.0 of TERR. It reflects fixes for issues with packagecompatibility, open-source R compatibility, and general issues with TERR.

Key Description

TERR-3322 enquote(cl) now matches the behavior of open-source R: it evaluates cl andreturns a call to base::quote instead of a call to quote.

TERR-4598 Using rownames(a)<-newRowNames on a one-dimensional array without dimnamesno longer gives an error. This allows, for example, the predict method for gamobjects in the mgcv package to work.

TERR-4879 The file.copy function now has copy.date and copy.mode arguments.

TERR-5036 If an S4 object is passed to the functions (levels, levels<-, lengths, length<-,rep, xtfrm), and if there are no S4 methods for them, then S3 methods are called.

TERR-5141 The CRAN package adabag now loads, and all help file examples run without errorin TERR.

Boosting involves random numbers, so comparison with open-source Rresults is difficult.

TERR-5228 POSIXlt objects now can contain two new fields, zone and gmtoff. This changematches a change made in R-3.3.1.

TERR-5303 Testing with the CRAN package jvmr was requested. Research showed that thejvmr package was removed from CRAN on 2015-02-25, because its installationdepended on a web resource that became unavailable.

14

TIBCO® Enterprise Runtime for R Release Notes

Page 15: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-5420 Previously, the CRAN package igraph caused TERR to become unresponsive. Thisissue has been fixed.

TERR-5689 Setting row names for an xts object from the CRAN package xts resulted in theerror invalid 'dimnames' given for xts. This issue has been fixed.

TERR-5876 terrUtils::implementedRapiEntries now returns all embedding API functionsand other symbols.

TERR-5881 On Windows, TERR has been improved, especially for package installation, for thefollowing conditions.

● If the package is installed in a directory containing spaces or non-ASCIIcharacters.

● If the user's home directory contains spaces or non-ASCII characters.

● If the current working directory contains spaces or non-ASCII characters.

On Linux and Mac machines, some CRAN packages cannot be installed fromsource if any of the above conditions are true.

TERR-6080 print() no longer prints the "comment" attributes of objects.

TERR-6377 merge(dataFrameX, dataFrameY) now orders the rows in its output data.framethe same way open-source R does when the key columns contain duplicates.

TERR-6779 The environment variables HOME and R_USER are now defined on the Windowsversion of TERR to be the same as path.expand("~"). Some add-on packagesrequire these variables to be set.

TERR-6927 setRefClass no longer silently ignores any 'contains' classes that are notreference classes. This change fixes some problems using the CRAN package nabor.

TERR-6948 It is now possible to instantiate an S4 class defined with contains='data.frame'or contains='factor'.

TERR-6954 do.call(..., quote=TRUE) is now more compatible with open-source R.

TERR-6958 do.call(FUN, arglist) now properly passes missing argument objects inarglist to FUN.

TERR-7025 When the terrJava package is starting Java, and the JAVA_HOME environmentvariable is not set but the Java location can be found by other means on Windowsor Mac, this no longer generates a warning.

TERR-7135 mapply now handles missing values in its list arguments. For example, thefollowing now runs without error: mapply(typeof,list(quote(expr=))). Thischange fixes a problem calling the all_dims function in the CRAN packagetensorflow.

15

TIBCO® Enterprise Runtime for R Release Notes

Page 16: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7149 TERR has changed to use the R_MissingArg and R_UnboundValue objects the sameway that open-source R uses them. In particular, TERR now uses R_MissingArgrather than R_UnboundValue to represent the second argument of the expressionfn(1,,3). This change solves some errors when using the CRAN packages dplyrand rlang.

TERR-7151 In the data.frame method of merge(), the combination of all=TRUE and a non-NULL value of the incomparables argument gave incomplete results. Now itworks properly.

TERR-7174 Some problems building the CRAN package BEDMatrix from source have beenfixed.

TERR-7178 In some cases, setClass now allows a prototype with fields that are not in theclass. This change allows building the CRAN package gaselect from source.

TERR-7193 setClass now supports specifying the slot .Data to be "ANY". This change allowsbuilding the CRAN package aoos without error.

TERR-7195 When setGeneric is called with def=NULL, it uses an inherited generic function ifone is found.

TERR-7207 setRefClass now allows defining a class field as a function (which creates anactive binding) when a superclass defines the same class as "ANY". This changeallows building the CRAN package poweRlaw.

TERR-7242 deparse(quote(xx('='(x,y)))) now produces "xx((x = y))", to match open-source R.

TERR-7331 The default method for summary() no longer rounds its result. The rounding isnow done when the new print.summaryDefault() prints the output ofsummary.default().

TERR-7352 packageDescription(package, fields=fields) now gives correct results whenthe fields argument names a field that is not in the package's DESCRIPTION file.

TERR-7353 The median and median.default functions now have an ellipsis in their argumentlists, so you can add methods with additional arguments. The CRAN packageRmpfr requires this.

TERR-7354 Some CRAN packages (such as XVector) with Makevars files that used "patternrules" to override rules defined in TERRHOME/etc${R_ARCH}/Makeconf failed to doso. Now pattern rules in Makevars overrides rules in Makeconf. (Suffix rules donot.)

We do not recommend this practice, but a few packages on CRAN do so.

16

TIBCO® Enterprise Runtime for R Release Notes

Page 17: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7357 The Makeconf file in TERR_HOME/etc now defines COMPILED_BY=gcc-4.9.3 soCRAN packages, such sf, that use the precompiled libraries in https://github.com/rwinlib/gdal2/archive can be installed. If this value ofCOMPILED_BY is inappropriate, it can be overridden by the value of theenvironment variable OVERRIDE_COMPILED_BY. Also, the environment variableR_COMPILED_BY is set to gcc 4.9.3 to allow some packages to be installed fromsource.

TERR-7358 Previously, if you sourced a script in RStudio with TERR, and if the script defined afunction with a breakpoint and then called the function, RStudio would not behaveas expected. This behavior has been fixed. Now, the script is sourced and RStudioopens in debug mode.

TERR-7359 Previously, when you debugged a function in RStudio with TERR, and you selectedthe environment to be listed in the environment panel, TERR would report anerror.

TERR-7371 On Windows, the make macro RESCOMP is now defined to be windres, the resourcecompiler found in Rtools.

TERR-7372 within(list(X=1,Y=2), {Y<-NULL; Z<-NULL}) now returns list(X=1,Y=NULL,Z=NULL) instead of the old list(X=1).

TERR-7374 The C API function Riconv_open() now treats the encoding "" the same waybase::iconv() does: to mean the default encoding (which is always UTF-8 inTERR). The CRAN package processx requires this.

TERR-7377 On macOS, .Platform$pkgType (hence the default value ofgetOption("pkgType")) is now "mac.binary.el-capitan" instead of theprevious "mac.binary.mavericks".

TERR-7378 Lists of scalar POXIXct objects can now be compared to one another.as.list(POSIXlt_object) now makes a list of length(POSIXlt_object), eachelement being a scalar POSIXlt object.

TERR-7379 as.difftime now has a default method that treats character or numeric data withan otherwise unknown class. This behavior is now the same as it would treatclassless versions of the data.

TERR-7382 [[<-.data.frame can now be called from as.data.frame methods to modify thenewly created data.frame. Previously this could result in a column named "NA.".

TERR-7383 The exponentiation operator, ^, for data.frames, now returns a data.frameinstead of a matrix.

TERR-7388 The processes created by parallel::makeCluster are killed when the lastreference to the cluster is garbage collected.

TERR-7389 Many operations in dplyr-0.8.x.y, including mutate(grouped_tibble), had errorsof the form "Error in .Call() : argument "a" is missing, with nodefault", where 'a' is the name of a column of the input data.frame or tibble.This error is now fixed.

17

TIBCO® Enterprise Runtime for R Release Notes

Page 18: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7394 Sys.timezone() now returns the Olson name for the time zone (for example, "US/Pacific", not the short display name that encodes the time zone and currentdaylight/standard time status (for example "PDT" or "PDT").

TERR-7397 In tapply(), using FUN=NULL is now equivalent to omitting the FUN argument.Previously, FUN=NULL gave an error.

TERR-7398 tapply() now supports the default argument. It also deals better with the casewhere X=raw().

TERR-7399 The person() function, which is used in DESCRIPTION files, formats commentslabeled "ORCID" as links to the orcid.org website.

TERR-7407 S4 method dispatch does not automatically evaluate a method argument if all ofthe generic's methods specify that argument class as "ANY" (except for the firstsignature argument: that is always evaluated). This change allowsS4Vectors::within to work correctly.

TERR-7409 The c function now works on difftime objects as it does in R, returning a singledifftime object with all times in a single choice of units.

TERR-7411 as.POSIXlt.POSIXct and as.POSIXct.POSIXlt no longer round to the nearestmillisecond when converting between POSIX time formats. However,as.POSIXlt.character, hence as.POSIXct.character, continue to round to thenearest millisecond when given strings with more than 3 digits after the decimalpoint in the seconds place.

TERR-7414 If the registerS3method function cannot find an appropriate S3 method table inthe envir environment, it uses the environment of the generic function, adding amethod table if it does not exist. This change fixes a problem using methodsregistered when loading the CRAN package lubridate.

TERR-7415 zip(), unzip(), tar(), and untar() now accept, but ignore, the value"internal" for the name of the executable used to package or unpackage the files.

TERR-7418 'nls' objects made with open-source R can now be printed by TERR.

TERR-7419 The R API function Rf_defineVar(symbol, value, envir) now removes symbolfrom the environment envir if value was R_UnboundValue. Previously, the boundsymbol was set to R_UnboundValue, which caused problems in dplyr::mutate(),among others.

TERR-7421 The select and mutate functions in the CRAN package dplyr (version 0.8.01) nowwork.

TERR-7422 The function local(on.exit(expr)) now sets the exit expression in the frame ofits caller, which is required for "scoped bindings" in the CRAN package rlang.

TERR-7425 The R C API functions R_namesget, R_dimget, and R_dimnamesget now copy allof the attributes from the input object to the output object, altering only the names,dim, or dimnames attribute, respectively. Previously, they dropped the otherattributes.

18

TIBCO® Enterprise Runtime for R Release Notes

Page 19: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7426 is.na(NULL) no longer displays a warning about NULL not being a vector.

TERR-7427 The R C API function Rf_copyMostAttributes(from,to) now retains theattributes of to that are not overwritten by the non-length-dependent attributes offrom. Previously, the attributes of to were removed.

TERR-7428 Calling an abort restart no longer generates warnings in theinternal .stopInvokeAbort function

TERR-7429 The function identical() now considers data.frames with a row.names attributeassigned as any of c(NA_integer_,n), c(NA_integer_,-n), and seq_len(n) thesame for all integer n. Previously, this was so, except for n in {0,1,2}.

TERR-7430 The functions rank(x) and sort.int(x, index.return=TRUE) now work onfactors.

TERR-7435 RinR::RGraph() now uses all of its deviceArgs argument when starting the Rgraphics device driver. Previously, RGraph used only the deviceArgs height andwidth components.

TERR-7436 Calling parent.frame, substitute, and sys.call from the function FUN called bylapply, sapply, vapply, or mapply now produces values more similar to those inopen-source R. In particular, eval(substitute(x),parent.frame()) works inmore situations, which fixes some problems using the CRAN package data.table.

TERR-7437 Fitting a binomial glm model no longer warns about non-integer counts if thecounts are integers but weights times counts are not integers.

TERR-7438 When install.packages() installed a source package, it would not copy datafiles with the file extension .xz to the installed data directory. It now does.

TERR-7439 When a package is attached, TERR no longer attempts to execute its .First.libfunction. When a package is detached, the .Last.lib function is executed only ifthere is no .onDetach function, and the .Last.lib is exported from the package.TERR refuses to install a source package that lacks a NAMESPACE file.

TERR-7441 The text in TERR CMD INSTALL --help has been brought up to date. All validarguments are described.

TERR-7442 When TERR is started in script mode using bin/TERRscript, the methods packageis now attached by default. This change follows a change made in R-3.5.0.

TERR-7443 TERR no longer reuses constant zero-length vectors for integer(0), double(0),and so on, which solves problems when using data.table v1.12.2.

TERR-7446 On Windows, system(command, intern=FALSE) no longer gives a warning if thecommand's exit status is not 0. This change is for consistent behavior with open-source R, and with the Linux and Mac versions of TERR.

TERR-7451 The 'raw' method all.equal() no longer gives an error if the class of one of itsarguments has an as.integer method that can return NA.

19

TIBCO® Enterprise Runtime for R Release Notes

Page 20: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7456 within.list now puts elements from its data argument first and new elementsafter them. It also now works when some elements of data are unnamed.

TERR-7467 projections is now an attribute of a bare aov object (one created byaov(projections=TRUE) without an error term). It remains a component of an aovobject inside an aovlist object (that is, one created by aoiv() with an error term).This behavior now matches open-source R usage.

TERR-7469 Previously, the protection stack entries (Rf_protect, Rf_unprotect,Rf_unprotect_ptr, R_ProtectWithIndex, R_Reprotect) handled NULL pointersdifferently in TERR than in open-source R.

TERR-7470 Calling STRING_ELT on a deferred-string altrep object now caches the calculatedstring in the altrep object, so it is GC-protected.

TERR-7471 The date- and time-related conversion functions as.POSIXlt and as.POSIXct nowcopy the 'names' attribute from their input to their output.

TERR-7474 Previously, for complex numbers with only one component being NA, formatwould return a string with leading spaces when they were not needed. This issuehas been fixed. For example, format(complex(real=NA,imaginary=12345)) nowreturns "NA", not " NA".

TERR-7479 The local function has been improved to prevent a spurious deprecated warningfrom nlme::nfGroupedData.

TERR-7482 The missing function is now a regular R function that can be passed to do.call,assigned to a variable, and so on. The missing function has also been changed tobehave the same as it does in open-source R in some obscure cases.

TERR-7489 Previously, packages could not register C-callable and R-callable C code under thesame name. The packages that used such code could get the wrong version,causing TERR to stop working unexpectedly. This problem has been fixed, andnow, for example, rlang::flatten() works properly.

TERR-7490 The latest version of the CRAN package vctrs (0.2.2, 2020-01-24) loads in TERR 5.1because a do-nothing version of the R API function R_CheckStack2 has beenadded to TERR. To address the problem of vctrs not loading for TERR-5.0, version0.1.0 of vctrs has been added to TRAN for TERR 5.0.

TERR-7491 When creating a namespace, TERR now adds a ".__NAMESPACE__." variable to thenamespace environment if it does not already exist, and references this variable inisNamespace and environmentName. This design allows some of the rlang testhattests to succeed.

TERR-7497 When you add or subtract Date and difftime objects, the difftime object is nowrounded to the nearest whole day. This now matches the behavior of open-sourceR.

20

TIBCO® Enterprise Runtime for R Release Notes

Page 21: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7498 When you serialize string vectors with RFormat=TRUE, a flag is now written forascii strings, matching open-source R. This change does not change the result ofreading these serialized objects, but it can change tests in the CRAN package vctrsthat generate a digest from an object.

TERR-7499 The dataClasses attribute in the output for model.frame now reports"character" (instead of "other") for character columns.

The function that maps a column to a string in dataClasses is now public and iscalled .MFclass, as in open-source R.

TERR-7500 finalizers registered with reg.finalizer or R_RegisterCFinalizerEx on anenvironment or external pointer are now run in the reverse order of when theywere registered. Previously, the run order was somewhat random. This changeallows packages like bigKRLS to run properly.

TERR-7501 data.frame(I(expr)) now names the column "expr" instead of "I(expr)".

TERR-7502 There were several problems with dataFrame[...] <- newValues whendataFrame or newValues contained data.frames or matrices. These are now fixed.

TERR-7504 When x is an object with an S4 class, deparse(x) and dput(x) now produceproper output, new("classname",...), instead of the previousstructure(S4, ..., class="classname").

TERR-7505 rowsum.data.frame now always puts character row names on the data.frame itreturns. Previously it attached integer row names in some cases.

TERR-7507 The function iconv now supports to="ASCII//TRANSLIT", "ASCII//TRANSLIT//IGNORE", and "ASCII//IGNORE". This support extends to writing to a file whoseencoding is specified as "ASCII//TRANSLIT", and so on.

TERR-7516 The function format(complexNumbers, trim=TRUE) now removes all spacecharacters. Previously, it could remove many inappropriate characters.

TERR-7517 The function cor(<double vector>, <integer vector>) could cause TERR tobecome unresponsive, or, in some cases, could give an incorrect value.

TERR-7519 read.dcf(file) would fail when it was given a file containing no data. Now, itreturns a zero-row matrix. This matches behavior in open-source R.

TERR-7520 deparse(rawVectorWithNames) no longer loses the names when parsed andevaluated. Also, print(rawVectorWithNames) now aligns names correctly withthe vector values.

TERR-7523 data.matrix(dataFrame) converts character columns to factors, and those factorsto integers (using as.integer). Previously, it converted character columns to NA,but now character and factor columns give similar results. This change follows achange in open-source R for R-4.0.0.

21

TIBCO® Enterprise Runtime for R Release Notes

Page 22: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7526 The promises created for the argument 'x' in lapply(1:5,function(x)...) aremarked as evaluated with a PRENV of R_NilValue, matching open-source R. Thischange fixes some problems calling rlang::enexpr and rlang::enquo withinlapply.

TERR-7530 deparse() and dput() now make text representations of language objects thatmore closely resemble those of open-source R, especially when deparsing if-else,for, while, and function calls.

TERR-7534 environmentName(x) now returns the empty string, not an error, when x is not anenvironment.

TERR-7535 Previous versions of TERR could not load certain packages (for example, survival,lambda.r) that contained srcref attributes on their functions and were installed byR-3.6.0 or later. The error would be "Error in lazyLoadDBfetch(key, rdbFile,rdx$compressed, refhook) : non-numeric argument to binary operator".This issue has been fixed.

TERR-7536 The fix.empty.names argument has been added to data.frame, and thefix.empty.names, col.names, and cut.names arguments have been added toas.data.frame.list. Those arguments now act as they do in R-3.6.1

TERR-7538 Both arguments of union, intersect, setdiff, and setequal are now passedthrough as.vector before the set operation is done.

TERR-7540 The default R serialization version has been changed from 2 to 3 (as was done in R3.6.0). Thus, calling the functions save, save.image, serialize, and saveRDS withthe argument RFormat=TRUE and version=NULL now uses version 3. This defaultcan be changed by setting the environment variables R_DEFAULT_SAVE_VERSION(for save and save.image) and R_DEFAULT_SERIALIZE_VERSION (for serializeand saveRDS) to "2".

When you create open-source R serialization files to be read by engines that do notsupport version 3 open-source R engines before R 3.5.0, and TERR engines beforeTERR 5.0), you must create the files explicitly specifying version=2.

TERR-7543 The native [ and [<- operators now access missing index arguments correctlywhen these arguments are passed through multiple function calls.

TERR-7544 RinR::REvaluate now always uses serialization version 2, not the default version3, for communicating with the R or TERR process that it spawns, so it may be usedwith older versions of open-source R.

TERR-7545 signif(x,digits=Inf) and round(x,digits=Inf) now return x instead of avector of NAs. Also, if digits is longer than x, then its attributes are copied to theresult, rather than copying the x attributes.

TERR-7546 A modification to methods::slot<- in TERR has corrected a problem withcreating a timeSeries object with the CRAN package timeSeries.

TERR-7548 Using calendar=TRUE when printing ts objects with frequencies other than 4 or 12now works as it does in R. Also, the .preformat.ts function is now available (butwe do not recommend it for general use).

22

TIBCO® Enterprise Runtime for R Release Notes

Page 23: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7550 [email protected] no longer removes object attributes when the .Data slot class is a classunion. This change fixes problems with using the CRAN package searchable.

TERR-7551 The library() function now warns about masking functions in previously-loadedpackages more in the way open-source R does. Mainly, the function does not warnabout S4 generic functions masking other functions of the same name. It alsoignores cases where a package copies a function from another package, changingonly its environment. Thus, the CRAN package Matrix loads with no warningsabout function name conflicts, and the CRAN package dplyr loads with fewerwarnings.

TERR-7552 The addNA argument has been added to the xtabs function, to match open-sourceR. addNA=TRUE ensures that there is a category called "NA" for each input columnthat contains NAs.

TERR-7554 rt() no longer returns NaN for negative values of ncp.

TERR-7555 The function options(list()) no longer stops with the message "list argumenthas no valid names". It now does nothing, but it returnsstructure(list(),names=character()).

TERR-7556 You can now replace elements of a data frame by subscripting with a two-columnmatrix of row and column numbers.

TERR-7557 The rgb function in the grDevices package now accepts character values for red,green, blue, and alpha.

TERR-7558 If the length function executes an S3 or S4 method that returns a scalar doublevalue that can be represented as an integer, it is converted to an integer.

TERR-7559 do.call('local',...) now works more like it does in open-source R.

TERR-7563 drop.terms and [.terms now properly treat formulas with -1 in them. They alsoproperly treat the optional attributes predvars and dataClasses.

TERR-7564 In situations where matrix multiplication would make the returned dimnameslist(NULL, NULL), it now makes them NULL.

TERR-7565 The functions lapply, sapply, and vapply now dispatch to S3 or S4 [[ methodswhen extracting elements from the X object.

TERR-7567 Previously, on Linux, install.packages would fail while making a shared libraryif there were spaces in the name of the TERR installation directory. This issue hasbeen fixed.

TERR-7568 The file etc/Makeconf now defines SHLIB_OPENMP_{C,CXX,F,FC}FLAGS=-fopenmp so that packages can use OpenMP for multithreading. In particular, afterbuilding the CRAN package data.table with TERR, it will be multithreaded.

TERR-7571 options(width=w) now coerces w to be an integer and stops if it is NA, too big, ornegative. The same is true for options expressions, deparse.width, digits, andmax.print.

23

TIBCO® Enterprise Runtime for R Release Notes

Page 24: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7573 Previously, zip(), tar(), unzip(), and untar() failed with a non-descriptiveerror message if the return value of tempdir() had a space in it. This could happenon Windows if the current user name contained a space. This issue has been fixed.

TERR-7574 Calling Sys.getenv in restricted execution mode (such as withinterrUtils::evalREX) is no longer permitted and generates an error.

TERR-7576 INSTALL now implements the --{with,without}-keep.source and --{with.without}-keep.parse.data flags. Unlike open-source R, TERR alwayskeeps the parse data if it keeps the source data, so --without-keep.parse.datahas no effect.

TERR-7577 nlminb now interprets the argument control=NULL the same as it doescontrol=list(), rather than giving an error.

TERR-7578 RStudio 1.2.5019 and later requires that the non-API R C functioncmdlineoptions() be present so it can be called when RStudio starts. TERR nowincludes a do-nothing function by this name so TERR can be used with RStudio1.2.5019 and later.

Information about a previous installation of TERR and RStudio can beretained in your registry. If you encounter this issue with TERR 5.1, thenrestart RStudio while simultaneously pressing the CTRL key. Thisdisplays a dialog box where you can specify the engine version to use.

TERR-7579 find.package("pkg") and system.file(package="pkg") now work when pkg isa loaded namespace but not on the search list and its directory is notin .libPaths().

TERR-7581 match(x, table) no longer calls S3 (or S4) methods of as.<mode(x)> whenconverting 'table' to the mode of 'x'. It does just the naive conversion. This fixessome issues with the CRAN packages hdf5r and bit64.

TERR-7582 encodeString(x) now calls as.character(x), which can dispatch to class-specific methods. It no longer copies the class of x to its return value. This changeresolves some issues with the CRAN package hdf5r.

TERR-7583 The R C API functions R_orderVector and R_orderVector1 have beenimplemented.

TERR-7584 The 'order' function now handles some cases where previously it could return anon-stable sort on a single vector, or produce an incorrect result when sortingmultiple vectors.

TERR-7585 deparse() no longer quotes vector names with a non-initial underscore (forexample, c(Case_A=1)).

TERR-7586 install.packages() now compiles the files in the src directory of a package inalphabetical order, unless overridden by the Makevars file. This change helps avoidproblems installing from source packages that use Fortran modules (for example,the CRAN package tseries).

24

TIBCO® Enterprise Runtime for R Release Notes

Page 25: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7590 bquote() now supports the argument splice=.

TERR-7596 Because of changes to the TERR S4 implementation, TERR can now build theCRAN package Matrix, and then load it and use it, rather than requiring a Marixpackage built with open-source R. Primarily, getClass now returns aclassRepresentation object whose @contains and @subclasses slots contain alldirect and indirect super/subclasses.

TERR-7599 A package's 'cleanup' script is now always called if you call INSTALL with --clean.Previously, the script would not be called if "." was not in the environmentvariable PATH.

TERR-7602 save correctly handles variables whose value is a missing argument when you usesave for serializing environments.

TERR-7603 install.packages now copies files from the inst directory before executing the Rcode in the R directory, so that R code can use system.file to find the copied files.This change allows the CRAN package knitr (for example) to install properly fromsource.

TERR-7608 write.dcf(x) does not alter the names of x if x is a data.frame, andprint.packageDescription does not alter the names of the entries in aDESCRIPTION file. Previously, both used altered names that were not valid R names.

TERR-7609 as.person("A Person, Another Person") now returns a 2-long list of persons,split at comma-space. Comma-spaces in the [role], <email>, and (comment) partsof the descriptions are ignored when doing the split.

TERR-7614 Installing the CRAN package gplots from source requires that a number of hiddenfunctions be present in the stats package. These hidden functions involve plottingdendrograms. Placeholder versions of these functions are now hidden in the statspackage so that gplots and packages depending on it can be installed.

TERR-7621 Previously, if you built the CRAN package lubridate in TERR, using the packagecould result in errors. Now, setOldClass does not redefine any system classes, andit does not give an error or warning, which matches the behavior of open-source R.This change prevents the errors in using the lubridate package if the package isbuilt in TERR.

TERR-7627 .Internal now supports the islistfactor function. This function should not beused, but some CRAN packages (such as IRanges) require it.

TERR-7629 When rows from a data.frame with integer row names df[i,] were selected, therow names on output data.frame would be converted to the data type character if iwere of data type character. Now, the integer row names are converted to the datatype character only when a row is selected more than once, or when nonexistentrows are selected.

TERR-7630 Some issues involving replacing columns of a data.frame by NULL or zero-lengthvectors with data.frame[,columns]<-value have been resolved.

25

TIBCO® Enterprise Runtime for R Release Notes

Page 26: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7632 When evaluating the replacement expression dataFrame[,j]<-value, ifdataFrame, or value had elements with empty names, then the result wouldreplace those empty names with "V#" (where # is the column number). Now, tomatch R, the "V#" names are added only to new columns that are added by thatreplacement expression, and then only when value has no names.

TERR-7633 The element "effective_user" has been added to the value returned bySys.info.

TERR-7634 The values returned by Sys.info() on Windows have been changed to match R inmore cases.

TERR-7635 order() and grouping() now wrap their calls to xtfrm(x) with as.vector(), sothat xtfrm need not produce a vector that the primitive order() and sort.list()can deal with. Rather, it just needs to produce something that as.vector tranformsinto such a vector. The BiocConductor package S4Vectors requires this feature.

TERR-7636 rank() now supports ties.method="last", which is the reverse ofties.method="first".

TERR-7643 Previously, mean(c(1,NaN)) returned NA. It now returns NaN. This change wasmade to match the results in open-source R 3.6.2.

TERR-7644 Previously, quantile(type=3, x) gave numeric results for scalar integer x. Now itgives integer results.

TERR-7646 The function getGeneric now allows its first argument to be a generic function ora native, in addition to a string. This change fixes an error that occurred whenusing == to compare two IRanges objects from the Bioconductor package IRanges.

TERR-7648 The lengths function now dispatches to S4 and S3 methods. This change preventsproblems when using the Bioconductor package IRanges.

TERR-7649 TERR now registers S3 methods in the package namespace environment, if thisenvironment contains the S3 generic function. This change allows zoo::as.Date tofind the method zoo::as.Date.ts, if the namespace has been loaded, but thewhole library has not been loaded.

TERR-7650 The deparse function now correctly extracts NULL slot values from S4 objects. Also,deparse in TERR now displays only the defined slots of an S4 object, ignoring anyother attributes, which matches the behavior of open-source R.

TERR-7652 For the function is.unsorted(x), if x is a non-vector S3 or S4 object, then todetermine if x is sorted, the function now invokes S3 and S4 methods for [, length,>, and >=. The function uses the is.na and length methods for any object with aclass. Previously, this determination was done by native C++ code that ignored anysuch R-code methods.

TERR-7654 data.frame(x) now passes the stringsAsFactors argument toas.data.frame(x) only when x is either a character vector or a list. Previously, italways passed that argument, which caused "unused argument(s)" errors insome as.data.frame methods in the Bioconductor package IRanges.

26

TIBCO® Enterprise Runtime for R Release Notes

Page 27: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7655 The functions setClass and setClassUnion now set class prototype objectscorrectly. This change fixes some problems when using TERR-built Bioconductorpackages like GenomicRanges.

TERR-7656 The function strptime now works correctly with S3 and S4 objects, explicitlycalling as.character before parsing the resulting strings.

TERR-7658 The ifelse() function can now process S4 objects with methods for [, as.vector,rep, and as(.,"logical") in the same way that open-source R does. This changeis required for ifelse() to work with S4Vectors::Rle objects.

TERR-7659 merge() is now considerably faster when there are many 'by' columns.

TERR-7662 Improved the handling of the R-compatible 16-bit NAMED/REFCNT field to supportdplyr::select with tidyselect 1.0.0 and vctrs 0.2.2.

TERR-7664 A change in dispatching to S3 methods from S4 objects now supports the CRANpackage dateTime, so that calling range(timeDate object) calls the S3 methodrange.timeDate.

TERR-7665 Converting an mts (multivariate time series) object to a matrix withas(mtsObject, "matrix") now creates a matrix with the dimensions and columnnames of mtsObject. Previously, it erroneously created a one-column matrix.

TERR-7666 Loading an R-built Bioconductor package Biobase into TERR caused an errorexecuting sampleNames(obj)<-.... This issue has been fixed.

TERR-7668 We have changed attributes(S4Object)<-NULL and class(S4Object)<-NULL toclear the S4 flag from the object. Also, we have implemented the NULL.for.noneargument for getDataPart.

TERR-7672 data.frame() now handles row.names with a class the same way that open-sourceR does. That is, row.names=I(1:n)) becomes c("1","2",...,"n").

TERR-7673 TERR now clones an object if it has multiple references before the object is passedto a user-defined replacement function. This change fixes an issue with theBioconductor package Biobase.

TERR-7684 The encoding CP65001 (UTF-8 in a Windows terminal) is now accepted by iconvand included in the value returned by iconvlist. Also, starting the TERR console ina Windows terminal with console code page 65001 initializes the console encodingcorrectly. A number of other encodings of the form CP<num> are defined as equal tothe encodings WINDOWS-<num>.

TERR-7687 The C compiler flag '-std=gnu99' had been in the CFLAGS macro defined inTERR_HOME/etc/Makeconf, but it has been moved to the CC macro to match open-source R usage. Previously, redefining CFLAGS in HOME/.R/Makevars could remove'-std=gnu99' from the command line so that SHLIB or INSTALL could not compileC99 code.

TERR-7689 The deparse function now correctly deparses pairlist tag symbols when thecontrol argument is either "quoteExpressions" or "all".

27

TIBCO® Enterprise Runtime for R Release Notes

Page 28: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Key Description

TERR-7691 file.symlink(from, to) now warns about (instead of stopping) each symlinkthat could not be made and always returns a logical vector the length of from thatindicates whether the corresponding symbolic link was made.

TERR-7693 plnorm(log.p=TRUE,...) is now more accurate in the tails of the distribution.

TERR-7694 model.frame(formula,data) now works when data is a "zoo" object or othermatrix-like object that does not explicitly inherit from matrix. Previously, it gavean error.

TERR-7697 Any function calling model.frame.default directly and passing in the na.actionargument from its own argument list could cause an error if the caller did notsupply the na.action argument. This issue has been fixed.

TERR-7698 The offset and weights arguments have been removed frommodel.frame.default - they are now handled as part of the ... arguments. Thischange affects the packages that use model.frame.default directly instead ofusing the generic model.frame function.

TERR-7710 When you attach a package that contains Rcpp modules, you no longer see themessage The following object(s) are masked _by_'R_GlobalEnv': .__PackageClassCache__. (It has never been a problem to havesuch an object in multiple locations.)

TERR-7711 The functions nrow, ncol, NROW, NCOL, dim, dim<-, dimnames, dimnames<- nowwork correctly on S4 objects that contain the "data.frame" class. This change fixesproblems with the Bioconductor package methylKit.

Known issuesThis section lists known issues in version 5.1.0 of TERR.

In this release, some open-source R functionality is not available, including graphics devices, and somefunctions from the base and stats packages. Likewise, S4 is not entirely compatible. The following tablelists additional known issues.

Issue Description

TERR-4993 On Linux, you cannot save TERR Command History to a file.

TERR-5488 If you receive the message "SSL certificate problem: unable to get localissuer certificate" when accessing SSL protected URLs (for example,https://), make sure that your system has the latest version of the certificateauthority database for your system. On RedHat 5, this should be `yum updateopenssl`. On RedHat 6, this should be `yum update ca-certificates`.

TERR-6422 Setting breakpoints in RStudio 0.99.903 with TERR on Windows can cause it tocrash. When a script is sourced, and if it has breakpoints set, RStudio for Windowscan crash. This crash does not occur when breakpoints are set inside a function andthe function is called.

28

TIBCO® Enterprise Runtime for R Release Notes

Page 29: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Issue Description

TERR-6576 If you try to use an RStudio feature that requires the rmarkdown package or theshiny package, and the required package is not already installed, then this processcurrently fails if RStudio is configured with the TERR engine. To work around thisproblem, at the command prompt, call install.packages() to install thermarkdown and shiny packages.

TERR-6812 Due to changes in open-source R version 3.5 and resulting compatibility changes inTERR 5.0, packages that are built with a version of TERR prior to 5.0 must be rebuilt.

● To install a binary package from a repository, always callinstall.packages(pkgname) from TERR. The install.packages functionfinds the correct binary version in the repository for your version of TERR.Manually downloading the binary package from CRAN can result in errorswhen you use it with TERR.

● To install a package from source, try installing it first with TERR (withinstall.packages in TERR or with TERR CMD INSTALL from a command line).

● To install a package from source that you cannot build with TERR, install thepackage with the version of open-source R tested with TERR.

TERR-7077 Certain packages, such as rJava, cannot be installed with TERR from source underCentos. If you encounter a package that does not install with TERR from source,then you can build the package using open-source R, and then install the binarypackage in TERR.

TERR-7727 When you view help files in Rstudio, some text in the help (for example, theArguments and the Value sections) might not be visible if you are using an RstudioEditor theme with a dark background.

TERR-7728 When you run TERR under Rstudio Server, if you end the session using File > QuitSession, the following message is displayed: Session Error, The previous Rsession was abnormally terminated due to an unexpected crash. Thisproblem can also occur when you open a project using the File > New Project or File> Open Project menu commands.

TERR-7820 Changes to Java 11 caused a failure accessing TIBCO Spotfire® Statistics Servicesfrom the parallel package running under TERR. (This is not an issue for TERRrunning with Java 8.) Affected functions include makeCluster(type="TSSS",...)and makeTSSScluster(...).

Changing the version of an SPK for Spotfire Server requires the spkName argument

If you are creating packages for the TERR service using the TERR package SpotfireSPK, and if youmanually edit the SPK (required for using version control), you must include the argument spkNamewhen you rebuild the server SPK. For example:buildServerSPK("ServerSPK.dcf", "ServerSPK.spk", spkName = "Official CRAN Packages")

The SPK name is the friendly name for the package that is displayed on the Deployments & Packagesapp on the Spotfire Server. If you do not supply the SPK name, then the build fails and the followingerror is shown.zip I/O error: Invalid argumentzip error: Could not create output file (<package-path>Windows 4e68f3d5.zip)Error: error calling zip command

29

TIBCO® Enterprise Runtime for R Release Notes

Page 30: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

Package search order

When you install a package using TERR, by default, TERR first checks for the package on TRAN, andthen checks on CRAN. TERR installs the first version it finds. This is different than open-source R,which installs packages according to the newest version number available on CRAN. This difference isby design, because occasionally a CRAN package update causes a break with TERR compatibility, sowe make available a tested version of the package on TRAN.

If you need to install one of these packages using open-source R (for example, to get source code onLinux), you can install the CRAN package, and then set options()$repos to install from only TRANbefore reinstalling the package.

See "Specifying an older package on TRAN" in the TIBCO® Enterprise Runtime for R TechnicalDocumentation for more information.

When running on RedHat Linux, TIBCO Enterprise Runtime for R processes spawned by theparallel package may immediately crash

We have seen a problem when running TERR on RedHat Linux with versions of Java earlier than1.7.0_40. If you call the makeCluster function in the parallel package to spawn new TERR processes,these processes may immediately crash with a fatal Java error. To test if this problem is occurring, trythe following:library(parallel)c1 <- makeCluster(1, outfile="")# create cluster with one spawned process# specifying outfile="" to print all outputc1 <- makeCluster(1, outfile="")clusterEvalQ(c1, 123)

If this problem is occurring, you see an error such as the following:> library(parallel)> # create cluster with one spawned process> # specifying outfile="" to print all output from the process> c1 <- makeCluster(1, outfile="")Creating 1 TERR cluster nodes at Tue Nov 19 11:12:57 2019> clusterEvalQ(c1, 123)1: #1: # A fatal error has been detected by the Java Runtime Environment:1: #1: # SIGSEGV (0xb) at pc=0x0000003ac2cbbfa5, pid=12649, tid=10750549121: #1: # JRE version: 7.0_13-b201: # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode linux-amd64 compressed oops)1: # Problematic frame:1: # C [libstdc++.so.6+0xbbfa5) __cxa_allocate_exception+0x551: #1: # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again1: #1: # An error report file with more information is saved as:1: # /a/seafiler01.na.tibco.com/vol/vol2/users/jdoe/hs_err_pid12649.log1: #1: # If you would like to submit a bug report, please visit:1: # http://bugreport.sun.com/bugreport/crash.jsp1: #Error in waitForClusterReady(cl) : some cluster nodes have crashed or stopped: all crashed

The workaround for this problem is to set the LD_PRELOAD environment variable to libstdc++.so.6.This can be done before TERR is started, or within TERR, before the parallel library has been loaded:> Sys.setenv("LD_PRELOAD"="libstdc++.so.6")> library(parallel)Loading required package: terrJava> c1 <- makeCluster(1, outfile="")Creating 1 TERR cluster nodes at Tue Nov 19 11:14:39 2019

30

TIBCO® Enterprise Runtime for R Release Notes

Page 31: TIBCO® Enterprise Runtime for R Release Notes...TERR 5.1.0 has changed to accommodate the changes made to open-source R version 3.6.2. Remember that changes in TERR 5.0 made for compatibility

> # create cluster with one spawned process> # specifying outfile="" to print all output> c1 <- makeCluster(1, outfile="")Creating 1 TERR cluster nodes at Tue Nov 19 11:15:24 2019> clusterEvalQ(c1, 123)1: TIBCO Software Inc. Confidential Information1: Copyright (C) 2011-2019 TIBCO Software Inc. ALL RIGHTS RESERVED1: TIBCO Enterprise Runtime for R version 5.0.0 for Linux 64-bit1: 1: Type 'help()' for help.1: Type 'q()' to quit.1: started engine node pid==174760 at Tue Nov 19 11:15:25 2019[[1]][1] 123>

31

TIBCO® Enterprise Runtime for R Release Notes