-
Notifications
You must be signed in to change notification settings - Fork 19
/
ChangeLog
192 lines (148 loc) · 10.2 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
Version 0.27.2 (2024-09-27)
* Use `STRING_PTR_RO` instead of `STRING_PTR`
* Add `R::` namespace to `RApiSerialize` calls (https://github.com/eddelbuettel/rapiserialize/issues/8)
Version 0.27.1 (2024-06-04)
* Add function `set_trust_promises` to allow for serialization and deserialization of PROMSXP
Version 0.26.3 (2024-05-15)
* When serializing, eval promises immediately (https://github.com/qsbase/qs/issues/94)
* Return NULL and issue a warning when unserializing a PROMSXP (see https://github.com/qsbase/qs/issues/93)
Version 0.26.2 (2024-03-18)
* Change check for requiring `-latomic` flag to use `AC_COMPILE_IFELSE` (https://github.com/qsbase/qs/issues/88, https://github.com/qsbase/qs/issues/91, https://github.com/qsbase/qs/issues/76)
Version 0.26.1 (2024-03-07)
* Add ALTREP serialization
* Minor bug fix (strict aliasing rules)
Version 0.25.7 (2023-12-05)
* Minor fix for CRAN checks (see https://github.com/RcppCore/Rcpp/issues/1287)
Version 0.25.6 (2023-11-27)
* Fix tests to account for ALTREP serialization
* Add filenames to error messages (https://github.com/qsbase/qs/issues/75)
* Fix unit tests for big endian system (https://github.com/qsbase/qs/issues/77)
* Check for GCC and add `-latomic` flag which is sometimes required (https://github.com/qsbase/qs/issues/76)
Version 0.25.5 (2023-2-20)
* Add function `qread_url`, a helper function that reads `qs` objects from the internet (https://github.com/qsbase/qs/issues/49)
* Add `qattributes` function for extracting attributes of a saved object
Version 0.25.4 (2022-8-9)
* Brief hotfix due to changes in RApiSerialize: specify R serialization version = 2
* Add back `importFrom(Rcpp, evalCpp)` statement to NAMESPACE file
Version 0.25.3 (2022-2-20)
* Update zstd to 1.5.2 and single file library
* Use of Rcpp strict headers; this and the above improve compilation speed considerably
* Use more accurate language in configure script (request from CRAN)
Version 0.25.2 (2021-12-6)
* Update documentation and fix typos (thanks to @salim-b)
* Update autoconf to version 2.6.9 (autoupdate; autoreconf --warnings=obsolete)
* Include tests/ folder in build/check process
* Add `encode_source` and `decode_source` -- helper functions for inlining files and documents
Version 0.25.1 (2021-7-20)
* Add `qcache` helper function
* Remove immediate binding expansion, as it is not part of the R API (comments from CRAN/Luke Tierney). Instead, use the `findVarsInFrame` function to extract immediate bindings from environments.
* Remove `R_restoreHashCount` function, as it is not part of the new R API
Version 0.24.4 (2021-3-13)
* Throw a proper error message for DBFS issues (https://github.com/qsbase/qs/issues/51)
Version 0.24.3 (2021-3-8)
* Add github actions to test compilation on different R versions
Version 0.24.1 (2021-3-5)
* Add additional error checks on failure to read or write data
* Update xxhash version to 0.8.0
* Reduce R version requirement from R 3.5.0 to R 3.0.2 (https://github.com/qsbase/qs/pull/36)
Version 0.23.6 (2020-2-7)
* Add BNDCELLS (aka immediate bindings) support added in R 4.0 (https://github.com/qsbase/qs/issues/50)
Version 0.23.5 (2020-12-9)
* Correct issue in `qsavem` function (https://github.com/qsbase/qs/issues/46)
Version 0.23.4 (2020-10-8)
* Correct documentation of `qreadm` and `qsavem` functions (https://github.com/qsbase/qs/issues/44)
Version 0.23.3 (2020-9-24)
* Fix to https://github.com/qsbase/qs/issues/43
Version 0.23.1 (2020-7-14)
* Fix to `qsavem` / `qload` functions (https://github.com/qsbase/qs/issues/39)
* Update xxhash bundled library to v0.7.4
Version 0.22.1 (2020-5-31)
* Added `qsavem` and `qload`/`qreadm` functions for saving and reading multiple objects at once. Thanks to Bryce Chamberlain (https://github.com/qsbase/qs/pull/36)
* `qs` now depends on R 3.5 and later. For earlier versions of R, use `remotes::install_github("qbase/qs@legacy")`
* Improved alt-rep string functionality using the stringfish package (https://cran.r-project.org/package=stringfish)
Version 0.21.2 (2020-3-8)
* Added implementations of base 85 and base 91 ASCII encoding. See `?base91_encoding` and `?base85_encoding`
* Fixed a typo in the benchmarking code (https://github.com/qsbase/qs/issues/32) and updated the readme benchmark to the latest version
* Added a more descriptive error when trying to read a non-existent file (https://github.com/qsbase/qs/pull/34)
* Compile LZ4 library in C++ instead of C to avoid U.B. issue (https://github.com/lz4/lz4/issues/847)
Version 0.21.1 (2020-2-6)
* Fix for active bindings in R6/environments (https://github.com/qsbase/qs/issues/29)
* Correct several documentation errors (https://github.com/qsbase/qs/issues/28)
* Fix for incorrect serialization of "names" attribute in S4 Raster class (https://github.com/qsbase/qs/issues/27)
Version 0.20.2 (2019-12-1)
* Fix to minor bug involving serialization of locked environments
Version 0.20.1 (2019-12-1)
* More efficient serialization of S4 objects, environments and other complex types (DOTSXP, PROMSXP, CLOSXP)
* Better support for S4 objects
* S4 object flags are now correctly serialized and de-serialized (previously, the flag was ignored)
* S4SXP (non-simple S4 objects with slots) are efficiently serialized, instead of previously relying on R serialization
Version 0.19.1 (2019-9-2)
* Exposed C++ API for use in other Rcpp packages and Rcpp scripts (https://github.com/qsbase/qs/issues/18)
Version 0.18.4 (2019-8-22)
* Fixed an rchk issue with a missing `PROTECT` call during serialization
* Various code refactor and optimizations
Version 0.18.3 (2019-8-20)
* `qsave` now returns invisibly the number of bytes written to file
* Fixed an issue with deserialization of large S4 objects (https://github.com/qsbase/qs/issues/14)
* Additional serialization and deserialization functions for advanced usage:
* `qserialize` and `qdeserialize` reads and writes objects in memory to raw vectors
* `qsave_fd` and `qread_fd` reads and write objects to file descriptors
* `qsave_handle` and `qread_handle` reads and writes objects to Windows HANDLE pointer (Windows only)
* `qread_ptr` reads objects from a void pointer
Version 0.18.2 (2019-7-19)
* Changed license to GPL-3 (https://github.com/qsbase/qs/issues/13)
Version 0.18.1 (2019-7-14)
* Revised header format in order to include more information -- files created by 0.18.1 cannot by read by earlier versions
* Remove R version restriction. Previously, `qs` required R >= 3.5.0. R alt-rep functionality will not be used in earlier versions.
Version 0.17.3 (2019-7-8)
* Fixed unprotected variable issue found by rchk (https://github.com/kalibera/rchk)
Version 0.17.2 (2019-7-6)
* Remove `restrict` keyword from R source files due to Solaris CRAN checks
* Remove executable file permission from src/* files due to OSX CRAN detecting license files as executable
Version 0.17.1 (2019-6-24)
* Re-write of `qdump` function to output more information
* Added regression unit testing for previous versions (tests/regression_testing.R")
Version 0.16.3 (2019-6-21)
* Use hash checksums for checking file integrity using the `xxhash` library
* New parameter: `qsave` -- `check_hash`, computes a checksum on the serialized data
* New parameter: `qread` -- `strict`, throws an error if checksum does not pre-computed value
* `qdump` function reports checksums
* Performance optimizations -- use C interface directly rather than Rcpp containers
* About 180% serialization speed improvement for large lists (e.g., `as.list(runif(1e6))`)
* Removed `qinspect` function as checks are now performed within serialization functiosn directly
* Additional error checking for proper compression and serialization
* The goal is R should not crash even if a file is corrupted
Version 0.16.2 (2019-6-15)
* Added `Set_elt` method for alt-rep string class (https://github.com/qsbase/qs/issues/9)
* Code cleanup:
* Additional error checking during compression and de-compression
* Use of RAII for protection stack handling
* Use of templates instead of function pointers for compression and decompression
* Moved some functions to qs_common.h as templates to avoid code redundancy
Version 0.16.1 (2019-5-15)
* Support for zstd streaming interface. As opposed to block compression routines, streaming compression offers better compression ratio but is not as fast
* Re-factor configure script to not be so messy
* Changed file suffixes in examples from "q" to "qs" (https://github.com/qsbase/qs/issues/5)
* (Not included) brotli compression library was evaluated, but did not offer better performance compared to zstd on average
* Updated zstd to version 1.4.0 (from 1.3.8) and lz4 to 1.9.1 (from 1.8.2)
* Updated benchmarks to include zstd streaming interface and newer versions of zstd and lz4
* C++ macro compiler warnings fixed in zstd; this needs to be done every time zstd is updated (https://github.com/facebook/zstd/issues/1538)
Version 0.15.1 (2019-04-07)
* Initial multi-threading support using C++11 concurrency
* Added support for lz4HC (high compression lz4 variant, but slower compression)
* Additional error check handling to verify file integrity; see `qinspect` function
* Additional documentation and examples
* Normalize file paths before attempting to write or read (https://github.com/qsbase/qs/issues/4)
* Added star name database from the International Astronomical Union; see `?starnames`
Version 0.14.1 (2019-03-03)
* Support for LZ4 compression codec
* Defined several compression presets: "fast", "balanced" and "high" which trade speed for compression ratio
* Byte shuffling routines adapted from the BLOSC library, for higher compression ratios
* Utility functions for compressing and decompressing raw data using zstd or lz4
Version 0.13.1 (2019-02-13)
* Added configure file to detect system installation of zstd
* Fixes to "undefined behavior" (C++ unaligned type casts)
Version 0.12 (2019-02-08)
* Initial CRAN release
* This package provides serialization of R objects through block compression with zstd
* Utilizes Alt-rep data to quickly de-serialize string data