169 похожих чатов

Коллеги, никто не подскажет, почему из Rcpp утекает экспорт в

пакет?
Обнаружил после установки из-за подсказок IDE, getNamespaceExports('my_package') выдает примерно такой список
[1] "setRcppClass" "exposeClass"
[3] "prompt" ".__C__C++Field"
[5] "library.dynam.unload" "populate"
[7] "initialize" ".__T__$<-:base"
[9] "sizeof" "cppFunction"
[11] "getRcppVersion" ".__C__C++Function"
[13] "evalCpp" ".__C__C++Constructor"
[15] "loadRcppClass" ".__T__prompt:utils"
[17] ".__C__C++OverloadedMethods" "LdFlags"
[19] "hllrst_run_threads" ".__T__show:methods"
[21] "loadModule" ".__T__[<-:base"
[23] "cpp_object_initializer" ".__T__.DollarNames:utils"
[25] "compileAttributes" ".__T__initialize:methods"
[27] ".__C__C++Object" "system.file"
[29] ".__T__[[<-:base" "sourceCpp"
[31] "cpp_object_dummy" "Rcpp.plugin.maker"
[33] "RcppLdFlags" ".__C__RcppClass"
[35] "Module" ".__T__[:base"
[37] "registerPlugin" "hllrst_random_number"
[39] "loadRcppModules" ".DollarNames"
[41] ".__C__C++Class" ".__T__formals<-:base"
[43] "formals<-" "demangle"
[45] ".__T__$:base" ".__C__Module"
[47] "Rcpp.package.skeleton" "show"
который, естественно, включает и полезные функции.

11 ответов

11 просмотров

Тут по сути все зависимости твоего пакета представлены, в том числе от Rcpp.

⌨️- Автор вопроса
Артём Клевцов
Тут по сути все зависимости твоего пакета представ...

Я понимаю, но проблема в другом. Если я возьму другой пакет, в котором есть несколько CPP функций, собранный через Rcpp и roxygen2 мной же, то там в публичном экспорте собственно то, что я задекларировал, и никакого мусора. Здесь же - в минимальном пакете с буквально двумя экспортируемыми CPP функциями - куча мусора, который видно (на мой субъективный взгляд) быть не должно. Вопрос почему так, я подумал может кто с таким сталкивался и знает в чем дело. Ощущение, что какая-то зависимость прописана неправильно

⌨️
Я понимаю, но проблема в другом. Если я возьму дру...

Что в импортах? Должно быть: importFrom(Rcpp,evalCpp) useDynLib(mypkg, .registration = TRUE)

⌨️
Я понимаю, но проблема в другом. Если я возьму дру...

Это из-за devtools::load_all(). > library(uaparser) > getNamespaceExports("uaparser") [1] "parse_browser" "parse_device_type" "parse_user_agent" [4] "update_regexes" "parse_os" "parse_device" > devtools::load_all(".") Loading uaparser > getNamespaceExports("uaparser") [1] "library.dynam.unload" "system.file" [3] "parse_browser" "parse_device_type" [5] "_uaparser_uap_release" "download.file" [7] "uap_release" "_uaparser_parse_device" [9] "evalCpp" "parse_user_agent" [11] "_uaparser_uap_init" "_uaparser_parse_os" [13] "update_regexes" "parse_os" [15] "parse_device" "_uaparser_parse_user_agent" [17] "_uaparser_parse_browser" "_uaparser_parse_device_type" [19] "uap_init" "onUnload"

⌨️- Автор вопроса
Артём Клевцов
Что в импортах? Должно быть: importFrom(Rcpp,evalC...

# Generated by roxygen2: do not edit by hand importFrom(Rcpp,sourceCpp) useDynLib(hellorust)

⌨️- Автор вопроса
⌨️
load_all нигде не используется

Значит где-то используется. Его RStudio может где-то вызывать. Попробуй поставить пакет через R CMD build/R CMD INSTALL и посмотреть Rscript -e 'getNamespaceExports("mypkg")'.

⌨️- Автор вопроса
Артём Клевцов
Значит где-то используется. Его RStudio может где-...

Ок, спасибо, буду смотреть где этот вызов мог затеряться

⌨️
# Generated by roxygen2: do not edit by hand impo...

У меня только evalCpp импортируется. https://cran.r-project.org/web/packages/Rcpp/vignettes/Rcpp-package.pdf Пункт 2.8.

⌨️- Автор вопроса
Артём Клевцов
У меня только evalCpp импортируется. https://cran....

Ну у меня в нормальном пакете так же, а тут просто я попытался скрестить нескрещиваемое и получается не очень)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта