на хабре, что-то типа "погружаемся в ржавчину", про устройство компилятора раста. так вот там было сказано, что если "программист поменял строчку в одном файле, то компилятор возьмет то, что не менялось, из кеша". не дословно, но смысл такой. мб я где-то наврал или не так понял, тогда поправьте
так вот, есть либа, довольна большая, ибо, помимо прочего, описывает все типы телеги: https://github.com/aCLr/rust-tdlib/tree/1.7.0
структура такая:
src
—-client
— client.rs, worker.rs, ... # интерфейс-апишка
—-types
— # тут херова гора файлов (посмотрел - 276 штук) с описанием структур
так вот, меняю что-то в src/client/worker.rs - по ощущениям, пересобираются вообще все потроха, включая types/. при этом types никак не использует client/*.
как-то можно "отдебажить" сборку? мб какие-то флаги, которые не в мельчайших деталях, но хотя бы поверхностно покажут мне, какой файлик лопатится.
если ещё и нарисуется какое-нибудь "дерево" зависимотей\сборки - будет вообще крутяк
Есть -Ztimings, может он как-то поможет
rustc вроде ещё не полностью перешёл на новую систему запросов
да, про это тоже говорилось в статейке
Может поможет: https://rustc-dev-guide.rust-lang.org/queries/profiling.html
выглядит хардкорно. мне б что-то более прикладное для начала :) но спасибо, попробую, если вариантов для тупых более простых не найду
➜ rust-tdlib git:(1.7.0) ✗ cargo build --features client -Ztimings error: the `-Z` flag is only accepted on the nightly channel of Cargo, but this is the `stable` channel :catshake:
-Z это unstable флаги)
очень информативно :D
Обсуждают сегодня