- Behaviour change: the atomic typecasting functions now preserve names, dimensions, and dimnames (instead of all attributes), to be more in line with most of base 'R'.
- Behaviour change:
pkgs %installed in% lib.loc
will now returnNA
for "packages" that are part of core 'R' (i.e. 'base', 'stats', etc.). - Behaviour change: All decimal truth testing operators now always give
NA
whenInf
is compared withInf
, or when-Inf
is compared to-Inf
. - Streamlined the internal code of the decimal truth testing operators.
- Added
%s><%
and%s<>%
as aliases for%sget%
and%strim%
, respectively. - Removed some superfluous text in the import system documentation.
- Re-written one 'C++' script to pure 'C' code.
- Some of the internal 'C' code now support long vectors, when appropriate.
- Small speed improvement in some of the internal code.
- Added new fake packages to the special tests, to perform more thorough tests on the
pversion_
- functions. - Added even more tests.
- Feature Improvement:
help.import()
now directly evaluates the arguments underhelp()
if both argumentsi
andalias
are missing. - Feature Improvement: re_exports in
import_as()
can now include functions from core R if necessary, except 'base'. - Performance Improvement: Replaced some of the internal code in the import system with 'C++' code via 'Rcpp' for some performance improvement.
- Bug fix: Fixed a (small) bug, where
help.import()
sometimes gave an unnecessary error, when searching topics of un-exported objects or non-functions via an alias object instead of searching functions directly. - Bug fix: Fixed a (small) bug where class names were sometimes inconsistently assigned to functions and infix operators exposed by the 'tinycodet' import system.
- Removed Feature: Removed the
form()
function, as its use-case is too rare to justify having a whole function for it (with all the tests and maintenance that come with it). I rarely remove functions; this is an exception. - Fixed some mistakes in the documentation.
- Added more tests.
help.import()
can now also be called without any arguments, just like the originalhelp()
function.- Moved the atomic type casting functions to the "DRY" category.
- Cleaned up the internal code of the import system a bit.
- Added the current year to the LICENSE file.
- Feature improvement: Relaxed the length restriction on argument
i
instri_locate_ith()
. Also improved the performance ofstri_locate_ith()
. - Tweaked the error messages of
strfind()<-
to be a bit more informative. - Added
as_cplx()
andas_raw()
to the atomic typecasting functions. - Improved the documentation here and there.
- Tweaked description text.
- Added more tests.
- Slight speed improvement of
stri_locate_ith()
. - New Features: Added the following functions to the "safer functionality" category: form(),
aes_pro()
,with_pro()
, andsafer_partialmatch()
. Naturally, added tests for these new functions.
- Added an explanation in the string overview help page, regarding the usage of vector recycling.
- Provided additional clarification in the help file for the
%row%
and%col~%
operators. - Simplified the internal code of the decimal (in)equality testing operators.
- Added a few more tests.
- Moved
is_wholenumber()
to the decimal truth testing section. - Argument change: Added the
rt
argument tostrfind()<-
, and moved thei
andrt
arguments more to the end of the functions. Thetype
argument instrcut_brk()
can now also directly accept a list produced bystringi::stri_opts_brkiter()
.
- Clarified in the documentation that
%col~%
and%row~%
strip attributes. - Clarified the usage of
merge = FALSE
for patterncharclass
, in the documentation of thestri_locate_ith()
function. - Clarified in the documentation that locked objects are not protected from modification by reference.
- Clarified in the documentation of 'stringi' pattern searching infix operators that the
p
argument can also be a character vector of length 1. - Clarified in the
stri_locate_ith()
documentation that one should not pass thecapture_groups
argument; also clarified how to capture theith
group usingstri_locate_ith()
. And clarified thatstri_locate_ith()
does not support long vectors. - Normalized the links in the "See Also" sections in the documentation.
- Renamed the "str_truth" page to "str_search", as that makes a little more sense.
- Removed the redundant
stringi::
piece in the example code forimport_LL()
. - The help file for the
s_pattern
functions is now actually titled "s_pattern". - The messages returned by
import_as()
when aliasing packages is now slightly less verbose: removed the line "Methods work like normally", and replaced the line "Importing packages ..." with "Importing packages and registering methods...". - The
strcut_brk()
function now includes thetolist
argument to return a list. Moreover, then
argument may now also be specified (n = -1L
by default). - More safety checks: Improved safety against malformed conditions in the
transform_if()
function.stri_locate_ith()
now gives a warning when an empty string or pattern is given. Thehelp.import()
function now gives an error if neithertopic/package
nori/alias
is supplied, instead of just silently doing nothing. The%sget%
and%strim%
operators now give an explicit error message if the arguments do not have proper lengths. - Internal Re-write:
stri_locate_ith()
has now been partially re-written, and now includes 'C++' code, making it a bit faster. Also cleaned up the internal code for some other functions here and there. - Added dependency: 'Rcpp' is now added as a dependency, due to the aforementioned partial re-write in 'C++'.
- New Features: Added
%ss%
to the collection of string arithmetic operators, and added thestrfind()<-
method to the string search operators. One can now supply theat
argument in the list of the right-hand side for the%s{}%
operator. Supplyingat = "start"
will check if the pattern appears at the start of a string. Supplyingat = "end"
will check if the pattern appears at the end of a string. - Optimization: Managed to optimise
stri_locate_ith()
even further. Optimised the 'subset_if' operators a bit more. Also optimised the%n&%
,%sget%
,%strim%
, and%=strtype%
operators a bit more. - Argument change: The
s_pattern
functions now wrap additional arguments in a list for the user, in case of using vector arguments, preventing potential confusion. - Argument change: The
type
argument instri_locate_ith_boundaries()
is now not a mandatory argument; one can now also supply it throughstri_opts_brikiter()
, to keep it more consistent with the rest of 'stringi'. - Tests: Improved the tests for the
s_pattern
operators. Added tests forstri_locate_ith()
when using argumentmerge = FALSE
. Added more error check tests forhelp.import()
. Added tests for unequal vector sizes for the logic operators. Added tests for empty condition subsets fortransform_if()
. Added tests for the new functionalities introduced in this version. Added tests for malformed 'stringi' pattern searches in all relevant functions. - Bug fix: There was a small bug where
s_coll()
worked properly when assigned to an object (as usual), but not when called directly (like nested inside a function). This is now fixed.
- Expanded the import system documentation. Also tweaked the documentation of
import_as()
to be make it slightly clearer. - Expanded the documentation of the
decimal_truth
operators. import_as()
now does not allow more than 10 packages to be loaded under a single alias, to prevent abusive usage ofimport_as()
.- The import system now has a few more tiny safety checks, including checks for widely known meta-packages (such as "fastverse").
- The
pkg_get_deps()
function now also has theshared_tidy
argument to ignore the shared 'tidyverse' libraries ('rlang', 'lifecycle', 'cli', 'glue', and 'withr'). Also changed the default values of therecom
, andrstudioapi
arguments. - Added the
pkg_get_deps_minimal()
function. Also changed the default arguments ofpkg_get_deps()
. - Changed the error message for wrong extension specifications: replaced "actual reverse-dependencies" into "actual extensions".
- Changed the usage of the word "load" to "import" in the import system documentation, to avoid confusion with the concept of loading a package.
- Added the
pversion_
functions to help in checking package versions. - Removed the "versions" attribute from alias objects, in favour of the aforementioned
pversion_
functions. - Argument name change: in the
import_as()
function, changed argument nameloadorder
toimport_order
, to avoid confusion with the concept of loading a package. - Tests: Added more tests.
- Optimization: Minor optimizations for the
import_*
functions and fortransform_if()
. - Bug fix: Fixed a bug in
pkg_get_deps()
where it didn't properly ignore all the recommended R-packages whenrecom = FALSE
.
- Small tweak to the pdf manual.
- Replaced the incorrect uses of the word "class" with "type" in the atomic type casting help file.
- Improved the performance of
stri_join_mat()
, and produced better examples in both help file and website. - Fixed incorrect regex usage in one of the examples.
- Removed or changed "a few functions" in the title, description, introduction help page, and website, as 'tinycodet' actually turned out to be somewhat larger than anticipated.
- Fixed the latex issue in the pdf file generation for users using R version < 4.2.0 with the Mac OS.
- Changed the
@name
and@rdname
parameters of the tinycodet overview help files, such that they get on the top of the pdf file. - Removed the sentence "Note that only the recommended R-packages actually installed in your system are taken into consideration" in the
pkgs
help file, as this is no longer applicable (the list of recommended R packages is hard coded). - Expanded the 'tinycodet_import' help page with more info.
- Replaced usage of
installed.packages()
in the%installed in%
operator withfind.package()
. Also added the sentence "As pkgs %installed in% lib.loc does not even load a package, the user can safely use it without fearing any unwanted side-effects." to the help page. - Replaced usage of
installed.packages()
with a manually specified character vector in the R scripts/functions "internal_functions.R", "import_misc.R", "import_inops.R", "x.import.R". - Replaced "\dontrun" with "\donttest" in help page "tinycodet_import", and set condition for examples.
- Re-implemented the fake packages, but this time preventing false positives using a tip from Duncan Murdoch.
- The fake packages will now only be tested on my GitHub page, and not in the package folder itself, to prevent false positives from CRAN checks.
- Removed the last sentence in the Description of the DESCRIPTION file, which contained the word "vectorized", because both "vectorised" AND "vectorized" cause CRAN checks to complain.
- Changed all the spellings of the word "vectorised", to "vectorized", despite the clear Language field.
- Corrected the 'Authors@R' field in the DESCRIPTION file.
- Added 'Language: en-gb' to the DESCRIPTION file.
- Removed the "Maintainer" field, as it can be auto-generated from 'Authors@R'.
- Corrected the LICENSE file.
- Initial release.