A new release 0.0.16 of RcppAnnoy is available via the Github-hosted R Repository (ghrr). Edit a good two hours later: And wonder of wonders, now also on CRAN.
It remains in limbo at CRAN for no apparent reason. No change appears to be imminent either as the CRAN maintainers continue to play a passive-aggressive game of no communication for any reason. Which is a genuine shame as e [E]verbody involved in the package, i.e. Erik (upstream) and myself but also Aaron (downstream) worked pretty hard and well last weekend (while I was traveling / attending the wonderful celebRtion 2020 conference for the 20th anniversary of the R 1.0.0) to iron out all remaining issues. Installation is pretty flawless and silent as all compiler warnings have been takeb care of even under -pedantic
on a recent version, and the last remaining UBSAN issue is also fixed.
RcppAnnoy is the Rcpp-based R integration of the nifty Annoy library by Erik Bernhardsson. Annoy is a small and lightweight C++ template header library for very fast approximate nearest neighbours—originally developed to drive the famous Spotify music discovery algorithm.
As I wrote in the announcement for 0.0.15 which fixed many-but-not-all issues:
The other important issue is that there will be another 0.0.16 release real soon to incorporate three more small upstream PRs driven by these discussions which kept going on post-release while I was conferencing (or traveling), and which should fix things for good, or so we hope. This should go out probably by the end of the week to not exceed a weekly upload cadence; if you want to see more, or get earlier access, see the git repo which is in fine shape. If you want to see a pre-release on the ghrr drat drop me a line.
As CRAN is holding the package hostage, all I can do now is to release to the Github-hosted R Repository (ghrr) from where you can install it via a simple The package is now on CRAN.install.packages("RcppAnnoy", repos="https://ghrr.github.io/drat")
(or any of the other drat supported commands, see the ghrr page for more). Or wait and wait and wait … until CRAN graces us with a manual admission (given that the previous upload left one small UBSAN issue to fix). One day. Hopefully.
Detailed changes follow below.
Changes in version 0.0.16 (2020-03-06)
Use
int
in two interfaces (Dirk in #59 for upstream PR 460 and closing #56).Use
inline
for two helper functions (Dirk in #59 for upstream PR 461 and closing #57; also Aaron in #58 after earlier discussion).Removed a noisy
pragma
(Dirk in #60 for upstream PR 462).Add a simple helper function displaying compiler status.
Courtesy of CRANberries, there will also be diffstat report if and when the package ever makes it to CRAN. is also a diffstat report for this release.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.