Skip to content

Commit 5972410

Browse files
committed
internal: switch to tracing from log
This commit also adds `tracing` to NotificationDispatcher/RequestDispatcher, bumps `rust-analyzer-salsa` to 0.17.0-pre.6, `always-assert` to 0.2, and removes the homegrown `hprof` implementation in favor of a vendored tracing-span-tree.
1 parent 63123ab commit 5972410

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+663
-825
lines changed

Cargo.lock

Lines changed: 16 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ itertools = "0.12.0"
113113
libc = "0.2.150"
114114
nohash-hasher = "0.2.0"
115115
rayon = "1.8.0"
116-
rust-analyzer-salsa = "0.17.0-pre.5"
116+
rust-analyzer-salsa = "0.17.0-pre.6"
117117
rustc-hash = "1.1.0"
118118
semver = "1.0.14"
119119
serde = { version = "1.0.192", features = ["derive"] }
@@ -128,9 +128,9 @@ text-size = "1.1.1"
128128
tracing = "0.1.40"
129129
tracing-tree = "0.3.0"
130130
tracing-subscriber = { version = "0.3.18", default-features = false, features = [
131-
"registry",
132-
"fmt",
133-
"tracing-log",
131+
"registry",
132+
"fmt",
133+
"tracing-log",
134134
] }
135135
triomphe = { version = "0.1.10", default-features = false, features = ["std"] }
136136
xshell = "0.2.5"

crates/base-db/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ rust-analyzer-salsa.workspace = true
1717
rustc-hash.workspace = true
1818
triomphe.workspace = true
1919
semver.workspace = true
20+
tracing.workspace = true
2021

2122
# local deps
2223
cfg.workspace = true
@@ -27,4 +28,4 @@ vfs.workspace = true
2728
span.workspace = true
2829

2930
[lints]
30-
workspace = true
31+
workspace = true

crates/base-db/src/change.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl FileChange {
5151
}
5252

