camelid · GitHub

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_DEPTH thread-local (rustdoc: Get rid of CURRENT_DEPTH thread-local variable #82742)
  • Make Span etc. Send and Sync
  • Use RwLock instead of RefCell for SharedContext fields (or make Context, and by extension SharedContext, 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)

Read the original on github.com ↗