Leonardo and I are happy to
annunce that a new version 0.3.8 of our nanotime
package arrived on CRAN today.
It is the first release in over 1 1/2 years. nanotime
relies on the RcppCCTZ
package (as well as the RcppDate
package for additional C++ operations) and offers efficient high(er)
resolution time parsing and formatting up to nanosecond resolution,
using the bit64
package for the actual integer64
arithmetic. Initially
implemented using the S3 system, it has benefitted greatly from a
rigorous refactoring by Leonardo who not only rejigged
nanotime
internals in S4 but also added new S4 types for
periods, intervals and durations.
This release responds to a number of enhancements including a new
paramter accurate
for POSIXct
to
nanotime
conversions, a vector date converter, a switch to
double
return value when durations objects are dividded –
as well as a small battery of CRAN requests for changes and
updates. This started with a move away from the now ‘non-API’ function
SET_S4_OBJECT
which has been replaced by use of
Rf_asS4
. We also no longer need a custom compiler flag on
Windows (where for some reasons nobody understands or remembers,
bitfields are not packed) to small enhancements of manual page
formatting and last-but-not-least avoidance of some new UBSAN warnings.
The NEWS snippet has the full details.
Changes in version 0.3.8 (2024-06-19)
Time format documentation now has a reference to RcppCCTZ
The package no longer sets a default C++ compilation standard of C++11 (Dirk initially in #114, and later switched to C++17)
New
accurate
parameter for conversion fromPOSIXct
tonanotime
(Davor Josipovic and Leonardo in #116 closing #115)The
as.Date()
function is now vectorized and can take a TZ argument (Leonardo and Dirk in #119 closing #118)Use of internal function
SET_S4_OBJECT
has been replaced by API functionRf_asS4
(Leonardo in #121 closing #120)An
nanoduration
/nanoduration
expression now returns a double (Leonardo in #122 closing #117)Bitfield calculations no longer require an Windows-only compiler switch (Leonardo in #124)
A simple manual page format nag involving has been addressed (Dirk in #126 fixing #125)
An set of tests tickling an UBSAN issue via Rcpp code no longer run unless
CI
is set (Dirk in #127 fixing #123)
Thanks to my CRANberries, there is a diffstat report for this release. More details and examples are at the nanotime page; code, issue tickets etc at the GitHub repository – and all documentation is provided at the nanotime documentation site.
If you like this or other open-source work I do, you can sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.