pkgload icon indicating copy to clipboard operation
pkgload copied to clipboard

load_all(reset = FALSE): locked binding

Open kummerer94 opened this issue 2 years ago • 12 comments

Hello,

I want to report the following bug / weird behaviour:

  1. I do pkgload::load_all() once.
  2. Then I change something in any file. Just a small change.
  3. Then I try to run pkgload::load_all(reset = FALSE).
  4. I get this error:
Error in `load_all()`:
! Failed to load R/test.R
Caused by error:
! cannot change value of locked binding for 'test'
Run `rlang::last_error()` to see where the error occurred.
  • I can reproduce this in any R repository and it does not depend on my actual code. Even if I only place on R file in my package (see below), I still get this error.

R file:

test <- function() {
	message("THIS IS MY TEST")
	message("HIER")
}

I have pkgload version 1.3.2 installed. I also tested it with the current development version of the repository here and it produced the same error. I suspect there to be a problem with the recently changed way of locking the bindings when doing pkgload::load_all() but I am by no means an expert.

I would appreciate any kind of help greatly and I am happy to help to reproduce this issue. Thanks!

kummerer94 avatar Mar 08 '23 15:03 kummerer94

Can you post a sessionInfo() please?

lionel- avatar Mar 08 '23 16:03 lionel-

Of course, sorry for not including that in the first place.

R version 4.2.2 (2022-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22621)

Matrix products: default

locale:
[1] LC_COLLATE=English_Germany.utf8  LC_CTYPE=English_Germany.utf8    LC_MONETARY=English_Germany.utf8 LC_NUMERIC=C                     LC_TIME=English_Germany.utf8

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base

other attached packages:
[1] MyPackage_1.0.0   httpuv_1.6.9        keyring_1.3.1       AzureKeyVault_1.0.5

loaded via a namespace (and not attached):
 [1] AzureGraph_1.3.2   AzureAuth_1.3.3    Rcpp_1.0.10        AzureRMR_2.4.3     magrittr_2.0.3     rappdirs_0.3.3     pkgload_1.3.2.9000 R6_2.5.1           rlang_1.0.6
[10] tools_4.2.2        pkgbuild_1.4.0     data.table_1.14.8  cli_3.6.0          withr_2.5.0        assertthat_0.2.1   rprojroot_2.0.3    crayon_1.5.2       processx_3.8.0
[19] callr_3.7.3        later_1.3.0        promises_1.2.0.1   ps_1.7.2           compiler_4.2.2     desc_1.4.2         prettyunits_1.1.1  renv_0.15.4

kummerer94 avatar Mar 08 '23 22:03 kummerer94

So that's with a recent version of R. I'm not sure how to help since I can't reproduce.

lionel- avatar Mar 09 '23 07:03 lionel-

oops sorry now I see the reset = FALSE, I'll take a look.

lionel- avatar Mar 09 '23 07:03 lionel-

Why are you using reset = FALSE by the way? If it ends up being broken and almost no one noticed, maybe we should remove that option.

lionel- avatar Mar 09 '23 07:03 lionel-

I am working with a large package daily and this option speeds up pkgload::load_all() from 10-12 seconds to 1-2 seconds which makes the development experience much nicer.

kummerer94 avatar Mar 09 '23 08:03 kummerer94

When did this command start breaking for you?

You can try out my WIP at r-lib/pkgload@fix-lock. But I kept finding out new issues with this approach. For instance with purrr:

Warning messages:
1: failed to assign RegisteredNativeSymbol for coerce_impl to coerce_impl since coerce_impl is already defined in the ‘purrr’ namespace 

I work with large packages too without issues. Could you maybe profile a load_all() to see where the time is spent? Maybe we can fix the reset = TRUE path, because I'm tempted to just deprecate reset = FALSE given that it's a completely different code path to support, including all the different edge cases a package can have.

lionel- avatar Mar 09 '23 09:03 lionel-

You can try out my WIP at r-lib/pkgload@fix-lock.

For me, your fix seems to have done the trick (we are not using purrr). But I do understand your concern and also the amount of work necessary to maintain a feature that (apparently) only a few people really use.

I will profile our package and let you know the results. Maybe something special about our package setup makes it slow.

