diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 8c1db5aef65..9ff450d4135 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -115,12 +115,7 @@ impl fmt::Default for clean::Path { fn resolved_path(w: &mut io::Writer, id: ast::NodeId, p: &clean::Path, print_all: bool) { path(w, p, print_all, - |_cache, loc| { - match p.segments[0].name.as_slice() { - "super" => Some("../".repeat(loc.len() - 1)), - _ => Some("../".repeat(loc.len())), - } - }, + |_cache, loc| { Some("../".repeat(loc.len())) }, |cache| { match cache.paths.find(&id) { None => None, diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index b12dd338fff..b81a622fcda 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -44,6 +44,7 @@ use std::rt::io::file::{FileInfo, DirectoryInfo}; use std::rt::io::file; use std::rt::io; use std::rt::io::Reader; +use std::os; use std::str; use std::task; use std::unstable::finally::Finally; @@ -686,7 +687,15 @@ impl Context { Process(Context, clean::Item), } enum Progress { JobNew, JobDone } - static WORKERS: int = 10; + + let workers = match os::getenv("RUSTDOC_WORKERS") { + Some(s) => { + match from_str::(s) { + Some(n) => n, None => fail2!("{} not a number", s) + } + } + None => 10, + }; let mut item = match crate.module.take() { Some(i) => i, @@ -706,7 +715,7 @@ impl Context { // using the same channel/port. Through this, the crate is recursed on // in a hierarchical fashion, and parallelization is only achieved if // one node in the hierarchy has more than one child (very common). - for i in range(0, WORKERS) { + for i in range(0, workers) { let port = port.clone(); let chan = chan.clone(); let prog_chan = prog_chan.clone(); @@ -761,7 +770,7 @@ impl Context { if jobs == 0 { break } } - for _ in range(0, WORKERS) { + for _ in range(0, workers) { chan.send(Die); } }