5353
pub fn apply(self, db: &mut dyn SourceDatabaseExt) {
54-
let _p = profile::span("RootDatabase::apply_change");
54+
let _p = tracing::span!(tracing::Level::INFO, "RootDatabase::apply_change").entered();
5555
if let Some(roots) = self.roots {
5656
for (idx, root) in roots.into_iter().enumerate() {
5757
let root_id = SourceRootId(idx as u32);

crates/base-db/src/input.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ impl CrateGraph {
494494
from: CrateId,
495495
dep: Dependency,
496496
) -> Result<(), CyclicDependenciesError> {
497-
let _p = profile::span("add_dep");
497+
let _p = tracing::span!(tracing::Level::INFO, "add_dep").entered();
498498

499499
self.check_cycle_after_dependency(from, dep.crate_id)?;
500500

crates/base-db/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ pub trait SourceDatabase: FileLoader + std::fmt::Debug {
6565
}
6666

6767
fn parse(db: &dyn SourceDatabase, file_id: FileId) -> Parse<ast::SourceFile> {
68-
let _p = profile::span("parse_query").detail(|| format!("{file_id:?}"));
68+
let _p = tracing::span!(tracing::Level::INFO, "parse_query", ?file_id).entered();
6969
let text = db.file_text(file_id);
7070
SourceFile::parse(&text)
7171
}
@@ -116,7 +116,7 @@ impl<T: SourceDatabaseExt> FileLoader for FileLoaderDelegate<&'_ T> {
116116
}
117117

118118
fn relevant_crates(&self, file_id: FileId) -> Arc<[CrateId]> {
119-
let _p = profile::span("relevant_crates");
119+
let _p = tracing::span!(tracing::Level::INFO, "relevant_crates").entered();
120120
let source_root = self.0.file_source_root(file_id);
121121
self.0.source_root_crates(source_root)
122122
}

crates/hir-def/src/attr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ impl Attrs {
7575
db: &dyn DefDatabase,
7676
v: VariantId,
7777
) -> Arc<ArenaMap<LocalFieldId, Attrs>> {
78-
let _p = profile::span("fields_attrs_query");
78+
let _p = tracing::span!(tracing::Level::INFO, "fields_attrs_query").entered();
7979
// FIXME: There should be some proper form of mapping between item tree field ids and hir field ids
8080
let mut res = ArenaMap::default();
8181

@@ -322,7 +322,7 @@ impl AttrsWithOwner {
322322
}
323323

324324
pub(crate) fn attrs_query(db: &dyn DefDatabase, def: AttrDefId) -> Attrs {
325-
let _p = profile::span("attrs_query");
325+
let _p = tracing::span!(tracing::Level::INFO, "attrs_query").entered();
326326
// FIXME: this should use `Trace` to avoid duplication in `source_map` below
327327
let raw_attrs = match def {
328328
AttrDefId::ModuleId(module) => {

crates/hir-def/src/body.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ impl Body {
122122
db: &dyn DefDatabase,
123123
def: DefWithBodyId,
124124
) -> (Arc<Body>, Arc<BodySourceMap>) {
125-
let _p = profile::span("body_with_source_map_query");
125+
let _p = tracing::span!(tracing::Level::INFO, "body_with_source_map_query").entered();
126126
let mut params = None;
127127

128128
let mut is_async_fn = false;

crates/hir-def/src/data.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ impl ImplData {
340340
db: &dyn DefDatabase,
341341
id: ImplId,
342342
) -> (Arc<ImplData>, DefDiagnostics) {
343-
let _p = profile::span("impl_data_with_diagnostics_query");
343+
let _p = tracing::span!(tracing::Level::INFO, "impl_data_with_diagnostics_query").entered();
344344
let ItemLoc { container: module_id, id: tree_id } = id.lookup(db);
345345

346346
let item_tree = tree_id.item_tree(db);

crates/hir-def/src/db.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ fn include_macro_invoc(db: &dyn DefDatabase, krate: CrateId) -> Vec<(MacroCallId
254254
}
255255

256256
fn crate_def_map_wait(db: &dyn DefDatabase, krate: CrateId) -> Arc<DefMap> {
257-
let _p = profile::span("crate_def_map:wait");
257+
let _p = tracing::span!(tracing::Level::INFO, "crate_def_map:wait").entered();
258258
db.crate_def_map_query(krate)
259259
}
260260

crates/hir-def/src/find_path.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ pub fn find_path(
2626
prefer_no_std: bool,
2727
prefer_prelude: bool,
2828
) -> Option<ModPath> {
29-
let _p = profile::span("find_path");
29+
let _p = tracing::span!(tracing::Level::INFO, "find_path").entered();
3030
find_path_inner(FindPathCtx { db, prefixed: None, prefer_no_std, prefer_prelude }, item, from)
3131
}
3232

@@ -38,7 +38,7 @@ pub fn find_path_prefixed(
3838
prefer_no_std: bool,
3939
prefer_prelude: bool,
4040
) -> Option<ModPath> {
41-
let _p = profile::span("find_path_prefixed");
41+
let _p = tracing::span!(tracing::Level::INFO, "find_path_prefixed").entered();
4242
find_path_inner(
4343
FindPathCtx { db, prefixed: Some(prefix_kind), prefer_no_std, prefer_prelude },
4444
item,
@@ -497,7 +497,7 @@ fn find_local_import_locations(
497497
item: ItemInNs,
498498
from: ModuleId,
499499
) -> Vec<(ModuleId, Name)> {
500-
let _p = profile::span("find_local_import_locations");
500+
let _p = tracing::span!(tracing::Level::INFO, "find_local_import_locations").entered();
501501

502502
// `from` can import anything below `from` with visibility of at least `from`, and anything
503503
// above `from` with any visibility. That means we do not need to descend into private siblings

crates/hir-def/src/generics.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ impl GenericParams {
373373
db: &dyn DefDatabase,
374374
def: GenericDefId,
375375
) -> Interned<GenericParams> {
376-
let _p = profile::span("generic_params_query");
376+
let _p = tracing::span!(tracing::Level::INFO, "generic_params_query").entered();
377377

378378
let krate = def.module(db).krate;
379379
let cfg_options = db.crate_graph();

crates/hir-def/src/import_map.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ impl ImportMap {
7575
}
7676

7777
pub(crate) fn import_map_query(db: &dyn DefDatabase, krate: CrateId) -> Arc<Self> {
78-
let _p = profile::span("import_map_query");
78+
let _p = tracing::span!(tracing::Level::INFO, "import_map_query").entered();
7979

8080
let map = Self::collect_import_map(db, krate);
8181

@@ -126,7 +126,7 @@ impl ImportMap {
126126
}
127127

128128
fn collect_import_map(db: &dyn DefDatabase, krate: CrateId) -> ImportMapIndex {
129-
let _p = profile::span("collect_import_map");
129+
let _p = tracing::span!(tracing::Level::INFO, "collect_import_map").entered();
130130

131131
let def_map = db.crate_def_map(krate);
132132
let mut map = FxIndexMap::default();
@@ -216,7 +216,7 @@ impl ImportMap {
216216
is_type_in_ns: bool,
217217
trait_import_info: &ImportInfo,
218218
) {
219-
let _p = profile::span("collect_trait_assoc_items");
219+
let _p = tracing::span!(tracing::Level::INFO, "collect_trait_assoc_items").entered();
220220
for &(ref assoc_item_name, item) in &db.trait_data(tr).items {
221221
let module_def_id = match item {
222222
AssocItemId::FunctionId(f) => ModuleDefId::from(f),
@@ -398,7 +398,7 @@ pub fn search_dependencies(
398398
krate: CrateId,
399399
ref query: Query,
400400
) -> FxHashSet<ItemInNs> {
401-
let _p = profile::span("search_dependencies").detail(|| format!("{query:?}"));
401+
let _p = tracing::span!(tracing::Level::INFO, "search_dependencies", ?query).entered();
402402

403403
let graph = db.crate_graph();
404404

crates/hir-def/src/item_tree.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ pub struct ItemTree {
109109

110110
impl ItemTree {
111111
pub(crate) fn file_item_tree_query(db: &dyn DefDatabase, file_id: HirFileId) -> Arc<ItemTree> {
112-
let _p = profile::span("file_item_tree_query").detail(|| format!("{file_id:?}"));
112+
let _p = tracing::span!(tracing::Level::INFO, "file_item_tree_query", ?file_id).entered();
113+
113114
let syntax = db.parse_or_expand(file_id);
114115

115116
let ctx = lower::Ctx::new(db, file_id);

crates/hir-def/src/lang_item.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ impl LangItems {
9191
db: &dyn DefDatabase,
9292
krate: CrateId,
9393
) -> Option<Arc<LangItems>> {
94-
let _p = profile::span("crate_lang_items_query");
94+
let _p = tracing::span!(tracing::Level::INFO, "crate_lang_items_query").entered();
9595

9696
let mut lang_items = LangItems::default();
9797

@@ -163,7 +163,7 @@ impl LangItems {
163163
start_crate: CrateId,
164164
item: LangItem,
165165
) -> Option<LangItemTarget> {
166-
let _p = profile::span("lang_item_query");
166+
let _p = tracing::span!(tracing::Level::INFO, "lang_item_query").entered();
167167
if let Some(target) =
168168
db.crate_lang_items(start_crate).and_then(|it| it.items.get(&item).copied())
169169
{
@@ -183,7 +183,7 @@ impl LangItems {
183183
) where
184184
T: Into<AttrDefId> + Copy,
185185
{
186-
let _p = profile::span("collect_lang_item");
186+
let _p = tracing::span!(tracing::Level::INFO, "collect_lang_item").entered();
187187
if let Some(lang_item) = lang_attr(db, item.into()) {
188188
self.items.entry(lang_item).or_insert_with(|| constructor(item));
189189
}
@@ -199,7 +199,7 @@ pub(crate) fn notable_traits_in_deps(
199199
db: &dyn DefDatabase,
200200
krate: CrateId,
201201
) -> Arc<[Arc<[TraitId]>]> {
202-
let _p = profile::span("notable_traits_in_deps").detail(|| format!("{krate:?}"));
202+
let _p = tracing::span!(tracing::Level::INFO, "notable_traits_in_deps", ?krate).entered();
203203
let crate_graph = db.crate_graph();
204204

205205
Arc::from_iter(
@@ -208,7 +208,7 @@ pub(crate) fn notable_traits_in_deps(
208208
}
209209

210210
pub(crate) fn crate_notable_traits(db: &dyn DefDatabase, krate: CrateId) -> Option<Arc<[TraitId]>> {
211-
let _p = profile::span("crate_notable_traits").detail(|| format!("{krate:?}"));
211+
let _p = tracing::span!(tracing::Level::INFO, "crate_notable_traits", ?krate).entered();
212212

213213
let mut traits = Vec::new();
214214

crates/hir-def/src/nameres.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -306,9 +306,10 @@ impl DefMap {
306306
pub const ROOT: LocalModuleId = LocalModuleId::from_raw(la_arena::RawIdx::from_u32(0));
307307

308308
pub(crate) fn crate_def_map_query(db: &dyn DefDatabase, krate: CrateId) -> Arc<DefMap> {
309-
let _p = profile::span("crate_def_map_query").detail(|| {
310-
db.crate_graph()[krate].display_name.as_deref().unwrap_or_default().to_string()
311-
});
309+
let crate_graph = db.crate_graph();
310+
let krate_name = crate_graph[krate].display_name.as_deref().unwrap_or_default();
311+
312+
let _p = tracing::span!(tracing::Level::INFO, "crate_def_map_query", ?krate_name).entered();
312313

313314
let crate_graph = db.crate_graph();
314315

0 commit comments

Comments
 (0)