kummerer94 avatar Mar 09 '23 09:03 kummerer94

Sorry, forgot about this:

When did this command start breaking for you?

I think we recently upgraded pkgload and version 1.3.0 was probably the point when the problem first occurred.

kummerer94 avatar Mar 09 '23 09:03 kummerer94

This is the result from the profiling I did:

$by.self
                                  self.time self.pct total.time total.pct
"parse"                                0.82    10.99       0.84     11.26
"lazyLoadDBfetch"                      0.68     9.12       0.72      9.65
"is"                                   0.42     5.63       1.70     22.79
"readLines"                            0.38     5.09       0.40      5.36
"stopifnot"                            0.34     4.56       0.54      7.24
".getClassesFromCache"                 0.22     2.95       0.22      2.95
"getClassDef"                          0.20     2.68       0.46      6.17
".resetInheritedMethods"               0.18     2.41       0.52      6.97
"FUN"                                  0.18     2.41       0.44      5.90
"...elt"                               0.18     2.41       0.18      2.41
"as.list"                              0.18     2.41       0.18      2.41
"doTryCatch"                           0.16     2.14       6.94     93.03
"<Anonymous>"                          0.12     1.61       2.34     31.37
"validObject"                          0.12     1.61       0.50      6.70
".identC"                              0.12     1.61       0.12      1.61
"paste"                                0.10     1.34       0.12      1.61
"length"                               0.10     1.34       0.10      1.34
"initialize"                           0.08     1.07       1.12     15.01
"@<-"                                  0.08     1.07       0.08      1.07
"gettext"                              0.08     1.07       0.08      1.07
".getGeneric"                          0.06     0.80       0.30      4.02
".mergeMethodsTable"                   0.06     0.80       0.22      2.95
"readRDS"                              0.06     0.80       0.12      1.61
".methodPackageSlots"                  0.06     0.80       0.10      1.34
"exists"                               0.06     0.80       0.10      1.34
"get"                                  0.06     0.80       0.10      1.34
".getMethodsTable"                     0.06     0.80       0.08      1.07
"structure"                            0.06     0.80       0.08      1.07
"class"                                0.06     0.80       0.06      0.80
"file.exists"                          0.06     0.80       0.06      0.80
"gzfile"                               0.06     0.80       0.06      0.80
"inDL"                                 0.06     0.80       0.06      0.80
"tryCatchList"                         0.04     0.54       6.94     93.03
"tryCatchOne"                          0.04     0.54       6.94     93.03
"eval"                                 0.04     0.54       3.48     46.65
"getGeneric"                           0.04     0.54       0.40      5.36
"setGeneric"                           0.04     0.54       0.34      4.56
"asMethod"                             0.04     0.54       0.22      2.95
"matchSignature"                       0.04     0.54       0.18      2.41
".MakeSignature"                       0.04     0.54       0.16      2.14
"getSlots"                             0.04     0.54       0.14      1.88
"remove"                               0.04     0.54       0.14      1.88
".cacheClass"                          0.04     0.54       0.10      1.34
"methodsPackageMetaName"               0.04     0.54       0.06      0.80
"unique.default"                       0.04     0.54       0.06      0.80
".requirePackage"                      0.04     0.54       0.04      0.54
"assign"                               0.04     0.54       0.04      0.54
"class<-"                              0.04     0.54       0.04      0.54
"grepl"                                0.04     0.54       0.04      0.54
"isFALSE"                              0.04     0.54       0.04      0.54
"matchDefaults"                        0.04     0.54       0.04      0.54
"read.dcf"                             0.04     0.54       0.04      0.54
"tryCatch"                             0.02     0.27       6.94     93.03
"methods::cacheMetaData"               0.02     0.27       1.68     22.52
"asMethodDefinition"                   0.02     0.27       0.74      9.92
"makeGeneric"                          0.02     0.27       0.32      4.29
"unique"                               0.02     0.27       0.22      2.95
"makeExtends"                          0.02     0.27       0.20      2.68
"body<-"                               0.02     0.27       0.18      2.41
"setDataPart"                          0.02     0.27       0.18      2.41
"extends"                              0.02     0.27       0.14      1.88
".combineExtends"                      0.02     0.27       0.12      1.61
".matchSigLength"                      0.02     0.27       0.12      1.61
"makePrototypeFromClassDef"            0.02     0.27       0.12      1.61
"reconcilePropertiesAndPrototype"      0.02     0.27       0.12      1.61
"as.function"                          0.02     0.27       0.10      1.34
"registerS3methods"                    0.02     0.27       0.10      1.34
".getGenericSigLength"                 0.02     0.27       0.08      1.07
"classGeneratorFunction"               0.02     0.27       0.08      1.07
"srcfilecopy"                          0.02     0.27       0.08      1.07
".findInheritedMethods"                0.02     0.27       0.06      0.80
"order"                                0.02     0.27       0.06      0.80
"setdiff"                              0.02     0.27       0.06      0.80
"%in%"                                 0.02     0.27       0.04      0.54
".addToMetaTable"                      0.02     0.27       0.04      0.54
".getGenericFromCacheTable"            0.02     0.27       0.04      0.54
"get0"                                 0.02     0.27       0.04      0.54
"getClass"                             0.02     0.27       0.04      0.54
"grep"                                 0.02     0.27       0.04      0.54
"slot"                                 0.02     0.27       0.04      0.54
"sub"                                  0.02     0.27       0.04      0.54
".assignMethodsTableMetaData"          0.02     0.27       0.02      0.27
".findAll"                             0.02     0.27       0.02      0.27
".fixPackageSlot"                      0.02     0.27       0.02      0.27
".noMlists"                            0.02     0.27       0.02      0.27
".Primitive"                           0.02     0.27       0.02      0.27
".registerS3method"                    0.02     0.27       0.02      0.27
"[.data.frame"                         0.02     0.27       0.02      0.27
"all"                                  0.02     0.27       0.02      0.27
"as.environment"                       0.02     0.27       0.02      0.27
"as.function.default"                  0.02     0.27       0.02      0.27
"as.vector"                            0.02     0.27       0.02      0.27
"attr"                                 0.02     0.27       0.02      0.27
"basename"                             0.02     0.27       0.02      0.27
"bindTranslations"                     0.02     0.27       0.02      0.27
"cb$putcode"                           0.02     0.27       0.02      0.27
"duplicated"                           0.02     0.27       0.02      0.27
"environment"                          0.02     0.27       0.02      0.27
"file"                                 0.02     0.27       0.02      0.27
"formals<-"                            0.02     0.27       0.02      0.27
"getDataPart"                          0.02     0.27       0.02      0.27
"getOption"                            0.02     0.27       0.02      0.27
"gsub"                                 0.02     0.27       0.02      0.27
"is.list"                              0.02     0.27       0.02      0.27
"isBaseNamespace"                      0.02     0.27       0.02      0.27
"isS4"                                 0.02     0.27       0.02      0.27
"list2env"                             0.02     0.27       0.02      0.27
"mget"                                 0.02     0.27       0.02      0.27
"packageSlot<-"                        0.02     0.27       0.02      0.27
"setup_handlers"                       0.02     0.27       0.02      0.27
"Sys.getenv"                           0.02     0.27       0.02      0.27
"sys.parent"                           0.02     0.27       0.02      0.27

