r-lib / roxygen2

Generate R package documentation from inline R comments
https://roxygen2.r-lib.org
Other
580 stars 231 forks source link

Checking for missing S3 method exports hangs "forever" if you have large data objects in the package #1593

Open jranke opened 4 months ago

jranke commented 4 months ago

In package yet unpublished I have a large data object (the .rda file has about 6 MB). With current roxygen versions, the namespace roclet hangs here

https://github.com/r-lib/roxygen2/blob/main/R/namespace.R#L402

This is apparently very inefficient if you have large objects in s3objects. If I remove the data object from the package, namespace generation proceeds swiftly as usual.

alexpghayes commented 3 months ago

I'm running into this as well with https://github.com/alexpghayes/latentnetmediate and it's pretty debilitating. Downgrading to version 7.2.0 resolved my issue temporarily.

Edit: #1594 also resolves my issue. Thanks!

jranke commented 2 months ago

Hi, I wonder if noone with commit rights for roxygen is affected by this bug? What about @krlmlr or @DavisVaughan , could you maybe have a look?

gravesti commented 4 days ago

I was hoping this fix would make it into this latest release. To help demonstrate for any reviewers the problem, with my package which has a few moderately large example data sets but all .rda < 1MB.

with 7.3.2:

> system.time({roxygen2::roxygenise()})
ℹ Loading TrialEmulation
   user  system elapsed 
272.816   0.445 274.110 

with the proposed fix in #1593 :

> system.time({roxygen2::roxygenise()})
ℹ Loading TrialEmulation
   user  system elapsed 
  5.187   0.156   2.700