TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds...

19
TIBCO ® Enterprise Runtime for R Release Notes Software Release 4.4.0 September 2017 Two-Second Advantage ®

Transcript of TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds...

Page 1: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

TIBCO® Enterprise Runtime for RRelease NotesSoftware Release 4.4.0September 2017

Two-Second Advantage®

Page 2: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

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.

This document contains confidential information that is subject to U.S. and international copyright lawsand treaties. No part of this document may be reproduced in any form without the writtenauthorization of TIBCO Software Inc.

TIBCO, Two-Second Advantage, TIBCO Spotfire, TIBCO Enterprise Runtime for R, TIBCO SpotfireServer, TIBCO Spotfire Web Player, TIBCO Spotfire Statistics Services, S-PLUS, and TIBCO Spotfire S+are either registered trademarks or trademarks of TIBCO Software Inc. in the United States and/or othercountries.

Enterprise Java Beans (EJB), Java Platform Enterprise Edition (Java EE), Java 2 Platform EnterpriseEdition (J2EE), and all Java-based trademarks and logos are trademarks or registered trademarks ofOracle Corporation in the U.S. and other countries.

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, NOTALL OPERATING SYSTEM PLATFORMS FOR A SPECIFIC SOFTWARE VERSION ARE RELEASEDAT THE SAME TIME. SEE THE README FILE FOR THE AVAILABILITY OF THIS SOFTWAREVERSION 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.

Copyright © 2010-2017 TIBCO Software Inc. All rights reserved.

TIBCO Software Inc. Confidential Information

2

TIBCO® Enterprise Runtime for R Release Notes

Page 3: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Contents

Documentation and support services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

TIBCO Enterprise Runtime for R 4.4.0 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

New features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

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

Package compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

Closed issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Known issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3

TIBCO® Enterprise Runtime for R Release Notes

Page 4: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Documentation and support services

Documentation for this and other TIBCO products is available on the TIBCO Documentation site. Thissite is updated more frequently than any documentation that might be included with the product. Toensure that you are accessing the latest available help topics, visit:

https://docs.tibco.com

TIBCO Enterprise Runtime for R documentation

The following documents for this product can be found in the TIBCO Documentation 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)

The following documents for integrating with third-party products are also available in PDF format.

● Technical Note: Configure KNIME to use TIBCO® Entrprise Runtime for R

● Technical Note: Configure RStudio to use TIBCO® Entrprise Runtime for R

● Technical Note: Configure SparkR to use TIBCO® Entrprise Runtime for R

Product System Requirements

For a list of system requirements for this product and other TIBCO Spotfire® products, visit thefollowing web address.

http://support.spotfire.com/sr.asp

How to Contact TIBCO Support

For comments or problems with this manual or the software it addresses, contact TIBCO Support:

● For an overview of TIBCO Support, and information about getting started with TIBCO Support,visit this site:

http://www.tibco.com/services/support

● If you already have a valid maintenance or support contract, visit this site:

https://support.tibco.com

Entry to this site requires a user name and password. If you do not have a user name, you canrequest one.

How to Join the TIBCO Community

The TIBCO Community is an online destination for TIBCO Enterprise Runtime for R customers,partners, and resident experts. It is a place to share and access the collective experience of the TIBCOEnterprise Runtime for R community. The community site offers forums, blogs, and access to a varietyof resources. To register, go to the following web address.

https://community.tibco.com/products/terr

4

TIBCO® Enterprise Runtime for R Release Notes

Page 5: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

TIBCO Enterprise Runtime for R 4.4.0 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 4.4, September 2017.They cover Linux®, Apple Mac OS X®, 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.

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.

General improvements

This release of TERR focuses on improving performance, and improving compatibility with open-source R and CRAN packages.

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

This release of TERR focuses on open-source R compatibility, string manipulation, support fordebugging data functions in Spotfire, and ongoing performance improvements compared to open-source R.

Version updates and version testing include the following.

● OpenSSL included with TERR updated to version 1.0.2l.

● TERR tested with open-source R version 3.4.1.

● TERR tested with KNIME 3.4.0 (with CRAN package Rserve 1.7.3-0, for Windows 64-bit only). See Technical Note: Configure KNIME to use TIBCO® Enterprise Runtime for R for more information.

● TERR tested with Spark/SparkR 2.2.0 . See Technical Note: Configure SparkR to use TIBCO®

Enterprise Runtime for R for more information.

● TERR tested with the RStudio Desktop and Server version 1.0.153 . See Technical Note: ConfigureRStudio® to use TIBCO® Enterprise Runtime for R for more information.

● We tested with Apache Hadoop 2.7.3.

New functions in core packages

Package Function name Details

base grepRaw Used by the openssl and secret packages.

base startsWith,endsWith

These functions match suffixes and prefixes into each element of acharacter vector.

5

TIBCO® Enterprise Runtime for R Release Notes

Page 6: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Package Function name Details

base xtfrm works on data.frames in TERR the same way it does in open-sourceR: It converts the data.frame to a matrix with as.matrix() andcalls rank() on the result. (Certain CRAN packages, such asstringb, depend on this behavior; otherwise, it is not generallyuseful.)

stats medpolish Performs Tukey's median polish for two-way tables.

stats sigma Computes the estimated standard deviation of the residuals of afitted model.

tools toTitleCase Capitalizes significant words in a text string, in the manner of abook title.

Other implementations.

New implementation Details

The except argument implemented forthe NAMESPACE import command.

For example, import(Matrix, except=c("expm")).This argument is used by the spdep package.

The repeated=FALSE argumentimplemented for the URLencode function.

This argument fixes a problem running the h2o package(version 3.10.5.3) in TERR.

The run.dontrun and run.donttestarguments implemented for theexample() function.

This change was made to match the version in open-source R.

The srcfile argument implemented forthe parse function.

This argument should be an environment inheritingfrom the class "srcfile", usually made withutils::srcfilecopy() or utils::srcfile().

The keep.white argument implementedfor the write.dcf and read.dcffunctions.

This change was made to match the version in open-source R.

The gctorture2() function has a stubimplementation.

It does nothing except warn that it is unimplemented. Itis required to be present in order to test certainpackages.

compiler::mayCallBrowser() has astub implementation.

It is required by the foreach package. This functionalways returns FALSE, with the warning notimplemented.

The following R C API functions are included to improve package loading and compatibility.

● R_DoubleColonSymbol (All 31 of the R_.<name> Symbol entries listed in RHOME/include/Rinternals.h for R-3.4.0 are now exported by TERR, so TERR can load packages like rlang, whoseC files use them.)

● R_GetConnection added so the xml2 package (version 1.1.0, released 2017-01-06) loads.

● Rf_GetOptionWidth added so the readr package loads.

6

TIBCO® Enterprise Runtime for R Release Notes

Page 7: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

● Rf_GetOptionDigits

● getConnection

● R_ReadConnection

● R_WriteConnection

● SHALLOW_DUPLICATE_ATTRIB

● SET_PRENV

● SET_PRCODE

● SET_PRVALUE (Returns a promise object's current value without evaluating the promise, returningR_UnboundValue if the promise has not been evaluated.)

● PRSEEN

● SET_PRSEEN

TERR has been updated to load packages that call the Rapi entry R_registerRoutines in open-sourceR version 3.4. (This update addresses a change in the Rapi entry for open-source R; the packageversions are unchanged.)

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

See Package compatibility for more information about enhancements to this release of TERR.

Changes in functionality, features, and compatibilityFor release to release, we might change the functionality, deprecate, or remove features. In cases whereproduct changes require migration procedures, we provide information for that purpose. The followingchanges have been made to TERR version 4.4.0.

Changes in functionality

● TERR has been changed to work with the tibble package (version 1.3.1 or later). Because the tibblepackage uses the rlang package, to ensure compatibility, we changed TERR to store the ...arguments to a function in the ... variable in the function frame. Additionally, we completelyreimplemented the switch function to be more compatible with open-source R, and to support theidiom switch(.x,...) used in the rlang package.

● The dist() function now computes the "call" attribute with match.call() instead ofsys.call(). This change was made to match the behavior of open-source R.

● The formula method for all.equal() now checks that the attributes of the two arguments areessentially the same. Previously, the formula method ignored the attributes.

Migration and compatibility

This release of TERR has no migration issues.

The following packages supplied with TERR require a bit-matching 32-bit or 64-bit version of the JavaRuntime Environment (JRE), version 6 or later.

● parallel

● sjdbc

● terrJava

7

TIBCO® Enterprise Runtime for R Release Notes

Page 8: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

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 JRE 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 version 4.1, for Windows and Mac installations, if the JAVA_HOME environment variable is not set,TERR uses system info to identify and load the latest JRE installed on the system. TERR also alerts youto this detection and setting.

Package compatibilityAs a standard part of each TERR release, we run all help and vignette examples provided in packagesin the Comprehensive R Archive Network (CRAN) in the TERR engine from the Windows, Linux, andMac OS X platforms.

We report the results of these CRAN tests in the following locations.

● On the TIBCO Support website https://support.tibco.com, the FAQ CRAN Packages Compatible withTERR.

● On the TIBCO Documentation website https://docs.tibco.com/products/tibco-enterprise-runtime-for-r, you can download and search the following spreadsheets for your favorite packages.

— CRAN Package Compatibility Results for Windows (XLSX).

— CRAN Package Compatibility Results for Linux (XLSX).

— CRAN Package Compatibility Results for Mac (XLSX).

Alternatively, to examine the extent to which a given package is compatible with TERR on yourplatform, from the TERR console, you can run the following code (substituting the package of interestfor "caret").# tests compatibility with TERR 4.4.0 on Windows

packageCompat <- read.csv("https://docs.tibco.com/pub/enterprise-runtime-for-R/4.4.0/doc/csv/CRANonTERR-Win.csv", stringsAsFactors=FALSE)subset(packageCompat, Package.Name=="caret")## (update)

This table shows how to read the results for the caret package on the Windows platform

Column name Result

Package.Name caret

Version 6.0-73

Status Mostly successful

Percent.Successful 97%

Total.Executed 285

Passed 277

8

TIBCO® Enterprise Runtime for R Release Notes

Page 9: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Column name Result

Failed 8

Graphics 17

Random.Numbers 11

# tests compatibility with TERR 4.4.0 on Linux

packageCompat <- read.csv("https://docs.tibco.com/pub/enterprise-runtime-for-R/4.4.0/doc/csv/CRANonTERR-Linux.csv", stringsAsFactors=FALSE)subset(packageCompat, Package.Name=="caret")## (update)

This table shows how to read the results for the caret package on the Linux platform

Column name Result

Package.Name caret

Version 6.0-73

Status Mostly successful

Percent.Successful 97%

Total.Executed 285

Passed 277

Failed 8

Graphics 17

Random.Numbers 11

# tests compatibility with TERR 4.4.0 on Mac

packageCompat <- read.csv("https://docs.tibco.com/pub/enterprise-runtime-for-R/4.4.0/doc/csv/CRANonTERR-Mac.csv", stringsAsFactors=FALSE)subset(packageCompat, Package.Name=="caret")## (update)

This table shows how to read the results for the caret package on the Mac platform

Column name Result

Package.Name caret

Version 6.0-73

Status Mostly successful

Percent.Successful 98%

9

TIBCO® Enterprise Runtime for R Release Notes

Page 10: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Column name Result

Total.Executed 285

Passed 278

Failed 7

Graphics 17

Random.Numbers 11

The tests run against code examples in the help and vignettes provide information for determiningrates of success. For a description of each column, see the document CRAN Package Compatibility Results(XLSX).

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 loading improvements

See Closed Issues for a complete list of issues addressed for package improvements this release.

● To see a list of new Rapi C API functions implemented in this release, 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()

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

Key Summary

TERR-195,TERR-4446,TERR-5558,TERR-5575,TERR-6610,TERR-6611

Several issues with [[ and [[<- with non-scalar indices (such as x[[c(1,2,3)]])have been fixed.

TERR-2672 installed.packages() is now faster when a lot of packages are installed.

TERR-5536 Version 1.1.1 of the readr package works with TERR 4.4.0.

10

TIBCO® Enterprise Runtime for R Release Notes

Page 11: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Key Summary

TERR-5691 In TERR releases through TERR 4.1, calling sapply on a pairlist with missingvalues could give an error.

TERR-5938 If the stringi package was loaded from a path containing arbitrary Unicodecharacters on Windows, it gave the error ICU init failed:U_FILE_ACCESS_ERROR. To correct this error, TERR converts the DLL path to thecanonical Windows "short file name" before calling the R_init_stringiinitialization function.

TERR-6015,TERR-6665,TERR-6686

Previously, the first time an SSL connection was opened with the curl or RCurlpackage on Windows, there could be a significant pause, and the connection wouldsometimes time out. This pause has been greatly reduced.

TERR-6108 Closure objects are now checked correctly by the identical function when theyhave srcref attributes. Also, the Rapi entries SET_FORMALS, SET_BODY, andSET_CLOENV are now implemented correctly. (Previously they just generated awarning and did not modify the closure object).

TERR-6476 The behavior of operations between 0- and 1-length arrays and non-arrays havechanged to match the new behavior that is planned for release in open-source Rversion 3.4.

TERR-6538 The methods function has been extended so that it now collects both S3 and S4methods, and is more compatible with open-source R.

TERR-6576 If the rmarkdown or the shiny packages are not already installed, and you try to usean RStudio feature that requires one or both of them, RStudio prompts to installthem automatically. This process currently fails if RStudio is configured with theTERR engine. To work around this problem, at the command prompt, callinstall.packages() to install the rmarkdown and shiny packages.

TERR-6590 dump.frames(include.GlobalEnv=TRUE) now saves a copy of .GlobalEnv,not .GlobalEnv itself.

TERR-6591 Functions in the Summary group (min, sum, any, and so on) now give better errormessages if one or more of their arguments is missing.

TERR-6593 In some situations, executing break within a repeat loop could lead to the loopreturning its NULL result visibly, leading to this being printed. This issue has beenfixed.

TERR-6595 packageDescription(package) now reads the package description from Meta/package.rds, if it exists, instead of looking only at the DESCRIPTION file. (Readingthe ,rds file is faster, and a few packages such as nlme-3.1.130 depend on the Meta/package.rds being read.)

TERR-6596 The performance of the warning processing has been improved for the cases wherevectorized functions generate many warnings, or when you usesuppressWarnings.

11

TIBCO® Enterprise Runtime for R Release Notes

Page 12: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Key Summary

TERR-6603 Extracting elements (via [) from an expression object with a srcref attribute nowproduces an expression object with a srcref attribute (with srcref structures forthe selected elements).

TERR-6605 The Java methods TerrJava.engineExecute, TerrJava.evaluateInteractive,and TerrJava.evaluateToString caused the JVM to crash if they were passednull as the expression string. This has been fixed, so they treat cmd==null ascmd==''. The Java methods TerrJavaRemote.engineExecute,TerrJavaRemote.evaluateInteractive, andTerrJavaRemote.evaluateToString have also been fixed to treat cmd==null ascmd=='' (rather than giving NullPointerException).

TERR-6606 The parallel::makeTERRcluster function and the Java class TerrJavaRemotenow work correctly on Linux and Mac if TERR is installed in a path containingspace characters.

TERR-6607 The regular expression character class "[[:blank:]]" did not match the tabcharacter on Windows. It has been changed to match.

TERR-6608 TERR now allows S4 class union classes to contain ANY as a member class, viasetClassUnion(className, c('ANY',...)) or setIs('ANY', <classUnion>).

TERR-6609 When TERR loads a CRAN package, TERR processes the S4 classes and methodsdefined in the process. If an error processing a class or method occurs, TERR nowprints out the error and continues processing the package, rather than just stopping,possibly skipping some S4 classes and methods.

TERR-6612 The call objects returned by the sys.calls and sys.call functions now includethe 'srcref' attribute, if the original call contained one.

TERR-6617 levels(x) <- c("A", NA, "C") now removes the second level from the levels ofx, It also renames the first and third to "A" and "C").

TERR-6618 Fixed internal assertions and crashes that occurred while running the testthat testsin the dplyr package.

TERR-6619 Calling colnames(x) when there is a dimnames method for class(x) no longcauses TERR to crash.

TERR-6623 rbind.data.frame(1:5) now returns a one-row data.frame, as it does in open-source R.

TERR-6635 str() now prints the srcref-related attributes of expressions. It also prints theclass of an environment more nicely.

TERR-6639 col2rgb("transparent") now works as is does in open-source R.

TERR-6640 The parse() function now uses its srcfile argument. This argument should be anenvironment inheriting from the class "srcfile", usually made withutils::srcfilecopy() or utils::srcfile().

12

TIBCO® Enterprise Runtime for R Release Notes

Page 13: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Key Summary

TERR-6641 String encodings have been changed to match open-source R: If a string has all-ASCII bytes (with all byte values between 1 and 127), then the string encoding isforced to be unknown.

TERR-6642 When a data.frame, df, had zero rows and one used df["newColumn"]<-list(numeric()) to add a column, the column would not be added. Now it isadded.

TERR-6643 simplify2array(), used by sapply() and replicate() acts more like that inopen-source R in a variety of odd cases. In particular, replicate(3,data.frame(...)) does not cause an error.

TERR-6644 Extending a named vector with length(x)<-newLength now makes the new namesblanks instead of NAs.

TERR-6647 In some cases, the [[<- function gave different results in TERR and open-source R,such as x<-array();x[[1]]<-list(123). This problem has been fixed.

TERR-6648 format() and print() now allow zero for the digits argument instead of givingan error. Now, it behaves exactly as it does when digits=1.

TERR-6650 Certain CRAN packages (such as quantreg, igraph, and leaps) would cause theTERR engine used within TIBCO Spotfire® to become unresponsive. This issue alsocaused problems with the PythonInR package. This issue has been fixed.

This issue did not affect TIBCO® Enterprise Runtime for R (TERR™)Developer Edition or the TERR stand-alone engine when you used it inthe TERR console or in RStudio.

TERR-6651 Missing values in the computed predicted probability column for logistic regressionare not propagated to the predicted class column inSpotfireStats::logisticRegPredict and SpotfireStats::logisticRegEval.The predicted class was incorrectly set to the value of responseLevel (from theSpotfireStats::logisticRegFit argument) instead of set to NA.

TERR-6652 format.Date() and as.character.Date() now copy the names attribute fromtheir Date input to their output. (It is extended with NAs if the output is longerthan the input.)

TERR-6653 loess.smoth(x,y) now ignore points with NA either x or y coordinate.

TERR-6660 In some rare cases, rbind.data.frame output factor levels would be wrong. Thisissue has been fixed.

TERR-6666 The return value of file.show() is now correct. The pager function is nowresponsible for deleting the file after showing it, and the pager function now musthave arguments called header, title, delete.file, and pager.

TERR-6667 TERR can now save and load, in both R and TERR formats, ExternalPtr objectswith EStrings (also known as CHARSXPs) as tags. Some CRAN packages, such asrgdal, create such artifacts.

13

TIBCO® Enterprise Runtime for R Release Notes

Page 14: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Key Summary

TERR-6672 The new function now handles unnamed arguments whose class have a commonsuperclass with the object being created.

TERR-6675 Some inconsistencies in the behavior between TERR and open-source R for thefollowing Rapi entries have been fixed.

● DUPLICATE_ATTRIB

● Rf_asLogical

● Rf_asInteger

● Rf_asReal

● Rf_asComplex

TERR-6684 To avoid problems with the foreach package, we installed a version ofcompiler:::mayCallBrowser. This function always returns FALSE, with thewarning not implemented.

TERR-6691 The red argument to grDevices::rgb() can now be a data.frame. (This argumentis now treated the same as it is for a matrix.)

TERR-6692 TERR could become unresponsive on Windows when it tried to open a connectionusing url(f,method='libcurl'). This problem has been fixed.

TERR-6698 All 31 of the R_.<name> Symbol entries listed in RHOME/include/Rinternals.h forR-3.4.0 are now exported by TERR, so TERR can load packages like rlang, whose Cfiles use them.

TERR-6701 model.frame now allows the predvars attribute of its main argument to be a moregeneral call than list(y, x1, x2, ...). This change allows quantreg::dynrq()to work as it does in open-source R. (The first argument of the call is still expectedto be the response.)

TERR-6703 as.list(aFunction) omitted the body when the body was NULL. This behaviorcaused a failure in the CRAN package ndtv. Now, as.list(aFunction) alwaysmakes the last element of the returned list the body of the given function.

TERR-6706 Previously, stopifnot(test1, test2, ...) evaluated all tests before looking forfailures. Now, it evaluates a test only if all previous tests passed. With this change,you can write test expressions that work only if a previous test passed.

TERR-6708 The evaluators in the RinR package now send the expression to the subprocessusing an RDS file instead of putting deparse(expression) into a text file. Thischange avoids problems in odd cases where parse(deparse(expression)) is notidentical to expression.

TERR-6711 The loess() function now makes the robust weights, 'robust', a component of itsoutput, not the 'robust' component of the 'pars' component of its output. It nowmatches the loess() found in open-source R.

14

TIBCO® Enterprise Runtime for R Release Notes

Page 15: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Key Summary

TERR-6714 Package load actions are now handled in TERR as they are in open-source R. Apackage's source code can call methods::setLoadAction to set a load action, andwhen such a package is loaded, the load actions are executed. Most packages thatdepend on the Rcpp package depend on such handling of load actions to avoiderrors like "function 'bindrcpp_RcppExport_validate' not provided bypackage 'bindrcpp'".

TERR-6718 RinR::RCompare(expr) would fail if its call to all.equal() gave an error. Now, itreturns the error message from all.equal where the value for all.equal wouldbe expected.

TERR-6720 The formula method for all.equal() now checks that the attributes of the twoarguments are essentially the same. Previously. the formula method ignored theattributes.

TERR-6721 Performing gzip decompression with the gzcon or gzfile functions is now lessstrict, allowing decompression when the footer bytes are wrong or incomplete. Thischange was made to match the behavior of open-source R and allows the R.matlabpackage to work correctly.

TERR-6722 The example() function now implements the run.dontrun and run.donttestarguments. This change was made to match the version in open-source R.

TERR-6724,TERR-4406

Denormalized floating point numbers are no longer converted to zero. (These arenumbers smaller than 2^-1024 in absolute value than cannot be stored in full 52-bitprecision.) This change allows the integer64 class in the bit64 package to workproperly.

TERR-6725 Previously, there was a problem replacing a column in a data.frame withdataFrame[,j] <- newValue. If newValue was a factor, then the new columnwould have the data type character. Now, it has the data type factor.

If you replace several columns with a factor, then the resulting columnshave the data type character, as before. This behavior matches that ofopen-source R.

TERR-6727 We have implemented the argument repeated=FALSE for URLencode, which fixed aproblem running the h2o package (version 3.10.5.3) in TERR.

TERR-6731 utils::contrib.url() now finds MacOS binary packages in bin/macosx/el-capitan/3.4, not in the mavericks directory, which is the standard packagerepository.

TERR-6732 On Windows, the functions in the RinR package now work when theCurrentVersion registry entry for R ends with an entry such as " RC" (releasecandidate). Previously, such a registry entry would result in an error inR_system_version().

TERR-6734 On Windows systems, TERR now ships with the open.exe utility on the PATH in theTERR environment. This utility opens files given on the command line using theapplication the user or system has associated with the file's extension.

15

TIBCO® Enterprise Runtime for R Release Notes

Page 16: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Key Summary

TERR-6737 When a loaded package declares an S3 method (via an S3method declaration in theNAMESPACE file), if the S3 generic is defined in the base or stats namespace, the S3method is always stored in the S3 table for the namespace of the generic. Thischange fixes a problem for accessing S3 methods when packages such as'diffrprojects' import the 'hellno' package, and then define S3 methods foras.data.frame.

TERR-6738 Several functions ( such as -, +, round, and signif) now work correctly whencalled on a single argument that is an S4 object. A bug introduced in TERR 4.3resulted in these functions giving the error argument 'e2' is missing orargument 'digits' is missing.

TERR-6739 Columns added to a data.frame with $, [, or [[ now have their names attributeremoved, just as when a data.frame is constructed with the data.frame function.

TERR-6740 The function match.arg demonstrated a lag in performance when the choicesargument was missing. This performance issue has been fixed.

TERR-6741 subset(0-row data.frame) now returns a 0-row data.frame when the subsetargument is not supplied. Previously, in that case, it returned a one-row data.frame(with NAs in all entries). Similarly, subset(0-column data.frame) now returns a0-column data.frame when the select argument is omitted. Previously, it returnedan error.

TERR-6742 rbind.data.frame now behaves more like it does in open-source R when allarguments have zero rows. It now returns the first list-like object in the argumentlist. Previously, it returned a zero-row by zero-row data.frame.

TERR-6743 Previously, if two packages defined C/C++ functions with the same name, .Call()functions in the packages could choose the wrong function. Now, this problemshould not occur, as long as the package uses the symbol registration mechanism inopen-source R.

TERR-6744 Error messages saying an object cannot be found now use single quotation marksaround the object name instead of double quotation marks. This change matchesthat of open-source R and makes it easier to write common tests.

TERR-6747 The R C API function Rf_copyMostAttrib now copies the isS4 bit from the sourceobject to the target object (in addition to all attributes except names, dim, anddimnames) . This change enables more tests for the dplyr package to succeed.

TERR-6748 The secret package now works with TERR.

TERR-6749 The C entry point intl_gettext is now defined but does no translation. It returnsits one argument.

TERR-6755 Packages with DLLs requiring the Fortran routine dtrco now load on Windows.Previously, the file R.dll included with TERR did not export that routine, so suchpackages would not load. Rather, they would fail with an error such as "Could notload foreign binary TERR_HOME/site-library/rgcvpack/libs/x64/

rgcvpack.dll: The specified procedure could not be found". The CRANpackages riskRegression, timereg, and rgcvpack were affected.

16

TIBCO® Enterprise Runtime for R Release Notes

Page 17: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Key Summary

TERR-6757 When trying to access a nonexistent URL on Windows, download.file (and otherfile-reading functions) previously accepted a server-generated user-friendly webpage that described the error. Now these functions give an error message.

TERR-6758 The default argument to getOption() is now not evaluated unless the requestedoption is NULL. Previously, it was always evaluated, even if it were not used, whichcaused errors in some CRAN packages (such as the package parallelMap).

TERR-6759 as.data.frame gave an error if the column names of a matrix argument or thenames of a list argument contained missing values. It now converts such names tonon-missing names starting with NA..

TERR-6760 The parallel package now includes a hidden environment called .reg that certainrogue CRAN packages expect to be there.

TERR-6762 Arithmetic operators now work on zero-column data.frames, giving a zero-columndata.frame as an output. Previously, this caused an error.

TERR-6769 The lisp-inspired R C API functions SETCDR, SETCAR, SETCDDR, SETCDDDR, andSETCD4R now return their second arguments. Previously, they returned their firstarguments, the modified linked lists. This behavior broke functions in the packageiotools and other packages.

TERR-6774 Processes spawned by parallel::makeCluster could crash on startup on aWindows machine with more than 31 CPUs.

Known issuesThis section lists known issues in version 4.4.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-5876 When you call terrUtils::implementedRapiEntries, the returned list does notinclude embedding R APIs. To work around this issue, look at the exported symbolsin R.dll (using the "depends" app on Windows) or R.so (using the "nm" commandon Linux).

17

TIBCO® Enterprise Runtime for R Release Notes

Page 18: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

Issue Description

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. (This behavior does not occur in RStudio 0.99.893 and later.)

TERR-6576 If the rmarkdown or the shiny packages are not already installed, and if you try touse an RStudio feature that requires one or both of these packages, RStudio promptsto install them automatically. This process currently fails if RStudio is configuredwith the TERR engine. To work around this problem, at the command prompt, callinstall.packages() to install the rmarkdown and shiny packages.

Custom package builds

The binary package builds provided on the TERR Archive Network (TRAN) repository and describedin Package compatibility were built and tested with specific supported platform versions. For someLinux binary packages, different versions of required shared libraries may prevent the package fromproperly loading and executing. If you download one of our Linux binary packages from TRAN, andyou encounter problems, contact TIBCO Spotfire support for guidance.## Example:## Wrong version of the system Postgres libpq.so shared library:

> library(RPostgreSQL)## Loading required package: DBI## Warning message:## In library.dynam(chname = chname, package = package, lib.loc... :## Problem loading foreign binary .../library/RPostgreSQL/libs/RPostgreSQL.so: libpq.so.4: ## cannot open shared object file: No such file or directory## Error in .loadNamespaceImpl(package, path, keep.source, partial) :## error executing useDynLib for dynamic library 'RPostgreSQL' from package 'RPostgreSQL' ## loaded from .../library : Error in library.dynam(chname = chname, package = package, lib.loc = ... : ## Foreign binary RPostgreSQL could not be loaded

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="")

18

TIBCO® Enterprise Runtime for R Release Notes

Page 19: TIBCO® Enterprise Runtime for R Release Notes · important information some tibco software embeds or bundles other tibco software. use of such embedded or bundled tibco software

# create cluster with one spawned process# specifying outfile="" to print all outputc1 <- makeCluster(1, outfile="")clusterEvalQ(c1, 123)If this problem is occurring, you will 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 Thu Apr 16 15:39:39 2015> 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 Thu Aug 20 15:47:04 2015> # create cluster with one spawned process> # specifying outfile="" to print all output> c1 <- makeCluster(1, outfile="")Creating 1 TERR cluster nodes at Thu Aug 20 15:47:04 2015 > clusterEvalQ(c1, 123)1: TIBCO Software Inc. Confidential Information1: Copyright (C) 2011-2015 TIBCO Software Inc. ALL RIGHTS RESERVED1: TIBCO Enterprise Runtime for R version 4.0.0 for Linux 64-bit1: 1: Type 'help()' for help.1: Type 'q()' to quit.1: started engine node pid==12828 at Thu Aug 20 15:47:04 2015[[1]][1] 123>

19

TIBCO® Enterprise Runtime for R Release Notes