[R-pkg-devel] May .External2() be used in packages?

2024-05-01 Thread Konrad Rudolph
Hello, Is the `.External2()` function part of the public API, and can it be used in R packages submitted to CRAN? I would like to start using it in a package, and there *are* packages on CRAN which use it. But its man page [1] calls it “internal”, R-exts doesn’t mention it at all (unlike `.C()`, `

Re: [R-pkg-devel] [External] May .External2() be used in packages?

2024-05-01 Thread luke-tierney
.External2() is not in the API and is not intended to be used in packages. Packages that for whatever reason have chosen to use it could instead use .External(), and that is what yo should use. I don't expect that to be enforced by the check code soon, but it might be. [.External2() exists for h

Re: [R-pkg-devel] [External] May .External2() be used in packages?

2024-05-01 Thread Konrad Rudolph
Thanks, That’s a shame but good to know. Packages that for whatever reason have chosen to use it > could instead use .External(), and that is what yo should use. Unfortunately .External() is not a replacement (in general, or for my purpose) since it’s missing the `call` and `rho` arguments, and

Re: [R-pkg-devel] [External] May .External2() be used in packages?

2024-05-01 Thread luke-tierney
yOn Wed, 1 May 2024, Konrad Rudolph wrote: Thanks, That’s a shame but good to know. Packages that for whatever reason have chosen to use it could instead use .External(), and that is what yo should use. Unfortunately .External() is not a replacement (in general, or for my purpose

Re: [R-pkg-devel] [External] May .External2() be used in packages?

2024-05-01 Thread Konrad Rudolph
Hi Luke, Thanks, obviously that will work and I didn’t think of it. In my defence I had previously used match.call() to capture the call on the R side, and representative microbenchmarks show that it adds a prohibitive overhead for my use-case. On the C side I only need the caller information in

Re: [R-pkg-devel] re-exporting plot method?

2024-05-01 Thread Kevin R. Coombes
Hi Simon, Thanks for the detailed answer. I had considered all those possibilities, and was hoping that I had just missed something obvious. I have been using S4 classes in my own packages for quite a while. But here, I didn't see any need to create my own class. Now, I may make my own, whic