[R-pkg-devel] if statements in NAMESPACE file

John Harrold john@m@h@rro|d @end|ng |rom gm@||@com
Thu Sep 30 23:50:37 CEST 2021


I don't have cigwin installed but from the command window, the terminal
that Git installs, RGui, and RStudio they all return "windows" for the
.Platform$OS.type for me.

On Thu, Sep 30, 2021 at 2:38 PM Duncan Murdoch <murdoch.duncan using gmail.com>
wrote:

> On 30/09/2021 5:21 p.m., Jeff Newmiller wrote:
> > What if you are on Windows but running R at the command prompt, or via
> cygwin, or in the console window of RStudio?
> >
> > This seems unstable to me.
>
> Sorry, too much context missing.  What's unstable?
>
> Duncan Murdoch
>
> >
> > On September 30, 2021 11:52:16 AM PDT, Andrew Simmons <
> akwsimmo using gmail.com> wrote:
> >> Hello,
> >>
> >>
> >> I'm updating my package 'this.path' which is supposed to retrieve the
> >> absolute path of the executing script when called. It's similar to
> 'here',
> >> except that 'here' constructs paths relative to a project directory,
> >> whereas 'this.path' constructs paths relative to script directories. I
> was
> >> updating the section where I retrieve the executing script's path while
> >> running from a script open in Rgui for Windows, and I needed
> >> utils::getWindowsHandles to do such a thing. But
> utils::getWindowsHandles
> >> is a Windows only function, I
> >> would imagine that 'utils' contains a similar line of code as above:
> >>
> >>
> >> if (.Platform$OS.type == "windows")
> >>     getWindowsHandles <- function() ...
> >>
> >>
> >> and then in the NAMESPACE:
> >>
> >>
> >> if (.Platform$OS.type == "windows")
> >>     export(getWindowsHandles)
> >>
> >>
> >> so I'd like to change my code to getWindowsHandles and import
> >> getWindowsHandles from utils, but I can only do that on Windows, and so
> the
> >> conditional importing should work for me. At no point does my function
> >> mis-behave because of a attempting to use a function that isn't
> exported on
> >> that platform, because within the function it only uses
> getWindowsHandles
> >> if the OS is Windows.
> >>
> >>
> >> On Thu, Sep 30, 2021 at 11:01 AM Mark Miller <
> mark.roman.miller using gmail.com>
> >> wrote:
> >>
> >>> Returning to the original question, if it's helpful: I'd like to know
> what
> >>> constraints led to considering an export only available on Windows,
> and see
> >>> if we can suggest some other designs. It'd be good to keep the user's
> >>> mental model abstracted from the platform they're working on. There are
> >>> often unavoidable differences due to platform, but usually they're
> handled
> >>> with warnings and errors rather than selective exports.
> >>>
> >>> On Thu, Sep 30, 2021 at 3:40 AM Berry Boessenkool <
> >>> berryboessenkool using hotmail.com> wrote:
> >>>
> >>>>
> >>>> One of the very best fortunes nominations!
> >>>>
> >>>> [...]
> >>>>
> >>>>    I suspect something like
> >>>>
> >>>>     if (stats::runif(1) > 0.5) export(someFunction)
> >>>>
> >>>> would work too, for a particularly frustrating experience for your
> >>>> users.  It would mean half the installs export the function, and half
> >>>> don't.
> >>>>
> >>>> Duncan Murdoch
> >>>>
> >>>>
> >>>>          [[alternative HTML version deleted]]
> >>>>
> >>>> ______________________________________________
> >>>> R-package-devel using r-project.org mailing list
> >>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> >>>>
> >>>
> >>>          [[alternative HTML version deleted]]
> >>>
> >>> ______________________________________________
> >>> R-package-devel using r-project.org mailing list
> >>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> >>>
> >>
> >>      [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> 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
>


-- 
John
:wq

	[[alternative HTML version deleted]]



More information about the R-package-devel mailing list