# memoise 2.0.1

# Version 2.0.0.9000

* Winston Chang is now the maintainer.

* The default value for the `hash` argument of `memoise()` is now
  taken with an indirection in case `memoise()` is called at the
  top-level of a namespace (r-lib/rlang#1177).

* Fixed a bug in `has_cache()` that caused it to get the value unnecessarily. (#123)

# Version 2.0.0

* Memoise now uses caching objects from the cachem package by default. These caches support automatic pruning, so that they won't grow indefinitely. The older-style cache objects in the memoise package are still supported, but we suggest using new-style caches from cachem. (#115)

* Name clashes between function arguments and variables defined when memoising
  no longer occur (@egnha, #43).

* Add Google Cloud Storage support via `cache_gcs()` (@MarkEdmondson1234, #59)

* Add `compress` option for non-memory caches (@coolbutuseless, #71).

* Use absolute path in cache file system backend, so user can change working
  directory after using relative path (@xhdong-umd, #51, #65)

* Add `drop_cache()` to drop the cached result for particular arguments
  (@richardkunze, #78)

* Suppress messages of `aws.s3::head_object` within `cache_s3`'s `cache_has_key`
  to avoid printing of 404 messages for new keys (@stelsemeyer, #96).

# Version 1.1.0
* Caches now hash the function body along with the arguments, to ensure
  functions with identical arguments use a separate file-system cache. (#38)
* Handle missing arguments in memoised functions for simple cases not using
  non-standard-evaluation (#19).
* `memoise()` gains a `cache=` argument to specify an external cache. Two types
  of caches are available, `cache_s3()` for amazon S3 and
  `cache_filesystem()` for a file system cache (#25, @danielecook).

# Version 1.0.0
* `memoise()` now signals an error if an already memoised function is used as
  input (#4, @richierocks).
* `has_cache()` function added which returns a boolean depending on if the
  given call is cached or not (#10, @dkesh).
* Memoised functions now have a print method which displays the original
  function definition, rather than the memoisation code (#15, @jimhester).
* A memoised function now has the same interface as the original function,
  if the original function is known when `memoise` is called. (Otherwise,
  the old behavior is invoked, with a warning.) (#14, @krlmlr)
* The enclosing environment of the memoised function is specified explicitly,
  defaults to `parent.frame()`.
* `is.memoised` now checks if the argument is a function.
* Testing infrastructure, full test coverage.

# Version 0.2.1

* Update to fix outstanding R CMD check issues.

# Version 0.2 (2010-11-11)

## New features

* Memoised functions now have an attribute memoised=TRUE, and
  is.memoised() tests whether a function is memoised. (Contributed by
  Sietse Brouwer.)

## Improvements

* Documentation is now more elaborate, and hopefully more accessible to
  newcomers. Thanks to Sietse Brouwer for the verbosity.