Я нахожусь в процессе разработки пакета R с внешним исходным кодом, который долго компилируется. В то время как время компиляции не является большой проблемой для одноразовой установки, я должен регулярно переустанавливать пакет для тестирования новых дополнений. Можно ли предотвратить повторную компиляцию исходного кода, если в него не было внесено никаких изменений?
Мне не обязательно, чтобы это было автоматизировано, но я не могу найти и ручное решение. Поскольку мой исходный код написан на Rust, следующий пример является наиболее представительным для меня (обратите внимание, что для установки требуется Rust car go):
git clone https://github.com/r-rust/hellorust
Rscript -e "devtools::install('hellorust', quick = TRUE)"
Когда я запускаю вышеизложенное, я вижу что файл hellorust.so
был создан в каталоге src
, но как мне заставить devtools::install()
использовать этот файл, а не перекомпилировать все? Не похоже, что devtools::install(quick = TRUE)
или devtools::install(build = FALSE)
предназначены для этого ...
В качестве альтернативы, возможно ли достичь желаемого поведения на стороне Rust? Я не понимаю, почему машина go перекомпилировала бы все, если бы не было никаких изменений, и целевой каталог все еще там. Тем не менее, я довольно плохо знаком с Rust и скомпилированными языками в целом, поэтому мое понимание более широких понятий, используемых здесь, к сожалению, весьма ограничено ...
Мне также было бы интересно узнать, есть ли лучший способ проверить пакеты R во время разработки, чем вручную переустановить их.