"width" issue during print ifgetOption("width") is too narrow. Thanksfollowing CRAN suggestion, thefastverse.Rd page isrenamed tofastverse-package.Rd, with a'fastverse' alias.
fastverse_deps() (andfastverse_update(),fastverse_sitrep()) ignoredependencies not available on CRAN (issuing a warning).
collapse::fduplicated() andkit::fduplicated(). The conflict is solved in favor of thenewcollapse version, which is faster and can also indicate alloccurrences of duplicated values.kit::fduplicated() on theother hand can determine duplicates starting from the last value, andalso supports matrices.PackagesmatrixStats andfst are removed fromthe core set of packages following a poll on Twitter in which more than50% of respondents voted in favor. This makes thefastversepackage lighter and focused on core data manipulation tasks. Users havemany options to keep the original extent of the fastverse, such as (1)callingfastverse_extend(matrixStats, fst, permanent = TRUE) oncefollowing the update, (2) callingfastverse_extend(matrixStats, fst) right afterlibrary(fastverse), (3) placing a.fastverseconfiguration file withmatrixStats, fst in the projectdirectory, or (4) settingoptions(fastverse.extend = c("matrixStats", "fst")) in an.Rprofile file. See thevignettefor details. The GitHub and R-universe versions offastverseretain their capability to correct some functions inmatrixStats to make them preserve dimension names by default,whenevermatrixStats is added as an extension. The CRAN versiondoes not allow this feature.
A global variable.fastverse_repos was addedcontaining the repository URLs of thefastverse r-universe,alongside additionalrepos arguments to functionsfastverse_deps(),fastverse_extend(),fastverse_install(),fastverse_update() andfastverse_sitrep(). This allows users to easily installbinaries of the development versions (or early GitHub releases) offastverse packages (both core and suggested extensions) usinge.g. fastverse_update(repos = .fastverse_repos).
An internal clash arising between a newfdroplevels() function introduced indata.table1.14.5 and the existing functionfdroplevels() introducedincollapse 1.4.0 (November 2020) is resolved in favor of thelatter, which was tested to be faster, and supports both factors andarbitrary list-based objects (including data.table’s).data.table::fdroplevels() is only for factors, asdata.table introduced a methoddroplevels.data.table to handle data.table’s. Both thefunction and the method however have additional arguments allowing theuser to exclude certain unused levels from being dropped (in line withbase R), which are missing in thecollapse versions. Thusnothing changes forfastverse users which have been usingcollapse::fdroplevels() thus far, anddroplevels.data.table will continue to work.
Functionfastvverse_install() prints a message"All fastverse packages installed" if allfastverse packages are installed, unlessoptions(fastverse.quiet = TRUE) is set. There is also theoption to set_opt_fastverse.install = TRUE in a.fastverse configuration file, oroptions(fastverse.install = TRUE) in an.Rprofile file, such that callinglibrary(fastverse) will install any missing packages bycallingfastvverse_install() before attempting to loadpackages. This however also displayed the message"All fastverse packages installed", which is undesirable.So wheneveroptions(fastverse.install = TRUE) is set, acall tofastvverse_install() will not print anything if allpackages are available.
New packages and 2 new topics: ‘Compiling R’ and ‘R Bindings toFaster Languages’ were added toSuggestedExtensions list. In lieu of this thetopics argument tofastverse_extend() was depreciated, as hard coding manysuggested packages in the package source code itself is impractical.Please feel free to suggest further packages for the list, so that itbecomes a valuable resource for everyone interested in high-performancein R.
Binaries of core fastverse packages (and a few others, includingthefastverse package itself) can now be installed from a newlycreatedfastverser-universe. This ensures that Windows and Mac binaries of thedevelopment versions of these packages are always available, independentof their CRAN status. These binaries can be installed usinginstall.packages("fastverse", repos = "https://fastverse.r-universe.dev/").
Addinggeos anddqrng,fastmap andfastmatch to suggested list (thanks also to Grant McDermott andAlexander Fisher for suggesting).
options(fastverse.install = TRUE) which can beset beforelibrary(fastverse), triggering an internal calltofastverse_install() - to make sure any missing packagesare installed before loading them. In a.fastverseconfiguration file placed inside a project directory, you can also place_opt_fastverse.install = TRUE before the packageslist.Added possibility to set global options and environment variablesin project configuration files. See Vignette for details.
Added new packages tosuggestedpackages list:rrapply,MatrixExtra andrsparse.
Package does not import any helper functions fromcollapse anymore, so that hard detaching withfastverse_detach(unload = TRUE) is possible forcollapse as well.
Making sure no files are written to disc on CRANservers.
fastverse_update() has an additional argumentinstall. The default isinstall = FALSE, whichwill just print the installation command as before, asking you to run itin a clean R session, whereasinstall = TRUE will insteadexecute the command.
Added a functionfastverse_install() to checkpackage availability and install any missingfastverse packagesbefore callinglibrary(fastverse). Useful especially forcustomfastverse configurations (inside projects) to safeguardthe availability of packages.
Added a functionfastverse_child() (following arequest), which allows users to create a wholly different package-verselike thefastverse - under a different name and with differentcore packages. Suchfastverse children inherit 90% of thefunctionality of thefastverse package (e.g. they are notpermanently globally extensible, but can be configured for projects andextended in the session). Childbearing requires an internet connectionbut no additional packages (likedevtools).
Export utility functionsis_installed andis_attached to check if packages are installed /attached.
Several additions to suggested extensions list:qs,arrow,stringdist,stringfish,nanotime.
CRAN required me to place return values onfastverse_extend() andfastverse_detach() -which do not return anything.
Implementing various CRAN comments on 0.1.6 (small things), andsetting up synchronous development of CRAN and GitHub version through a‘development’ branch which can be merged into both. Pull requests shouldbe sent to the ‘development’ branch.
CRAN rejected 0.1.5, which made surematrixStats handlesattributes consistently whenever thefastverse is attached,because CRAN packages are not allowed to modify the namespace of otherpackages. Thus 0.1.6 comes in two versions: A CRAN version which takesmatrixStats as it is, and a GitHub version which is theoriginal 0.1.5. User who value a consistentmatrixStats thatpreserves dimension names in all functions are recommended the GitHubversion.
Firstfastverse CRAN submission on 7th August 2021.Development started in Spring 2021.