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 <[email protected]>
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 <
> [email protected]> 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]]
> >
> > ______________________________________________
> > [email protected] mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-package-devel
> >
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel