Skip to content

Commit fc8a360

Browse files
Merge branch 'master' into h2-h3-news
2 parents 014e579 + 9c54bd0 commit fc8a360

File tree

23 files changed

+146
-200
lines changed

23 files changed

+146
-200
lines changed

.ci/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Test jobs:
1212
- `test-lin-rel-cran` - `--as-cran` on Linux, strict test for final status of `R CMD check`.
1313
- `test-lin-dev-gcc-strict-cran` - `--as-cran` on Linux, `r-devel` built with `-enable-strict-barrier --disable-long-double`, test for compilation warnings, test for new NOTEs/WARNINGs from `R CMD check`.
1414
- `test-lin-dev-clang-cran` - same as `gcc-strict` job but R built with `clang` and no `--enable-strict-barrier --disable-long-double` flags.
15-
- `test-lin-ancient-cran` - Stated R dependency version (currently 3.3.0) on Linux.
15+
- `test-lin-ancient-cran` - Stated R dependency version (currently 3.4.0) on Linux.
1616
- `test-lin-dev-san` - `r-devel` on Linux built with `clang -fsanitize=address,undefined` (including LeakSanitizer), test for sanitizer output in tests and examples.
1717
- `test-win-rel` - `r-release` on Windows.
1818
- `test-win-dev` - `r-devel` on Windows.

.dev/CRAN_Release.cmd

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -235,23 +235,23 @@ system.time(test.data.table(script="*.Rraw")) # apx 8h = froll 3h + nafill 1m +
235235

236236

237237
###############################################
238-
# R 3.3.0 (stated dependency)
238+
# R 3.4.0 (stated dependency)
239239
###############################################
240240

241241
### ONE TIME BUILD
242242
sudo apt-get -y build-dep r-base
243243
cd ~/build
244-
wget http://cran.stat.ucla.edu/src/base/R-3/R-3.3.0.tar.gz
245-
tar xvf R-3.3.0.tar.gz
246-
cd R-3.3.0
244+
wget http://cran.stat.ucla.edu/src/base/R-3/R-3.4.0.tar.gz
245+
tar xvf R-3.4.0.tar.gz
246+
cd R-3.4.0
247247
CFLAGS="-fcommon" FFLAGS="-fallow-argument-mismatch" ./configure --without-recommended-packages
248248
make
249-
alias R330=~/build/R-3.3.0/bin/R
249+
alias R340=~/build/R-3.4.0/bin/R
250250
### END ONE TIME BUILD
251251

252252
cd ~/GitHub/data.table
253-
R330 CMD INSTALL ./data.table_1.16.99.tar.gz
254-
R330
253+
R340 CMD INSTALL ./data.table_1.16.99.tar.gz
254+
R340
255255
require(data.table)
256256
test.data.table(script="*.Rraw")
257257

.devcontainer/r-ancient-gcc/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM registry.gitlab.com/jangorecki/dockerfiles/r-3.3.0
1+
FROM registry.gitlab.com/jangorecki/dockerfiles/r-3.4.0
22

33
RUN apt-get -qq update \
44
&& apt-get install -y --no-install-recommends git

.github/workflows/R-CMD-check-occasional.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
fail-fast: false
1616
matrix:
1717
os: [macOS-latest, windows-latest, ubuntu-latest]
18-
r: ['devel', 'release', '3.3', '3.4', '3.5', '3.6', '4.0', '4.1', '4.2', '4.3']
18+
r: ['devel', 'release', '3.4', '3.5', '3.6', '4.0', '4.1', '4.2', '4.3']
1919
locale: ['en_US.utf8', 'zh_CN.utf8', 'lv_LV.utf8'] # Chinese for translations, Latvian for collate order (#3502)
2020
exclude:
2121
# only run non-English locale CI on Ubuntu
@@ -28,8 +28,6 @@ jobs:
2828
- os: windows-latest
2929
locale: 'lv_LV.utf8'
3030
# macOS/arm64 only available for R>=4.1.0
31-
- os: macOS-latest
32-
r: '3.3'
3331
- os: macOS-latest
3432
r: '3.4'
3533
- os: macOS-latest

