load_all(reset = FALSE): locked binding
Hello,
I want to report the following bug / weird behaviour:
- I do
pkgload::load_all()once. - Then I change something in any file. Just a small change.
- Then I try to run
pkgload::load_all(reset = FALSE). - 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!
Can you post a sessionInfo() please?
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
So that's with a recent version of R. I'm not sure how to help since I can't reproduce.
oops sorry now I see the reset = FALSE, I'll take a look.
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.
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.
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.
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.
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.
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.
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:

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).