On 03/06/2014, 4:12 AM, Gavin Simpson wrote:
On 2 June 2014 11:44, Duncan Murdoch <murdoch.dun...@gmail.com
<mailto:murdoch.dun...@gmail.com>> wrote:
On 03/06/2014, 12:58 AM, Yihui Xie wrote:
Please also note that I do not expect R core or CRAN maintainers
to do
any extra work: package authors can easily disable tangle by
themselves without anything special flags to R CMD build or R CMD
check. The vignettes are still built normally (in terms of
"weave"). I
brought forward the discussion to hear the possible harm that I was
potentially not aware of when we disable tangle for R package
vignettes (e.g. does it affect the quality of the package?). So
far I
have not heard real harm (I admit my judgment is subjective).
Several of us have told you the real harm: it means that users
can't easily extract a script that replicates the computations done
in the vignette. That's a useful thing to be able to do.
Isn't the issue here that `tangle()` doesn't, currently, "extract a
script that replicates the computations done in the vignette", but
rather does so only partially?
No, I think the issue is that some people don't want to have to
guarantee that the tangled source produces the same results. R doesn't
guarantee it, it is up to the author to do so.
People seem to be arguing across one another throughout this thread.
Yihui has identified an infelicity in the tangle implementation. Turning
off tangling + sourcing in R CMD check may not be a desirable solution,
so if the aim is to extract R code to replicate the computations in the
vignette, tangle() needs to be modified to allow for inclusion
(optional) of \Sexpr "chunks".
That's one solution, and the other is to limit \Sexpr code to things
with no side effects, as Sweave was originally designed.
To move this thread forwards, would contributions that added this
optional feature to tangle() be considered by R Core? If so, perhaps
those affected by the current infelicity might wish to propose patches
to the R sources which implement a solution?
As I said before, I'm more sympathetic to that solution than to dropping
the requirement that tangled code should work. I think the changes to
base R need only be minimal: only an extra argument to the driver code
for the tangling. Users who want to use this feature should write their
own (or use someone else's if they don't' mind an extra dependency) as a
"non-Sweave vignette driver", whose implementation is to call Stangle
with the non-default parameter setting.
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel