[R-pkg-devel] [FWD] [CRAN-pretest-archived] CRAN submission JuliaConnectoR 0.5.0
Stefan Lenz IMBI
|enz @end|ng |rom |mb|@un|-|re|burg@de
Tue Apr 7 18:40:02 CEST 2020
Thank you very much for your comment.
Could you elaborate how you think that it could interfere with the help system?
I haven't yet connected the Julia help with the R help, as the R help system is quite complex and RStudio handles it again differently. So it's simply like the functions were declared on the command line. They have no help.
A simply way to print the help for a Julia function, e.g. the function "first", is to call
juliaEval("@doc first")
This then simply prints the output on the command line.
----------------ursprüngliche Nachricht-----------------
Von: Jeff Newmiller [jdnewmil using dcn.davis.ca.us]
An: r-package-devel using r-project.org, Duncan Murdoch [murdoch.duncan using gmail.com], Stefan Lenz IMBI [lenz using imbi.uni-freiburg.de]
Datum: Mon, 06 Apr 2020 10:51:53 -0700
-------------------------------------------------
> One could take the position that the library and require functions were a mistake
> to begin with and that all contributed packages should be accessed using ::... or
> one could recognize that these functions are an expected feature of R at this
> point and then it is not defensible to ban the proposed approach of importing
> names as Stefan wants to. I don't think it is fair to require this higher level of
> specificity just because it involves use of attach.
>
> That said, another feature of R packages is the integrated help system...
> importing Julia functions wholesale may lead to problems with consistency in
> navigating the help files. IMO it may be justifiable to ban this particular
> syntactic convenience to maintain some separation in the minds of users looking
> for help on these new functions, since the syntactic and semantic structure of
> functions from another language may not align well with normal R functions. But I
> am not familiar with Julia or Stefan's package or the support it brings in this
> area... I just disagree with banning a "library" lookalike function "just
> because" it happens to involve attach.
>
> On April 6, 2020 8:40:12 AM PDT, Duncan Murdoch <murdoch.duncan using gmail.com>
> wrote:
>>On 06/04/2020 11:25 a.m., Stefan Lenz IMBI wrote:
>>> Yes, as I wrote earlier, I would like to imitate the behaviour of
>>loading an R package
>>>
>>> juliaUsing("SomeJuliaPackage") # exports myJuliaFunction
>>> myJuliaFunction()
>>>
>>> like R:
>>>
>>> library("MyRPackage") # exports myRFunction
>>> myRFunction()
>>>
>>> I could return an environment, such that the call becomes
>>>
>>> attach(juliaUsing("SomeJuliaPackage"))
>>> myJuliaFunction()
>>
>>I wouldn't use it that way. I'd write it as
>>
>> sjp <- juliaUsing("SomeJuliaPackage")
>> sjp$myJuliaFunction()
>>
>>This is similar to the advice to use pkg::foo() rather than
>>library(pkg)
>>followed by plain foo() in the code.
>>
>>Duncan Murdoch
>>
>>>
>>> But calling juliaUsing(), as it is now, takes care that if a package
>>is imported a second time,
>>> the first data base is removed via detach().
>>> This way, users do not have to worry about calling juliaUsing()
>>mutliple times in a script, same
>>> as R users don't have to worry about calling library() multiple
>>times.
>>> If you call the code with attach() multiple times and do not detach,
>>you get your screen cluttered with
>>> warnings "xxx is masked by xxx".
>>> So I would say it would decrease user-friendliness to return an
>>environment.
>>> I also want to make explicit, that the call to attach
>>> occurs only once in my code, after creating the environment:
>>>
>>> envName <- paste0("JuliaConnectoR:", absoluteModulePath)
>>> if (envName %in% search()) {
>>> detach(envName, character.only = TRUE)
>>> }
>>> attach(funenv, name = envName)
>>>
>>> This code is only called by juliaImport() and juliaUsing(), which
>>aren't called by any other function of
>>> the package
>>> and are supposed to be called directly by the user.
>>>
>>> Stefan
>>>
>>> ----------------ursprüngliche Nachricht-----------------
>>> Von: Duncan Murdoch [murdoch.duncan using gmail.com]
>>> An: Dirk Eddelbuettel [edd using debian.org], Ben Bolker
>>[bbolker using gmail.com]
>>> Kopie: List r-package-devel [r-package-devel using r-project.org]
>>> Datum: Mon, 6 Apr 2020 11:00:09 -0400
>>> -------------------------------------------------
>>>
>>>
>>>> On 06/04/2020 10:49 a.m., Dirk Eddelbuettel wrote:
>>>>>
>>>>> On 6 April 2020 at 08:38, Ben Bolker wrote:
>>>>> | Just reply to the CRAN maintainers and explain this situation.
>>It¨s
>>>>> | slightly buried, but the e-mail you received does say:
>>>>> |
>>>>> | > If you are fairly certain the rejection is a false positive,
>>please reply-all to this
>>>>> | > message and explain.
>>>>>
>>>>> True, but this misses the "Letter of the law" versus the "Spirit of
>>the law".
>>>>>
>>>>> It might be worth mentioning that use of attach() is seen, to find
>>one poor
>>>>> analogy, pretty much like use of global variables these days. "Just
>>because
>>>>> you could does not mean you should".
>>>>>
>>>>> See e.g. one of the first google hits for 'r do not use attach'
>>here:
>>>>>
>>https://stackoverflow.com/questions/10067680/why-is-it-not-advisable-to-use-attach-in-r-and-what-should-i-use-instead
>>>>
>>>> I don't have a strong opinion on this: the proposed use seems to be
>>no
>>>> worse than library() or require(). Those are fine for users to use,
>>but
>>>> are discouraged in a package. If the attach() never happens without
>>an
>>>> explicit request from the user (and that's what it sounds like), I'd
>>say
>>>> it's probably okay.
>>>>
>>>> However, there is an easy workaround: just return the environment
>>>> without attaching it. Then the user has the choice of attaching it,
>>or
>>>> using it as a prefix when they call the functions in it. So it's not
>>as
>>>> though this will destroy the utility of the package if Stefan isn't
>>>> allowed to call attach().
>>>>
>>>> Duncan Murdoch
>>>>
>>>> ______________________________________________
>>>> R-package-devel using r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>>>
>>>
>>>
>>
>>______________________________________________
>>R-package-devel using r-project.org mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-package-devel
>
--
Stefan Lenz
Institut für Medizinische Biometrie und Statistik
Medizinische Fakultät / Universitätsklinikum Freiburg
Postadresse: Stefan-Meier-Str. 26, 79104 Freiburg
Tel.: 0761/203-6670
E-Mail: lenz using imbi.uni-freiburg.de
More information about the R-package-devel
mailing list