listenv 0.8.0-9000 Unreleased

New Features

  • Add aperm() and t() for list-environment arrays.

  • parse_env_subset() gained argument ‘is_variable’ to control whether or not the inferred element named should be checked if it is a valid variable name or not.

Deprecated and Defunct

  • map() is formally deprecated; use mapping() instead.

  • Dropped the defunct usage of listenv(length = n), meaning it no longer gives an error but instead produces a listenv with an element named ‘length’.

listenv 0.8.0 2019-12-05

Signficant Changes

  • S3 method lengths.listenv() is no longer exported.

New Features

  • Made several error messages more informative. The downside is that those messages are no longer translated (because they are no longer aligned with built-in R error messages which have translations)

Bug Fixes

  • parse_env_subset(x[1, names]) on a listenv ‘x’ matrix would throw error ‘Error in if (any(i < 0)) { : missing value where TRUE/FALSE needed’ if one of the elements in ‘names’ specifies a non-existing column name.

  • parse_env_subset(x[]) on a listenv ‘x’ would throw an error on “Invalid subset: ‘x[]’”.

  • parse_env_subset(x[names]) on a listenv ‘x’ would throw an error on ‘length(x) = 2 > 1’ in coercion to ‘logical(1)’ when length(names) > 1 and _R_CHECK_LENGTH_1_LOGIC2_=true.

  • parse_env_subset(x[1,idxs]) on a listenv ‘x’ would throw an error on ‘length(x) = 2 > 1’ in coercion to ‘logical(1)’ with length(idxs) > 1 and _R_CHECK_LENGTH_1_LOGIC2_=true.

  • parse_env_subset(x[[names]]) on a regular environment ‘x’ with length(names) > 1 would not throw an error, whereas x[[names]] would.

  • parse_env_subset(x[[1]]) on a regular environment ‘x’ would not throw an error, whereas x[[1]] would.

listenv 0.7.0 2018-01-21

New Features

  • Now it is possible to set the dimension on an empty list environment without first resizing it with length(), e.g. x <- listenv(); dim(x) <- c(2, 3).

  • Now it is possible to remove multiple elements by assigning NULL, e.g. x[c(2:3, 10)] <- NULL and x[, “B”] <- NULL.

  • Added lengths() for list environments. Requires R (>= 3.3.0).

  • dim_na(x) <- dims, where ‘dims’ contain exactly one missing value, will set the “missing” dimension based on the length of ‘x’ and the other dimensions specified, e.g. with length(x) == 6, dim_na(x) <- c(2, NA) will set dim(x) <- c(2, 3). This works for all types of object to which dimensions can be assigned - not only list environments.

  • Added is.matrix(), is.array(), as.vector() and as.matrix() for list environments.

Bug Fixes

  • print() on a named, empty list environment would output an empty string.

  • Removing an element from a list environment did not remove dimensions, e.g. x$a <- NULL.

Deprecated and Defunct

  • Function map() has been renamed to mapping() and same for the corresponding replacement function. The map() and map<-() functions will soon be deprecated and eventually defunct.

  • x <- listenv(length = n) is defunct; use x <- listenv(); length(x) <- n.

listenv 0.6.0 2015-12-28

New Features

  • Added support for multi-dimensional subsetting of list environments just as for list.

Bug Fixes

  • parse_env_subset(x[[idx]]) for list environment ‘x’ and index ‘idx’ claimed x[[idx]] exists as long as idx in [1,length(x)] but it forgot to check if element really existed, which may not be true if ‘x’ has been expanded.

listenv 0.5.0 2015-10-31

New Features

  • Add support for assigning elements when creating list environment similarly how to lists work, e.g. x <- listenv(a = 1, b = 2).

  • length(x) <- n now expand/truncate a list environment.

  • Added unlist() and all.equal() for list environments.

Deprecated and Defunct

  • Deprecated x <- listenv(length = n); use x <- listenv(); length(x) <- n.

Bug Fixes

  • as.listenv(x) would drop NULL elements in ‘x’.

  • x[idxs], x[name] <- y and x$<name> <- y would introduce NA names for non-named list environments.

listenv 0.4.0 2015-08-08

New Features

  • Added as.listenv().

  • CONSISTENCY: Assigning NULL now removes element just as lists, e.g. x$a <- NULL. To assign value NULL, do x[‘a’] <- list(NULL).

  • Added support for subsetting with [(), which returns another list environment, e.g. x[2:3], x[-1] and x[c(TRUE, FALSE)].

  • Added [<- assignment, e.g. x[‘a’] <- 1 and x[2:3] <- c(3,8).

  • CLEANUP: Dropped stray debug code.

listenv 0.3.0 2015-05-28

Code Refactorization

  • Package no longer depends on other packages.

listenv 0.2.4 Unreleased

New Features

  • Added helper function parse_env_subset().

listenv 0.2.3 Unreleased

New Features

  • print() on listenv() handles empty and no-named listenv:s better.

listenv 0.2.2 Unreleased

New Features

  • Now listenv(length = …) always allocates internal variables.

listenv 0.2.1 Unreleased

New Features

  • get_variable() gained argument ‘mustExist’.

listenv 0.2.0 Unreleased

Signficant Changes

  • Moved list environments from an in-house package to its own package.

listenv 0.1.4 Unreleased

New Features

  • Added print() for listenv:s.

Code Refactorization

  • Using tempvar() of R.utils.

listenv 0.1.0 Unreleased