Arpad Borsos

Results 349 comments of Arpad Borsos

A third option would be… Something that I explained today walking over our SymCache/SourceMapCache binary formats: How about there wouldn’t be any kind of validation/transformation when reading these (internal)offsets from...

The expanded output looks like this: ```rust fn lazy() -> impl Future { {} #[allow(clippy::suspicious_else_formatting)] { let __tracing_attr_span; let __tracing_attr_guard; if tracing::Level::INFO = { ::tracing_core::metadata::Metadata::new( "hybrid", "lazy_futures", tracing::Level::INFO, Some("playground\\lazy-futures\\src\\main.rs"), Some(23u32),...

I don’t think I have fully solved this, unless someone else has done so in the meantime.

I can’t think of anything, except increase the maximum length ;-) We have the same limitations in native, and there we reserve space for `256` frames.

It just truncates at the bottom and stops unwinding when it reaches the limit.

So, the problem seems to be this: https://github.com/dividab/tsconfig-paths/blob/6beaeaf43ffeab1499d1a03e090cac3dc7d96777/src/mapping-entry.ts#L37-L44 `tsconfig-paths` adds a catch-all rules, and runs its own path resolution algorithm, which apparently is much slower than the one of nodejs...

just tried commenting out the code and can confirm that removing the match-all cuts the `fs.statSync` time from ~2s to ~500ms, which indeed solves half of the problem (the other...

> allow the original module resolver to be run first, and if it wasn't able to locate the module then run the internal ts-config-paths resolver? Hm, in our specific usecase,...

Since I didn’t want this to break anything, the *default* is to still enable the match-all rule. You have to explicitly disable it: https://github.com/dividab/tsconfig-paths#register