Skip to content

Commit 2402fd2

Browse files
committed
Package v0.9.8 cran release
2 parents 5f729c5 + b822571 commit 2402fd2

File tree

156 files changed

+323
-49129
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

156 files changed

+323
-49129
lines changed

.Rbuildignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
^\.github$
12
^.*\.Rproj$
23
^\.Rproj\.user$
34
\.o$
@@ -19,3 +20,4 @@ LZ4/LICENSE$
1920
^CRAN-RELEASE$
2021
^revdep$
2122
^\.github$
23+
^CRAN-SUBMISSION$

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

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
# Workflow derived from https://github.com/r-lib/actions/tree/master/examples
1+
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
22
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
3+
#
4+
# NOTE: This workflow is overkill for most R packages and
5+
# check-standard.yaml is likely a better choice.
6+
# usethis::use_github_action("check-standard") will install it.
37
on:
48
push:
5-
branches: [develop, release, hotfix, master]
69
pull_request:
7-
branches: [develop, release, hotfix, master]
810

911
name: R-CMD-check
1012

@@ -19,10 +21,12 @@ jobs:
1921
matrix:
2022
config:
2123
- {os: macOS-latest, r: 'release'}
22-
- {os: windows-latest, r: 'release'}
23-
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
24-
- {os: ubuntu-latest, r: 'release'}
25-
- {os: ubuntu-latest, r: 'oldrel-1'}
24+
- {os: windows-2022, r: 'devel'}
25+
- {os: windows-latest, r: '4.1'}
26+
- {os: windows-latest, r: '3.6'}
27+
- {os: ubuntu-20.04, r: 'devel', http-user-agent: 'release'}
28+
- {os: ubuntu-20.04, r: 'release'}
29+
- {os: ubuntu-18.04, r: 'oldrel-4'}
2630

2731
env:
2832
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
@@ -31,28 +35,17 @@ jobs:
3135
steps:
3236
- uses: actions/checkout@v2
3337

34-
- uses: r-lib/actions/setup-pandoc@v1
38+
- uses: r-lib/actions/setup-pandoc@v2
3539

36-
- uses: r-lib/actions/setup-r@v1
40+
- uses: r-lib/actions/setup-r@v2
3741
with:
3842
r-version: ${{ matrix.config.r }}
3943
http-user-agent: ${{ matrix.config.http-user-agent }}
4044
use-public-rspm: true
4145

42-
- uses: r-lib/actions/setup-r-dependencies@v1
46+
- uses: r-lib/actions/setup-r-dependencies@v2
4347
with:
44-
extra-packages: rcmdcheck
48+
extra-packages: any::rcmdcheck
49+
needs: check
4550

46-
- uses: r-lib/actions/check-r-package@v1
47-
48-
- name: Show testthat output
49-
if: always()
50-
run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true
51-
shell: bash
52-
53-
- name: Upload check results
54-
if: failure()
55-
uses: actions/upload-artifact@main
56-
with:
57-
name: ${{ runner.os }}-r${{ matrix.config.r }}-results
58-
path: check
51+
- uses: r-lib/actions/check-r-package@v2

.travis.yml

Lines changed: 0 additions & 38 deletions
This file was deleted.

CONDUCT.md

Lines changed: 122 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,129 @@
11

2-
# Contributor Code of Conduct
2+
# Contributor Covenant Code of Conduct
33

4-
As contributors and maintainers of this project, we pledge to respect all people who
5-
contribute through reporting issues, posting feature requests, updating documentation,
6-
submitting pull requests or patches, and other activities.
4+
## Our Pledge
75

8-
We are committed to making participation in this project a harassment-free experience for
9-
everyone, regardless of level of experience, gender, gender identity and expression,
10-
sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
6+
We as members, contributors, and leaders pledge to make participation in our
7+
community a harassment-free experience for everyone, regardless of age, body
8+
size, visible or invisible disability, ethnicity, sex characteristics, gender
9+
identity and expression, level of experience, education, socio-economic status,
10+
nationality, personal appearance, race, religion, or sexual identity
11+
and orientation.
1112

12-
Examples of unacceptable behavior by participants include the use of sexual language or
13-
imagery, derogatory comments or personal attacks, trolling, public or private harassment,
14-
insults, or other unprofessional conduct.
13+
We pledge to act and interact in ways that contribute to an open, welcoming,
14+
diverse, inclusive, and healthy community.
1515

16-
Project maintainers have the right and responsibility to remove, edit, or reject comments,
17-
commits, code, wiki edits, issues, and other contributions that are not aligned to this
18-
Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed
19-
from the project team.
16+
## Our Standards
2017

21-
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by
22-
opening an issue or contacting one or more of the project maintainers.
18+
Examples of behavior that contributes to a positive environment for our
19+
community include:
2320

