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.mil...@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 <
> berryboessenk...@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@r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-package-devel
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-package-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>

        [[alternative HTML version deleted]]

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to