.gitlab-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,13 +203,13 @@ test-lin-dev-clang-cran:
203203
# stated dependency on R
204204
test-lin-ancient-cran:
205205
<<: *test-lin
206-
image: registry.gitlab.com/rdatatable/dockerfiles/r-3.3.0
206+
image: registry.gitlab.com/rdatatable/dockerfiles/r-3.4.0
207207
variables:
208208
_R_CHECK_FORCE_SUGGESTS_: "FALSE" # can be removed if all dependencies are available (knitr, xts, etc.)
209209
script:
210210
- *install-deps
211211
# knitr requires evaluate, which requires R 3.6.0.
212-
# Restore checking vignettes if upgrading our R dependency means knitr can be installed.
212+
# Restore checking vignettes if upgrading our R dependency means knitr can be installed, or when we switch to litedown.
213213
- R CMD check --no-manual --no-build-vignettes --ignore-vignettes $(ls -1t data.table_*.tar.gz | head -n 1)
214214

215215
# run the main checks with Address(+Leak),UBSanitizer enabled

DESCRIPTION

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Package: data.table
22
Version: 1.17.99
33
Title: Extension of `data.frame`
4-
Depends: R (>= 3.3.0)
4+
Depends: R (>= 3.4.0)
55
Imports: methods
66
Suggests: bit64 (>= 4.0.0), bit (>= 4.0.4), R.utils, xts, zoo (>= 1.8-1), yaml, knitr, markdown
77
Description: Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group using no copies at all, list columns, friendly and fast character-separated-value read/write. Offers a natural and flexible syntax, for faster development.
@@ -100,5 +100,6 @@ Authors@R: c(
100100
person("Vincent", "Rocher", role="ctb"),
101101
person("Vijay", "Lulla", role="ctb"),
102102
person("Aljaž", "Sluga", role="ctb"),
103-
person("Bill", "Evans", role="ctb")
103+
person("Bill", "Evans", role="ctb"),
104+
person("Reino", "Bruner", role="ctb")
104105
)

NEWS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
7. `fwrite()` now avoids a crash when translating strings into a different encoding, [#6883](https://github.com/Rdatatable/data.table/issues/6883). Thanks @filipemsc for the report and @aitap for the fix.
3232

33+
8. `fread()` no longer warns on certain systems on R 4.5.0+ where the file owner can't be resolved, [#6918](https://github.com/Rdatatable/data.table/issues/6918). Thanks @ProfFancyPants for the report and PR.
3334

3435
### NOTES
3536

@@ -42,6 +43,8 @@
4243
+ Argument `in.place` to `droplevels` has been removed.
4344
+ It's now an error to set `datatable.nomatch`, which has been warning since 1.15.0.
4445

46+
3. {data.table} now depends on R 3.4.0 (2017).
47+
4548
## data.table [v1.17.0](https://github.com/Rdatatable/data.table/milestone/34) (20 Feb 2025)
4649

4750
### POTENTIALLY BREAKING CHANGES

R/fread.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ yaml=FALSE, tmpdir=tempdir(), tz="UTC")
8888
on.exit(unlink(tmpFile), add=TRUE)
8989
# nocov end
9090
}
91-
file_info = file.info(file)
91+
file_info = file.info(file, extra_cols=FALSE)
9292
if (is.na(file_info$size)) stopf("File '%s' does not exist or is non-readable. getwd()=='%s'", file, getwd())
9393
if (isTRUE(file_info$isdir)) stopf("File '%s' is a directory. Not yet implemented.", file) # Could use dir.exists(), but we already ran file.info().
9494
if (!file_info$size) {

R/onAttach.R

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,6 @@
3939
else
4040
packageStartupMessagef("This is %s. This warning should not normally occur on Windows or Linux where OpenMP is turned on by data.table's configure script by passing -fopenmp to the compiler. If you see this warning on Windows or Linux, please file a GitHub issue.\n**********", Sys.info()["sysname"])
4141
}
42-
if (.Call(CbeforeR340)) {
43-
# not base::getRversion()<"3.4.0" in case the user upgrades R but does not reinstall data.table; a reasonable mistake since data.table would seem to be the latest version
44-
packageStartupMessagef("**********\nThis data.table installation was compiled for R < 3.4.0 (Apr 2017) and is known to leak memory. Please upgrade R and reinstall data.table to fix the leak. Maintaining and testing code branches to support very old versions increases development time so please do upgrade R. We intend to bump data.table's dependency from 8 year old R 3.1.0 (Apr 2014) to 5 year old R 3.4.0 (Apr 2017).\n**********")
45-
}
4642
}
4743
}
4844