24-
This Code of Conduct is adapted from the Contributor Covenant
25-
(http://contributor-covenant.org), version 1.0.0, available at
26-
http://contributor-covenant.org/version/1/0/0/
21+
* Demonstrating empathy and kindness toward other people
22+
* Being respectful of differing opinions, viewpoints, and experiences
23+
* Giving and gracefully accepting constructive feedback
24+
* Accepting responsibility and apologizing to those affected by our mistakes,
25+
and learning from the experience
26+
* Focusing on what is best not just for us as individuals, but for the
27+
overall community
28+
29+
Examples of unacceptable behavior include:
30+
31+
* The use of sexualized language or imagery, and sexual attention or
32+
advances of any kind
33+
* Trolling, insulting or derogatory comments, and personal or political attacks
34+
* Public or private harassment
35+
* Publishing others' private information, such as a physical or email
36+
address, without their explicit permission
37+
* Other conduct which could reasonably be considered inappropriate in a
38+
professional setting
39+
40+
## Enforcement Responsibilities
41+
42+
Community leaders are responsible for clarifying and enforcing our standards of
43+
acceptable behavior and will take appropriate and fair corrective action in
44+
response to any behavior that they deem inappropriate, threatening, offensive,
45+
or harmful.
46+
47+
Community leaders have the right and responsibility to remove, edit, or reject
48+
comments, commits, code, wiki edits, issues, and other contributions that are
49+
not aligned to this Code of Conduct, and will communicate reasons for moderation
50+
decisions when appropriate.
51+
52+
## Scope
53+
54+
This Code of Conduct applies within all community spaces, and also applies when
55+
an individual is officially representing the community in public spaces.
56+
Examples of representing our community include using an official e-mail address,
57+
posting via an official social media account, or acting as an appointed
58+
representative at an online or offline event.
59+
60+
## Enforcement
61+
62+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
63+
reported to the community leaders responsible for enforcement at
64+
[INSERT CONTACT METHOD].
65+
All complaints will be reviewed and investigated promptly and fairly.
66+
67+
All community leaders are obligated to respect the privacy and security of the
68+
reporter of any incident.
69+
70+
## Enforcement Guidelines
71+
72+
Community leaders will follow these Community Impact Guidelines in determining
73+
the consequences for any action they deem in violation of this Code of Conduct:
74+
75+
### 1. Correction
76+
77+
**Community Impact**: Use of inappropriate language or other behavior deemed
78+
unprofessional or unwelcome in the community.
79+
80+
**Consequence**: A private, written warning from community leaders, providing
81+
clarity around the nature of the violation and an explanation of why the
82+
behavior was inappropriate. A public apology may be requested.
83+
84+
### 2. Warning
85+
86+
**Community Impact**: A violation through a single incident or series
87+
of actions.
88+
89+
**Consequence**: A warning with consequences for continued behavior. No
90+
interaction with the people involved, including unsolicited interaction with
91+
those enforcing the Code of Conduct, for a specified period of time. This
92+
includes avoiding interactions in community spaces as well as external channels
93+
like social media. Violating these terms may lead to a temporary or
94+
permanent ban.
95+
96+
### 3. Temporary Ban
97+
98+
**Community Impact**: A serious violation of community standards, including
99+
sustained inappropriate behavior.
100+
101+
**Consequence**: A temporary ban from any sort of interaction or public
102+
communication with the community for a specified period of time. No public or
103+
private interaction with the people involved, including unsolicited interaction
104+
with those enforcing the Code of Conduct, is allowed during this period.
105+
Violating these terms may lead to a permanent ban.
106+
107+
### 4. Permanent Ban
108+
109+
**Community Impact**: Demonstrating a pattern of violation of community
110+
standards, including sustained inappropriate behavior, harassment of an
111+
individual, or aggression toward or disparagement of classes of individuals.
112+
113+
**Consequence**: A permanent ban from any sort of public interaction within
114+
the community.
115+
116+
## Attribution
117+
118+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
119+
version 2.0, available at
120+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
121+
122+
Community Impact Guidelines were inspired by [Mozilla's code of conduct
123+
enforcement ladder](https://github.com/mozilla/diversity).
124+
125+
[homepage]: https://www.contributor-covenant.org
126+
127+
For answers to common questions about this code of conduct, see the FAQ at
128+
https://www.contributor-covenant.org/faq. Translations are available at
129+
https://www.contributor-covenant.org/translations.

DESCRIPTION

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
Package: fst
22
Type: Package
33
Title: Lightning Fast Serialization of Data Frames
4-
Description: Multithreaded serialization of compressed data frames using the
5-
'fst' format. The 'fst' format allows for random access of stored data and
6-
compression with the LZ4 and ZSTD compressors created by Yann Collet. The ZSTD
7-
compression library is owned by Facebook Inc.
8-
Version: 0.9.6
9-
Date: 2022-02-01
10-
Authors@R: c(
11-
person("Mark", "Klik", email = "[email protected]", role = c("aut", "cre", "cph")),
12-
person("Yann", "Collet", role = c("ctb", "cph"),
13-
comment = "Yann Collet is author of the bundled LZ4 and ZSTD code and copyright holder of LZ4"),
14-
person("Facebook, Inc.", role = "cph", comment = "Bundled ZSTD code"))
4+
Description: Multithreaded serialization of compressed data frames using the 'fst' format. The
5+
'fst' format allows for full random access of stored data and a wide range of compression
6+
settings using the LZ4 and ZSTD compressors.
7+
Version: 0.9.8
8+
Date: 2022-02-07
9+
Authors@R:
10+
person("Mark", "Klik", email = "[email protected]", role = c("aut", "cre", "cph"))
1511
Depends:
1612
R (>= 3.0.0)
1713
Imports:
14+
fstcore,
1815
Rcpp
19-
LinkingTo: Rcpp
16+
LinkingTo:
17+
Rcpp,
18+
fstcore
2019
SystemRequirements: little-endian platform
2120
RoxygenNote: 7.1.2
2221
Suggests:
@@ -28,8 +27,5 @@ Suggests:
2827
crayon
2928
License: AGPL-3 | file LICENSE
3029
Encoding: UTF-8
31-
Copyright: This package includes sources from the LZ4 library written
32-
by Yann Collet, sources of the ZSTD library owned by Facebook, Inc.
33-
and sources of the fstlib library owned by Mark Klik
3430
URL: http://www.fstpackage.org
3531
BugReports: https://github.com/fstpackage/fst/issues

NAMESPACE

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ export(read_fst)
2323
export(threads_fst)
2424
export(write.fst)
2525
export(write_fst)
26-
importFrom(Rcpp,sourceCpp)
26+
import(Rcpp)
27+
importFrom(fstcore,threads_fstlib)
2728
importFrom(parallel,detectCores)
2829
importFrom(utils,capture.output)
2930
importFrom(utils,packageVersion)

NEWS.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,22 @@
11

2+
# fst 0.9.8
3+
4+
With this release of `fst`, the `fstlib` library is no longer build with the `fst` package, but
5+
imported from package `fstcore`. This allows for better separation of updates of the C++ code underlying the `fst`
6+
format and the R wrapper package. Also, with this setup, other packages can directly use the C++ interface exported
7+
from the fstcore package.
8+
9+
## Bugs solved
10+
11+
* The package had linking problems on ARM macOS systems, preventing a correct build. These problems originated from
12+
minor differences between the xxHash implementations in the LZ4 and ZSTD libraries and incorrect linker parameters.
13+
14+
## Library updates
15+
16+
* Library LZ4 updated to version 1.9.3
17+
* library ZSTD updated to version 1.5.2
18+
19+
220
# fst 0.9.6
321

422
Version 0.9.6 is a minor update to 'hotfix' an issue with the use of `sample.int()`. All calls to `sample.int()` now

R/RcppExports.R

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
# Generated by using Rcpp::compileAttributes() -> do not edit by hand
22
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393
33

4-
fstlib_version <- function() {
5-
.Call(`_fst_fstlib_version`)
6-
}
7-
84
fststore <- function(fileName, table, compression, uniformEncoding) {
95
.Call(`_fst_fststore`, fileName, table, compression, uniformEncoding)
106
}
@@ -37,11 +33,11 @@ setnrofthreads <- function(nrOfThreads) {
3733
.Call(`_fst_setnrofthreads`, nrOfThreads)
3834
}
3935

40-
hasopenmp <- function() {
41-
.Call(`_fst_hasopenmp`)
42-
}
43-
4436
restore_after_fork <- function(restore) {
4537
invisible(.Call(`_fst_restore_after_fork`, restore))
4638
}
4739

40+
hasopenmp <- function() {
41+
.Call(`_fst_hasopenmp`)
42+
}
43+

R/fst.R

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,15 @@ read_fst <- function(path, columns = NULL, from = 1, to = NULL, as.data.table =
218218
stop(res)
219219
}
220220

221+
nr_of_rows <- 0
222+
if (length(res$resTable) > 0) { # check for NULL tables's
223+
nr_of_rows <- length(res$resTable[[1]])
224+
}
225+
221226
# long vectors are not supported yet with data.table, tibble's or data.frame,
222227
# so return a list instead
223-
nr_of_rows <- length(res$resTable[[1]])
224228
if (nr_of_rows >= 2 ^ 31) {
225-
return(res$resTable)
229+
return(res$resTable)
226230
}
227231

228232
if (as.data.table) {
@@ -241,10 +245,10 @@ read_fst <- function(path, columns = NULL, from = 1, to = NULL, as.data.table =
241245
# use setters from data.table to improve performance
242246
if (requireNamespace("data.table", quietly = TRUE)) {
243247
data.table::setattr(res_table, "class", "data.frame")
244-
data.table::setattr(res_table, "row.names", seq_len(length(res_table[[1L]])))
248+
data.table::setattr(res_table, "row.names", base::.set_row_names(nr_of_rows))
245249
} else {
246250
class(res_table) <- "data.frame"
247-
attr(res_table, "row.names") <- seq_len(length(res_table[[1L]]))
251+
attr(res_table, "row.names") <- base::.set_row_names(nr_of_rows)
248252
}
249253

250254
res_table

0 commit comments

Comments
 (0)