-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
141 lines (109 loc) · 7.62 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
Version 0.24.4 (2021-3-13)
* Throw a proper error message for DBFS issues (https://github.com/traversc/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/traversc/qs/pull/36)
Version 0.23.6 (2020-2-7)
* Add BNDCELLS support added in R 4.0 (https://github.com/traversc/qs/issues/50)
Version 0.23.5 (2020-12-9)
* Correct issue in `qsavem` function (https://github.com/traversc/qs/issues/46)
Version 0.23.4 (2020-10-8)
* Correct documentation of `qreadm` and `qsavem` functions (https://github.com/traversc/qs/issues/44)
Version 0.23.3 (2020-9-24)
* Fix to https://github.com/traversc/qs/issues/43
Version 0.23.1 (2020-7-14)
* Fix to `qsavem` / `qload` functions (https://github.com/traversc/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/traversc/qs/pull/36)
* `qs` now depends on R 3.5 and later. For earlier versions of R, use `remotes::install_github("traversc/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/traversc/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/traversc/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/traversc/qs/issues/29)
* Correct several documentation errors (https://github.com/traversc/qs/issues/28)
* Fix for incorrect serialization of "names" attribute in S4 Raster class (https://github.com/traversc/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/traversc/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/traversc/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/traversc/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 paramter: `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/traversc/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/traversc/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/traversc/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