R/print.data.table.R

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ print.data.table = function(x, topn=getOption("datatable.print.topn"),
1919
stopf("Valid options for col.names are 'auto', 'top', and 'none'")
2020
if (length(trunc.cols) != 1L || !is.logical(trunc.cols) || is.na(trunc.cols))
2121
stopf("Valid options for trunc.cols are TRUE and FALSE")
22+
stopifnot(isTRUEorFALSE(class))
2223
if (col.names == "none" && class)
2324
warningf("Column classes will be suppressed when col.names is 'none'")
2425
if (!shouldPrint(x)) {
@@ -52,11 +53,11 @@ print.data.table = function(x, topn=getOption("datatable.print.topn"),
5253
))
5354
}
5455
if (any(dim(x)==0L)) {
55-
class = if (is.data.table(x)) "table" else "frame" # a data.frame could be passed to print.data.table() directly, #3363
56+
x_class = if (is.data.table(x)) "data.table" else "data.frame" # a data.frame could be passed to print.data.table() directly, #3363
5657
if (all(dim(x)==0L)) {
57-
catf("Null data.%s (0 rows and 0 cols)\n", class) # See FAQ 2.5 and NEWS item in v1.8.9
58+
catf("Null %s (0 rows and 0 cols)\n", x_class) # See FAQ 2.5 and NEWS item in v1.8.9
5859
} else {
59-
catf("Empty data.%s (%d rows and %d cols)", class, NROW(x), NCOL(x))
60+
catf("Empty %s (%d rows and %d cols)", x_class, NROW(x), NCOL(x))
6061
if (length(x)>0L) cat(": ",paste(head(names(x),6L),collapse=","),if(length(x)>6L)"...",sep="") # notranslate
6162
cat("\n") # notranslate
6263
}
@@ -94,7 +95,7 @@ print.data.table = function(x, topn=getOption("datatable.print.topn"),
9495
if (is.null(names(x)) || !any(nzchar(names(x), keepNA=TRUE)))
9596
# fixes bug #97 and #545
9697
colnames(toprint)=rep("", ncol(toprint))
97-
if (isTRUE(class) && col.names != "none") {
98+
if (class && col.names != "none") {
9899
#Matching table for most common types & their abbreviations
99100
class_abb = c(list = "<list>", integer = "<int>", numeric = "<num>",
100101
character = "<char>", Date = "<Date>", complex = "<cplx>",
@@ -105,8 +106,9 @@ print.data.table = function(x, topn=getOption("datatable.print.topn"),
105106
if ( length(idx <- which(is.na(abbs))) ) abbs[idx] = paste0("<", classes[idx], ">")
106107
toprint = rbind(abbs, toprint)
107108
rownames(toprint)[1L] = ""
109+
} else {
110+
abbs = ""
108111
}
109-
if (isFALSE(class) || (isTRUE(class) && col.names == "none")) abbs = ""
110112
if (quote) colnames(toprint) <- paste0('"', old <- colnames(toprint), '"')
111113
if (isTRUE(trunc.cols)) {
112114
# allow truncation of columns to print only what will fit in console PR #4074
@@ -131,9 +133,9 @@ print.data.table = function(x, topn=getOption("datatable.print.topn"),
131133
}
132134
if (printdots) {
133135
if (isFALSE(row.names)) {
134-
toprint = rbind(head(toprint, topn + isTRUE(class)), "---", tail(toprint, topn)) # 4083
136+
toprint = rbind(head(toprint, topn + class), "---", tail(toprint, topn)) # 4083
135137
} else {
136-
toprint = rbind(head(toprint, topn + isTRUE(class)), "---"="", tail(toprint, topn))
138+
toprint = rbind(head(toprint, topn + class), "---"="", tail(toprint, topn))
137139
}
138140
rownames(toprint) = format(rownames(toprint), justify="right")
139141
print_default(toprint)
@@ -145,7 +147,7 @@ print.data.table = function(x, topn=getOption("datatable.print.topn"),
145147
toprint = rbind(
146148
toprint,
147149
matrix(if (quote) old else colnames(toprint), nrow=1L), # see #97
148-
if (isTRUE(class)) matrix(if (trunc.cols) abbs[cols_to_print] else abbs, nrow=1L) # #6902
150+
if (class) matrix(if (trunc.cols) abbs[cols_to_print] else abbs, nrow=1L) # #6902
149151
)
150152
print_default(toprint)
151153
invisible(x)
@@ -251,7 +253,6 @@ char.trunc = function(x, trunc.char = getOption("datatable.prettyprint.char")) {
251253
nchar_chars = nchar(x, 'char')
252254
is_full_width = nchar_width > nchar_chars
253255
idx = !is.na(x) & pmin(nchar_width, nchar_chars) > trunc.char
254-
if (!any(idx)) return(x) # strtrim() errors for width=integer() on R 3.3.0
255256
x[idx] = paste0(strtrim(x[idx], trunc.char * fifelse(is_full_width[idx], 2L, 1L)), "...")
256257
x
257258
}

0 commit comments

Comments
 (0)