$by.total
                                   total.time total.pct self.time self.pct
"devtools::load_all"                     7.46    100.00      0.00     0.00
"pkgload::load_all"                      7.46    100.00      0.00     0.00
"doTryCatch"                             6.94     93.03      0.16     2.14
"tryCatchList"                           6.94     93.03      0.04     0.54
"tryCatchOne"                            6.94     93.03      0.04     0.54
"tryCatch"                               6.94     93.03      0.02     0.27
"load_code"                              4.70     63.00      0.00     0.00
".External"                              4.66     62.47      0.00     0.00
"force"                                  4.66     62.47      0.00     0.00
"source_many"                            4.66     62.47      0.00     0.00
"source_one"                             4.66     62.47      0.00     0.00
"try_fetch"                              4.66     62.47      0.00     0.00
"withCallingHandlers"                    4.66     62.47      0.00     0.00
"withr_with_dir"                         4.66     62.47      0.00     0.00
"eval"                                   3.48     46.65      0.04     0.54
"<Anonymous>"                            2.34     31.37      0.12     1.61
"do.call"                                2.24     30.03      0.00     0.00
"load_imports"                           2.22     29.76      0.00     0.00
"loadNamespace"                          2.22     29.76      0.00     0.00
"requireNamespace"                       2.22     29.76      0.00     0.00
"check_installed"                        2.20     29.49      0.00     0.00
"deps_check_installed"                   2.20     29.49      0.00     0.00
"detect_installed"                       2.20     29.49      0.00     0.00
"flatten_lgl"                            2.20     29.49      0.00     0.00
"mapply"                                 2.20     29.49      0.00     0.00
"pmap"                                   2.20     29.49      0.00     0.00
"setMethod"                              1.96     26.27      0.00     0.00
"is"                                     1.70     22.79      0.42     5.63
"methods::cacheMetaData"                 1.68     22.52      0.02     0.27
".updateMethodsInTable"                  1.58     21.18      0.00     0.00
"namespaceImportFrom"                    1.44     19.30      0.00     0.00
"asNamespace"                            1.38     18.50      0.00     0.00
"initialize"                             1.12     15.01      0.08     1.07
"new"                                    1.04     13.94      0.00     0.00
"setClass"                               1.00     13.40      0.00     0.00
"parse"                                  0.84     11.26      0.82    10.99
"asMethodDefinition"                     0.74      9.92      0.02     0.27
"lazyLoadDBfetch"                        0.72      9.65      0.68     9.12
"try"                                    0.60      8.04      0.00     0.00
"stopifnot"                              0.54      7.24      0.34     4.56
".resetInheritedMethods"                 0.52      6.97      0.18     2.41
"makeClassRepresentation"                0.52      6.97      0.00     0.00
"validObject"                            0.50      6.70      0.12     1.61
"resetGeneric"                           0.50      6.70      0.00     0.00
"lapply"                                 0.48      6.43      0.00     0.00
"getClassDef"                            0.46      6.17      0.20     2.68
"FUN"                                    0.44      5.90      0.18     2.41
"readLines"                              0.40      5.36      0.38     5.09
"getGeneric"                             0.40      5.36      0.04     0.54
"read_lines_enc"                         0.36      4.83      0.00     0.00
"setIs"                                  0.36      4.83      0.00     0.00
"setGeneric"                             0.34      4.56      0.04     0.54
".checkGroupSigLength"                   0.34      4.56      0.00     0.00
"makeGeneric"                            0.32      4.29      0.02     0.27
".getGeneric"                            0.30      4.02      0.06     0.80
"setup_ns_exports"                       0.30      4.02      0.00     0.00
"add_classes_to_exports"                 0.28      3.75      0.00     0.00
"as<-"                                   0.26      3.49      0.00     0.00
"setAs"                                  0.26      3.49      0.00     0.00
"unlist"                                 0.26      3.49      0.00     0.00
".cacheMethodInTable"                    0.24      3.22      0.00     0.00
".getClassesFromCache"                   0.22      2.95      0.22     2.95
".mergeMethodsTable"                     0.22      2.95      0.06     0.80
"asMethod"                               0.22      2.95      0.04     0.54
"unique"                                 0.22      2.95      0.02     0.27
"as"                                     0.22      2.95      0.00     0.00
"namespaceImport"                        0.22      2.95      0.00     0.00
"Recall"                                 0.22      2.95      0.00     0.00
"makeExtends"                            0.20      2.68      0.02     0.27
".recMembers"                            0.20      2.68      0.00     0.00
"getGroupMembers"                        0.20      2.68      0.00     0.00
"newClassRepresentation"                 0.20      2.68      0.00     0.00
"...elt"                                 0.18      2.41      0.18     2.41
"as.list"                                0.18      2.41      0.18     2.41
"matchSignature"                         0.18      2.41      0.04     0.54
"body<-"                                 0.18      2.41      0.02     0.27
"setDataPart"                            0.18      2.41      0.02     0.27
"completeSubclasses"                     0.18      2.41      0.00     0.00
"ensureGeneric.fdef"                     0.18      2.41      0.00     0.00
"implicitGeneric"                        0.18      2.41      0.00     0.00
"isSealedMethod"                         0.18      2.41      0.00     0.00
".MakeSignature"                         0.16      2.14      0.04     0.54
".genericOrImplicit"                     0.16      2.14      0.00     0.00
"fun"                                    0.16      2.14      0.00     0.00
"getMethod"                              0.16      2.14      0.00     0.00
"runHook"                                0.16      2.14      0.00     0.00
"getSlots"                               0.14      1.88      0.04     0.54
"remove"                                 0.14      1.88      0.04     0.54
"extends"                                0.14      1.88      0.02     0.27
"isClassDef"                             0.14      1.88      0.00     0.00
"methods:::.getGenerics"                 0.14      1.88      0.00     0.00
"setClassUnion"                          0.14      1.88      0.00     0.00
".identC"                                0.12      1.61      0.12     1.61
"paste"                                  0.12      1.61      0.10     1.34
"readRDS"                                0.12      1.61      0.06     0.80
".combineExtends"                        0.12      1.61      0.02     0.27
".matchSigLength"                        0.12      1.61      0.02     0.27
"makePrototypeFromClassDef"              0.12      1.61      0.02     0.27
"reconcilePropertiesAndPrototype"        0.12      1.61      0.02     0.27
".prototype"                             0.12      1.61      0.00     0.00
"callback"                               0.12      1.61      0.00     0.00
"completeClassDefinition"                0.12      1.61      0.00     0.00
"prototype"                              0.12      1.61      0.00     0.00
"run_on_load"                            0.12      1.61      0.00     0.00
"length"                                 0.10      1.34      0.10     1.34
".methodPackageSlots"                    0.10      1.34      0.06     0.80
"exists"                                 0.10      1.34      0.06     0.80
"get"                                    0.10      1.34      0.06     0.80
".cacheClass"                            0.10      1.34      0.04     0.54
"as.function"                            0.10      1.34      0.02     0.27
"registerS3methods"                      0.10      1.34      0.02     0.27
".findMethodInTable"                     0.10      1.34      0.00     0.00
"assignClassDef"                         0.10      1.34      0.00     0.00
"assignMethodsMetaData"                  0.10      1.34      0.00     0.00
"generic.skeleton"                       0.10      1.34      0.00     0.00
"library.dynam"                          0.10      1.34      0.00     0.00
"@<-"                                    0.08      1.07      0.08     1.07
"gettext"                                0.08      1.07      0.08     1.07
".getMethodsTable"                       0.08      1.07      0.06     0.80
"structure"                              0.08      1.07      0.06     0.80
".getGenericSigLength"                   0.08      1.07      0.02     0.27
"classGeneratorFunction"                 0.08      1.07      0.02     0.27
"srcfilecopy"                            0.08      1.07      0.02     0.27
".GenericAssign"                         0.08      1.07      0.00     0.00
".sigLabel"                              0.08      1.07      0.00     0.00
".walkClassGraph"                        0.08      1.07      0.00     0.00
"cmpfun"                                 0.08      1.07      0.00     0.00
"compiler:::tryCmpfun"                   0.08      1.07      0.00     0.00
"description$new"                        0.08      1.07      0.00     0.00
"find.package"                           0.08      1.07      0.00     0.00
"idesc_create"                           0.08      1.07      0.00     0.00
"idesc_create_file"                      0.08      1.07      0.00     0.00
"tryNew"                                 0.08      1.07      0.00     0.00
"class"                                  0.06      0.80      0.06     0.80
"file.exists"                            0.06      0.80      0.06     0.80
"gzfile"                                 0.06      0.80      0.06     0.80
"inDL"                                   0.06      0.80      0.06     0.80
"methodsPackageMetaName"                 0.06      0.80      0.04     0.54
"unique.default"                         0.06      0.80      0.04     0.54
".findInheritedMethods"                  0.06      0.80      0.02     0.27
"order"                                  0.06      0.80      0.02     0.27
"setdiff"                                0.06      0.80      0.02     0.27
".getGenerics"                           0.06      0.80      0.00     0.00
".newOrMultipleMethod"                   0.06      0.80      0.00     0.00
".quickCoerceSelect"                     0.06      0.80      0.00     0.00
".transitiveExtends"                     0.06      0.80      0.00     0.00
".transitiveSubclasses"                  0.06      0.80      0.00     0.00
"create_ns_env"                          0.06      0.80      0.00     0.00
"dyn.load"                               0.06      0.80      0.00     0.00
"getFunction"                            0.06      0.80      0.00     0.00
"getMethodsForDispatch"                  0.06      0.80      0.00     0.00
"idesc_create_text"                      0.06      0.80      0.00     0.00
"read_dcf"                               0.06      0.80      0.00     0.00
".requirePackage"                        0.04      0.54      0.04     0.54
"assign"                                 0.04      0.54      0.04     0.54
"class<-"                                0.04      0.54      0.04     0.54
"grepl"                                  0.04      0.54      0.04     0.54
"isFALSE"                                0.04      0.54      0.04     0.54
"matchDefaults"                          0.04      0.54      0.04     0.54
"read.dcf"                               0.04      0.54      0.04     0.54
"%in%"                                   0.04      0.54      0.02     0.27
".addToMetaTable"                        0.04      0.54      0.02     0.27
".getGenericFromCacheTable"              0.04      0.54      0.02     0.27
"get0"                                   0.04      0.54      0.02     0.27
"getClass"                               0.04      0.54      0.02     0.27
"grep"                                   0.04      0.54      0.02     0.27
"slot"                                   0.04      0.54      0.02     0.27
"sub"                                    0.04      0.54      0.02     0.27
".classEnv"                              0.04      0.54      0.00     0.00
".derivedDefaultMethod"                  0.04      0.54      0.00     0.00
".getGenericFromCache"                   0.04      0.54      0.00     0.00
".recacheSubclasses"                     0.04      0.54      0.00     0.00
".TableMetaName"                         0.04      0.54      0.00     0.00
">="                                     0.04      0.54      0.00     0.00
"add_handler"                            0.04      0.54      0.00     0.00
"as.data.frame"                          0.04      0.54      0.00     0.00
"as.data.frame.list"                     0.04      0.54      0.00     0.00
"changed_files"                          0.04      0.54      0.00     0.00
"character"                              0.04      0.54      0.00     0.00
"cmp"                                    0.04      0.54      0.00     0.00
"cmpCall"                                0.04      0.54      0.00     0.00
"defer"                                  0.04      0.54      0.00     0.00
"desc_desc"                              0.04      0.54      0.00     0.00
"desc_desc_get"                          0.04      0.54      0.00     0.00
"dispatchIsInternal"                     0.04      0.54      0.00     0.00
"find_root_file"                         0.04      0.54      0.00     0.00
"genCode"                                0.04      0.54      0.00     0.00
"getPackageName"                         0.04      0.54      0.00     0.00
"is.factor"                              0.04      0.54      0.00     0.00
"isTRUE"                                 0.04      0.54      0.00     0.00
"isVirtualClass"                         0.04      0.54      0.00     0.00
"make.names"                             0.04      0.54      0.00     0.00
"match.arg"                              0.04      0.54      0.00     0.00
"md5"                                    0.04      0.54      0.00     0.00
"Ops.numeric_version"                    0.04      0.54      0.00     0.00
"path"                                   0.04      0.54      0.00     0.00
"pkg_desc"                               0.04      0.54      0.00     0.00
"pkg_name"                               0.04      0.54      0.00     0.00
"pkg_path"                               0.04      0.54      0.00     0.00
"rprojroot_find_package_root_file"       0.04      0.54      0.00     0.00
"split"                                  0.04      0.54      0.00     0.00
"tryInline"                              0.04      0.54      0.00     0.00
".assignMethodsTableMetaData"            0.02      0.27      0.02     0.27
".findAll"                               0.02      0.27      0.02     0.27
".fixPackageSlot"                        0.02      0.27      0.02     0.27
".noMlists"                              0.02      0.27      0.02     0.27
".Primitive"                             0.02      0.27      0.02     0.27
".registerS3method"                      0.02      0.27      0.02     0.27
"[.data.frame"                           0.02      0.27      0.02     0.27
"all"                                    0.02      0.27      0.02     0.27
"as.environment"                         0.02      0.27      0.02     0.27
"as.function.default"                    0.02      0.27      0.02     0.27
"as.vector"                              0.02      0.27      0.02     0.27
"attr"                                   0.02      0.27      0.02     0.27
"basename"                               0.02      0.27      0.02     0.27
"bindTranslations"                       0.02      0.27      0.02     0.27
"cb$putcode"                             0.02      0.27      0.02     0.27
"duplicated"                             0.02      0.27      0.02     0.27
"environment"                            0.02      0.27      0.02     0.27
"file"                                   0.02      0.27      0.02     0.27
"formals<-"                              0.02      0.27      0.02     0.27
"getDataPart"                            0.02      0.27      0.02     0.27
"getOption"                              0.02      0.27      0.02     0.27
"gsub"                                   0.02      0.27      0.02     0.27
"is.list"                                0.02      0.27      0.02     0.27
"isBaseNamespace"                        0.02      0.27      0.02     0.27
"isS4"                                   0.02      0.27      0.02     0.27
"list2env"                               0.02      0.27      0.02     0.27
"mget"                                   0.02      0.27      0.02     0.27
"packageSlot<-"                          0.02      0.27      0.02     0.27
"setup_handlers"                         0.02      0.27      0.02     0.27
"Sys.getenv"                             0.02      0.27      0.02     0.27
"sys.parent"                             0.02      0.27      0.02     0.27
"%||%"                                   0.02      0.27      0.00     0.00
".assignOverBinding"                     0.02      0.27      0.00     0.00
".class1"                                0.02      0.27      0.00     0.00
".encode_numeric_version"                0.02      0.27      0.00     0.00
".extendsForS3"                          0.02      0.27      0.00     0.00
".External2"                             0.02      0.27      0.00     0.00
".findOrCopyClass"                       0.02      0.27      0.00     0.00
".getGlobalFuns"                         0.02      0.27      0.00     0.00
".hasCodeTools"                          0.02      0.27      0.00     0.00
".mergeImportMethods"                    0.02      0.27      0.00     0.00
".removePreviousCoerce"                  0.02      0.27      0.00     0.00
".resetTable"                            0.02      0.27      0.00     0.00
".validDataPartClass"                    0.02      0.27      0.00     0.00
"["                                      0.02      0.27      0.00     0.00
"addImports"                             0.02      0.27      0.00     0.00
"app$add_theme"                          0.02      0.27      0.00     0.00
"app$new"                                0.02      0.27      0.00     0.00
"as.factor"                              0.02      0.27      0.00     0.00
"assign_crayon_styles"                   0.02      0.27      0.00     0.00
"c"                                      0.02      0.27      0.00     0.00
"c.numeric_version"                      0.02      0.27      0.00     0.00
"classMetaName"                          0.02      0.27      0.00     0.00
"cli::cli_inform"                        0.02      0.27      0.00     0.00
"cli__fmt"                               0.02      0.27      0.00     0.00
"cli_fmt"                                0.02      0.27      0.00     0.00
"cliapp"                                 0.02      0.27      0.00     0.00
"clii_add_theme"                         0.02      0.27      0.00     0.00
"clii_init"                              0.02      0.27      0.00     0.00
"cmpCallArgs"                            0.02      0.27      0.00     0.00
"cmpCallSymFun"                          0.02      0.27      0.00     0.00
"cmpForBody"                             0.02      0.27      0.00     0.00
"cmpPrim1"                               0.02      0.27      0.00     0.00
"completeExtends"                        0.02      0.27      0.00     0.00
"data.frame"                             0.02      0.27      0.00     0.00
"description$get_deps"                   0.02      0.27      0.00     0.00
"env_coalesce"                           0.02      0.27      0.00     0.00
"eval.parent"                            0.02      0.27      0.00     0.00
"exit_frame"                             0.02      0.27      0.00     0.00
"export_lazydata"                        0.02      0.27      0.00     0.00
"f"                                      0.02      0.27      0.00     0.00
"find_code"                              0.02      0.27      0.00     0.00
"find_description"                       0.02      0.27      0.00     0.00
"findClass"                              0.02      0.27      0.00     0.00
"findLocalsList"                         0.02      0.27      0.00     0.00
"findLocalsList1"                        0.02      0.27      0.00     0.00
"format_message"                         0.02      0.27      0.00     0.00
"funEnv"                                 0.02      0.27      0.00     0.00
"getInlineHandler"                       0.02      0.27      0.00     0.00
"h"                                      0.02      0.27      0.00     0.00
"I"                                      0.02      0.27      0.00     0.00
"idesc_get_deps"                         0.02      0.27      0.00     0.00
"importIntoEnv"                          0.02      0.27      0.00     0.00
"initDefaultClusterOptions"              0.02      0.27      0.00     0.00
"inject"                                 0.02      0.27      0.00     0.00
"is.numeric_version"                     0.02      0.27      0.00     0.00
"isS3Generic"                            0.02      0.27      0.00     0.00
"lazyLoad"                               0.02      0.27      0.00     0.00
"lazyLoadDBexec"                         0.02      0.27      0.00     0.00
"list.files"                             0.02      0.27      0.00     0.00
"load_data"                              0.02      0.27      0.00     0.00
"load_depends"                           0.02      0.27      0.00     0.00
"local"                                  0.02      0.27      0.00     0.00
"make.functionContext"                   0.02      0.27      0.00     0.00
"make_style_fast"                        0.02      0.27      0.00     0.00
"match.call"                             0.02      0.27      0.00     0.00
"match_contents"                         0.02      0.27      0.00     0.00
"mayCallBrowser"                         0.02      0.27      0.00     0.00
"mayCallBrowserList"                     0.02      0.27      0.00     0.00
"methods::getFunction"                   0.02      0.27      0.00     0.00
"methods::is"                            0.02      0.27      0.00     0.00
"packageSlot"                            0.02      0.27      0.00     0.00
"parse_deps"                             0.02      0.27      0.00     0.00
"parse_ns_file"                          0.02      0.27      0.00     0.00
"parseNamespaceFile"                     0.02      0.27      0.00     0.00
"populate_pkg_env"                       0.02      0.27      0.00     0.00
"possibleExtends"                        0.02      0.27      0.00     0.00
"process_imports"                        0.02      0.27      0.00     0.00
"register_s3"                            0.02      0.27      0.00     0.00
"rlang::inform"                          0.02      0.27      0.00     0.00
"rlang::local_options"                   0.02      0.27      0.00     0.00
"rprojroot::find_root"                   0.02      0.27      0.00     0.00
"selectMethod"                           0.02      0.27      0.00     0.00
"set_handlers"                           0.02      0.27      0.00     0.00
"setOldClass"                            0.02      0.27      0.00     0.00
"setup_pkg_env"                          0.02      0.27      0.00     0.00
"sort.int"                               0.02      0.27      0.00     0.00
"sort.list"                              0.02      0.27      0.00     0.00
"source_frame"                           0.02      0.27      0.00     0.00
"split.default"                          0.02      0.27      0.00     0.00
"start_app"                              0.02      0.27      0.00     0.00
"sys.function"                           0.02      0.27      0.00     0.00
"Sys.setenv"                             0.02      0.27      0.00     0.00
"sys.source"                             0.02      0.27      0.00     0.00
"system.file"                            0.02      0.27      0.00     0.00
"theme_all_null"                         0.02      0.27      0.00     0.00
"theme_create"                           0.02      0.27      0.00     0.00
"tools::list_files_with_type"            0.02      0.27      0.00     0.00
"topenv"                                 0.02      0.27      0.00     0.00
"uses_testthat"                          0.02      0.27      0.00     0.00
"vapply"                                 0.02      0.27      0.00     0.00
"with_locale"                            0.02      0.27      0.00     0.00
"withr::local_envvar"                    0.02      0.27      0.00     0.00
"withr_with_collate"                     0.02      0.27      0.00     0.00

Our codebase uses S4 classes and methods heavily and we have lots and lots of them.

kummerer94 avatar Mar 09 '23 09:03 kummerer94

Thank you. Could you also show the profvis output please:

options(profvis.aggregate = TRUE)

profvis::profvis(
  pkgload::load_all()
)

For instance this is what I get: Screenshot 2023-03-09 at 11 07 36

lionel- avatar Mar 09 '23 10:03 lionel-

I actually tried to use profvis in the first place but then had to use Rprof since the result file from profvis is too large to work with. Neither the browser nor RStudio will open it for me (RStudio will just stop working and show me a blank screen).

kummerer94 avatar Mar 09 '23 10:03 kummerer94