New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid eager evaluation of arg in vec_as_location*() and vec_recycle() #1150
Comments
This would require a new kind of |
The way I see it we could use a technique similar to |
Would you review a PR? |
Simpler reprex: library(vctrs)
vec_as_subscript(1, arg = { print("oof"); deparse(quote(i)) })
#> [1] "oof"
#> [1] 1 Created on 2021-07-20 by the reprex package (v2.0.0) The |
@lionel-: I now understand your remark regarding the new I think we can do this in baby steps. I have found 8 instances of |
I think you can omit Maybe call it |
I need to pass two items to the new |
Example: in .Call(
vctrs_as_location,
...,
arg = ~arg
) instead of .Call(
vctrs_as_location,
...,
arg = arg
) . |
I'll go with using the C-callable equivalents |
I'd rather not bring quosures into this. Let's use a list that contains an argument name and an environment. These are internal data structures. |
Lists and quosures suffer from the same problem, we'd need to protect these objects globally. Going with an internal caller-allocated struct. |
for pretty error messages in tibble.
Do we need to replace
.Call()
by something different?It would be great to move the
check_dots_empty()
check to C code too.Created on 2020-06-15 by the reprex package (v0.3.0)
The text was updated successfully, but these errors were encountered: