Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@
^\.httr-oauth$
^\.github$
^codecov\.yml$
(^|/)\.clangd$
^\.cache$
^compile_commands\.json$
^dev-notes$
5 changes: 3 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Package: lazyeval
Version: 0.2.2
Version: 0.2.3
Title: Lazy (Non-Standard) Evaluation
Description: An alternative approach to non-standard evaluation using
formulas. Provides a full implementation of LISP style 'quasiquotation',
Expand All @@ -20,4 +20,5 @@ Suggests:
testthat,
covr
VignetteBuilder: knitr
RoxygenNote: 6.1.1
RoxygenNote: 7.3.3
Config/build/compilation-database: true
20 changes: 12 additions & 8 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# lazyeval 0.2.3

* Fixes for CRAN checks. The new implementation is now compliant with the public C API of R and might differ from the historical one in subtle ways.


# lazyeval 0.2.2

Expand Down Expand Up @@ -25,21 +29,21 @@ Lazyeval has a new system for lazy-eval based on formulas, described in depth i

There are three key components:

* `f_eval()` evaluates a formula in the environment where it was defined.
If supplied, values are first looked for in an optional `data` argument.
* `f_eval()` evaluates a formula in the environment where it was defined.
If supplied, values are first looked for in an optional `data` argument.
Pronouns `.data` and `.env` can be used to resolve ambiguity in this case.
(#43). Longer forms `f_eval_rhs()` and `f_eval_lhs()` emphasise the side
of the formula that you want to evaluate (#64).

* `f_interp()` provides a full quasiquoting system using `uq()` for unquote
and `uqs()` for unquote-splice (#36).

* `f_capture()` and `dots_capture()` make it easy to turn promises
and `...` into explicit formulas. These should be used sparingly, as
generally lazy-eval is preferred to non-standard eval.

* For functions that work with `...`, `f_list()` and `as_f_list()` make it
possible to use the evaluated LHS of a formula to name the elements of a
possible to use the evaluated LHS of a formula to name the elements of a
list (#59).

The core components are accompanied by a number of helper functions:
Expand All @@ -48,12 +52,12 @@ The core components are accompanied by a number of helper functions:

* Create a formula from a quoted call and an environment with `f_new()`.

* "Unwrap" a formula removing one level from the stack of parent environments
* "Unwrap" a formula removing one level from the stack of parent environments
with `f_unwrap()`.

* Get or set either side of a formula with `f_rhs()` or `f_lhs()`, and
the environment with `f_env()`.

* Convert to text/label with `f_text()` and `f_label()`.

I've also added `expr_find()`, `expr_text()` and `expr_label()` explicitly to find the expression associated with a function argument, and label it for output (#58). This is one of the primary uses cases for NSE. `expr_env()` is a similar helper that returns the environment associated with a promise (#67).
Expand Down
3 changes: 1 addition & 2 deletions R/f-interp.R
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
#' Formally, \code{f_interp} is a quasiquote function, \code{uq()} is the
#' unquote operator, and \code{uqs()} is the unquote splice operator.
#' These terms have a rich history in LISP, and live on in modern languages
#' like \href{Julia}{http://docs.julialang.org/en/release-0.1/manual/metaprogramming/}
#' and \href{Racket}{https://docs.racket-lang.org/reference/quasiquote.html}.
#' like Julia and Racket.
#'
#' @param f A one-sided formula.
#' @param x For \code{uq} and \code{uqf}, a formula. For \code{uqs}, a
Expand Down
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# lazyeval

[![Lifecycle: retired](https://img.shields.io/badge/lifecycle-retired-orange.svg)](https://www.tidyverse.org/lifecycle/#retired)
[![Build Status](https://travis-ci.org/hadley/lazyeval.png?branch=master)](https://travis-ci.org/hadley/lazyeval)
[![Coverage Status](http://codecov.io/github/hadley/lazyeval/coverage.svg?branch=master)](http://codecov.io/github/hadley/lazyeval?branch=master)
[![Lifecycle: deprecated](https://img.shields.io/badge/lifecycle-deprecated-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html)

The lazyeval package provides tools that make it easier to correctly implement non-standard evaluation (NSE) in R. You use lazy evaluation by requiring the user to "quote" specially evaluated arguments with `~`, and then using the lazyeval package to compute with those formulas. It is also possible to eliminate the use of the `~` by converting promises to formulas. This does make programming with such functions a little harder, but it can be worth it in certain situations. See `vignette("lazyeval")` for more details.

Expand All @@ -20,6 +18,6 @@ Install the development version from github with:
# install.packages("devtools")
devtools::install_github("hadley/lazyeval", build_vignettes = TRUE)
```
## Status [![Lifecycle: retired](https://img.shields.io/badge/lifecycle-retired-orange.svg)](https://www.tidyverse.org/lifecycle/#retired)
## Status [![Lifecycle: deprecated](https://img.shields.io/badge/lifecycle-deprecated-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html)

lazyeval is retired: this means only changes necessary to keep it on CRAN will be made. We recommend using [rlang](https://rlang.r-lib.org/) instead.
19 changes: 1 addition & 18 deletions cran-comments.md
Original file line number Diff line number Diff line change
@@ -1,18 +1 @@

This should fix the rchk warnings.

## Test environments

* local OS X install, R-release
* ubuntu 12.04, R 3.1 -> R-devel
* win-builder (R-devel)


## R CMD check results

0 errors | 0 warnings | 0 notes


## revdepcheck results

I haven't checked the reverse dependencies because the only changes are additional `PROTECT()`.
Now compliant with the public C API
2 changes: 1 addition & 1 deletion man/expr_label.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions man/f_interp.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion man/f_text.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

163 changes: 0 additions & 163 deletions revdep/README.md
Original file line number Diff line number Diff line change
@@ -1,165 +1,2 @@
# Platform

|field |value |
|:--------|:----------------------------|
|version |R version 3.4.2 (2017-09-28) |
|os |macOS Sierra 10.12.6 |
|system |x86_64, darwin15.6.0 |
|ui |X11 |
|language |(EN) |
|collate |en_US.UTF-8 |
|tz |Europe/Brussels |
|date |2017-10-18 |

# Dependencies

|package |old |new |Δ |
|:--------|:-----|:-----|:--|
|lazyeval |0.2.0 |0.2.1 |* |

# Revdeps

## Couldn't check (7)

|package |version |error |warning |note |
|:--------------------------------|:-------|:-----|:-------|:----|
|[cpr](problems.md#cpr) |0.2.3 |1 | | |
|[HTSSIP](problems.md#htssip) |1.2.0 |1 | | |
|[jqr](problems.md#jqr) |1.0.0 |1 | | |
|[mrgsolve](problems.md#mrgsolve) |0.8.9 |1 | | |
|[openair](problems.md#openair) |2.1-5 |1 | | |
|[ropenaq](problems.md#ropenaq) |0.2.2 |1 | | |
|[sf](problems.md#sf) |0.5-4 |1 | | |

## All (127)

|package |version |error |warning |note |
|:------------------------------------------------------|:-------|:-----|:-------|:----|
|alakazam |0.2.8 | | | |
|AnnotationFilter |1.0.0 | | | |
|assertr |2.0.2.2 | | | |
|[atlantistools](problems.md#atlantistools) |0.4.3 | |1 | |
|basecallQC |1.0.1 | | | |
|binomen |0.1.2 | | | |
|bioinactivation |1.1.5 | | | |
|carpenter |0.2.1 | | | |
|chunked |0.4 | | | |
|cofeatureR |1.0.1 | | | |
|[condformat](problems.md#condformat) |0.6.0 |1 | |1 |
|corrr |0.2.1 | | | |
|[cpr](problems.md#cpr) |0.2.3 |1 | | |
|crosstalk |1.0.0 | | | |
|crplyr |0.1.4 | | | |
|cytominer |0.1.0 | | | |
|datastepr |0.0.2 | | | |
|ddpcr |1.8 | | | |
|distrr |0.0.4 | | | |
|dtplyr |0.0.2 | | | |
|easyformatr |0.1.2 | | | |
|[emil](problems.md#emil) |2.2.8 | | |1 |
|EpiModel |1.5.0 | | | |
|estprod |0.0.1 | | | |
|extdplyr |0.1.4 | | | |
|[eyetrackingR](problems.md#eyetrackingr) |0.1.6 |2 | | |
|[flextable](problems.md#flextable) |0.3.0 | | |1 |
|[foghorn](problems.md#foghorn) |0.4.4 |1 | | |
|fold |0.2.2 | | | |
|forestmodel |0.4.3 | | | |
|funModeling |1.6.5 | | | |
|[gaiah](problems.md#gaiah) |0.0.2 | | |1 |
|[GenomicDataCommons](problems.md#genomicdatacommons) |1.0.5 | | |2 |
|geojson |0.1.2 | | | |
|[geoparser](problems.md#geoparser) |0.1.1 |1 |1 | |
|ggforce |0.1.1 | | | |
|[ggguitar](problems.md#ggguitar) |0.1.1 | | |1 |
|ggloop |0.1.0 | | | |
|[ggplot2](problems.md#ggplot2) |2.2.1 | | |1 |
|[ggraptR](problems.md#ggraptr) |1.0 |1 | |1 |
|[ggstance](problems.md#ggstance) |0.3 | | |1 |
|[ggvis](problems.md#ggvis) |0.4.3 | | |1 |
|[grattan](problems.md#grattan) |1.5.1.2 | | |1 |
|[gutenbergr](problems.md#gutenbergr) |0.1.3 | | |1 |
|[harrietr](problems.md#harrietr) |0.2.2 | | |1 |
|heemod |0.9.2 | | | |
|[HTSSIP](problems.md#htssip) |1.2.0 |1 | | |
|[hurricaneexposure](problems.md#hurricaneexposure) |0.0.1 | | |1 |
|[huxtable](problems.md#huxtable) |1.0.0 | | |1 |
|iadf |0.1.0 | | | |
|IAT |0.3 | | | |
|[jqr](problems.md#jqr) |1.0.0 |1 | | |
|kntnr |0.4.1 | | | |
|lans2r |1.0.5 | | | |
|[lidR](problems.md#lidr) |1.3.1 | | |1 |
|lifelogr |0.1.0 | | | |
|[loopr](problems.md#loopr) |1.0.1 | | |1 |
|[lplyr](problems.md#lplyr) |0.1.6 |1 |1 | |
|manipulateWidget |0.7.0 | | | |
|[mapfuser](problems.md#mapfuser) |0.1.2 |1 | | |
|[markmyassignment](problems.md#markmyassignment) |0.6.1 | | |1 |
|[mason](problems.md#mason) |0.2.5 | | |1 |
|metacoder |0.1.3 | | | |
|[metagenomeFeatures](problems.md#metagenomefeatures) |1.8.1 | | |2 |
|metaplot |0.2.1 | | | |
|mockr |0.1 | | | |
|[modelr](problems.md#modelr) |0.1.1 | | |1 |
|[mosaic](problems.md#mosaic) |1.1.0 | | |2 |
|mosaicCore |0.4.0 | | | |
|[mosaicModel](problems.md#mosaicmodel) |0.3.0 | | |1 |
|[mrgsolve](problems.md#mrgsolve) |0.8.9 |1 | | |
|ncappc |0.2.1.1 | | | |
|networkreporting |0.1.1 | | | |
|nlstimedist |1.1.1 | | | |
|[nonmemica](problems.md#nonmemica) |0.7.6 | |1 |1 |
|[observer](problems.md#observer) |0.1.2 | | |1 |
|ompr |0.6.0 | | | |
|[openair](problems.md#openair) |2.1-5 |1 | | |
|padr |0.3.0 | | | |
|[parsemsf](problems.md#parsemsf) |0.1.0 |2 |1 |1 |
|photobiologyInOut |0.4.13 | | | |
|[PKPDmisc](problems.md#pkpdmisc) |2.0.0 | | |1 |
|plotly |4.7.1 | | | |
|poplite |0.99.19 | | | |
|[purrrlyr](problems.md#purrrlyr) |0.0.2 | | |1 |
|[R6Frame](problems.md#r6frame) |0.1.0 |1 | | |
|[rbokeh](problems.md#rbokeh) |0.5.0 | | |2 |
|request |0.1.0 | | | |
|rex |1.1.1 | | | |
|[rfishbase](problems.md#rfishbase) |2.1.2 | | |1 |
|[rgho](problems.md#rgho) |1.0.1 |1 |1 | |
|RmarineHeatWaves |0.15.7 | | | |
|[RNeXML](problems.md#rnexml) |2.0.7 | | |1 |
|[ropenaq](problems.md#ropenaq) |0.2.2 |1 | | |
|[rPref](problems.md#rpref) |1.2 | | |1 |
|rprev |0.2.4 | | | |
|[rscorecard](problems.md#rscorecard) |0.4.0 | |1 | |
|RSDA |2.0.2 | | | |
|[rtimicropem](problems.md#rtimicropem) |1.3 | | |1 |
|scrubr |0.1.1 | | | |
|[sf](problems.md#sf) |0.5-4 |1 | | |
|[shazam](problems.md#shazam) |0.1.8 | | |1 |
|simPH |1.3.10 | | | |
|[SpaDES.core](problems.md#spadescore) |0.1.0 |1 | |1 |
|[sparklyr](problems.md#sparklyr) |0.6.3 |1 | | |
|spdplyr |0.1.3 | | | |
|srvyr |0.2.2 | | | |
|statar |0.6.5 | | | |
|[statisticalModeling](problems.md#statisticalmodeling) |0.3.0 |1 |1 |1 |
|summariser |0.1.0 | | | |
|survutils |1.0.0 | | | |
|[sweep](problems.md#sweep) |0.2.0 | | |1 |
|[tadaatoolbox](problems.md#tadaatoolbox) |0.13.0 | | |2 |
|[taxa](problems.md#taxa) |0.1.0 | | |1 |
|[tbl2xts](problems.md#tbl2xts) |0.1.2 | | |1 |
|[tidyquant](problems.md#tidyquant) |0.5.3 |1 |1 |1 |
|tigger |0.2.11 | | | |
|[timetk](problems.md#timetk) |0.1.0 | | |1 |
|treeplyr |0.1.3 | | | |
|unpivotr |0.2.1 | | | |
|[valaddin](problems.md#valaddin) |0.1.2 | | |1 |
|[vqtl](problems.md#vqtl) |1.2.0 | | |1 |
|VWPre |0.9.6 | | | |
|webmockr |0.1.0 | | | |
|wrangle |0.4 | | | |
|wrswoR.benchmark |0.2 | | | |
|xpose4 |4.6.0 | | | |

7 changes: 7 additions & 0 deletions revdep/cran.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## revdepcheck results

We checked 52 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package.

* We saw 0 new problems
* We failed to check 0 packages

1 change: 1 addition & 0 deletions revdep/failures.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*Wow, no problems at all. :)*
Loading
Loading