I and others would like to parallelize rustdoc rendering. It is "embarrassingly parallel" ... except that rustdoc has some technical debt in the form of global mutable state that will have to be dealt with first.
Steps
- Get rid of
CURRENT_DEPTHthread-local (rustdoc: Get rid ofCURRENT_DEPTHthread-local variable #82742) - Make
Spanetc. Send and Sync - Use
RwLockinstead ofRefCellforSharedContextfields (or makeContext, and by extensionSharedContext, Send and Sync some other way) - So many more things...
- Add parallelism via MPSC channels and
rayon
cc @rylev @jyn514
cc https://rust-lang.zulipchat.com/#narrow/stream/247081-t-compiler.2Fperformance/topic/windows-rs.20perf/near/226957262 (was going to open this issue anyway, but noticed this discussion so thought I'd link to it)