From 85e79a3a8a52e339040a8533ba272a5891a62ce5 Mon Sep 17 00:00:00 2001 From: Zack Corr Date: Sat, 14 Jul 2012 03:36:35 +1000 Subject: [PATCH] Get rustdoc working with std::par instead of its own par library. Closes #2885. --- src/rustdoc/attr_pass.rs | 6 +++--- src/rustdoc/desc_to_brief_pass.rs | 4 ++-- src/rustdoc/extract.rs | 8 ++++---- src/rustdoc/fold.rs | 14 +++++++------- src/rustdoc/markdown_index_pass.rs | 4 ++-- src/rustdoc/markdown_pass.rs | 4 ++-- src/rustdoc/par.rs | 31 ------------------------------ src/rustdoc/rustdoc.rc | 2 +- src/rustdoc/sectionalize_pass.rs | 4 ++-- src/rustdoc/text_pass.rs | 6 +++--- src/rustdoc/tystr_pass.rs | 4 ++-- src/rustdoc/unindent_pass.rs | 2 +- 12 files changed, 29 insertions(+), 60 deletions(-) delete mode 100644 src/rustdoc/par.rs diff --git a/src/rustdoc/attr_pass.rs b/src/rustdoc/attr_pass.rs index edec940417f..4a6944ae42d 100644 --- a/src/rustdoc/attr_pass.rs +++ b/src/rustdoc/attr_pass.rs @@ -143,7 +143,7 @@ fn fold_enum( let doc = fold::default_seq_fold_enum(fold, doc); { - variants: do par::anymap(doc.variants) |variant| { + variants: do par::map(doc.variants) |variant| { let desc = do astsrv::exec(srv) |ctxt| { alt check ctxt.ast_map.get(doc_id) { ast_map::node_item(@{ @@ -206,7 +206,7 @@ fn merge_method_attrs( ast_map::node_item(@{ node: ast::item_trait(_, methods), _ }, _) { - par::seqmap(methods, |method| { + vec::map(methods, |method| { alt method { ast::required(ty_m) { (*ty_m.ident, attr_parser::parse_desc(ty_m.attrs)) @@ -220,7 +220,7 @@ fn merge_method_attrs( ast_map::node_item(@{ node: ast::item_impl(_, _, _, methods), _ }, _) { - par::seqmap(methods, |method| { + vec::map(methods, |method| { (*method.ident, attr_parser::parse_desc(method.attrs)) }) } diff --git a/src/rustdoc/desc_to_brief_pass.rs b/src/rustdoc/desc_to_brief_pass.rs index 449ea1b5856..15401bbf160 100644 --- a/src/rustdoc/desc_to_brief_pass.rs +++ b/src/rustdoc/desc_to_brief_pass.rs @@ -40,7 +40,7 @@ fn fold_trait(fold: fold::fold<()>, doc: doc::traitdoc) -> doc::traitdoc { let doc =fold::default_seq_fold_trait(fold, doc); { - methods: par::anymap(doc.methods, |doc| { + methods: par::map(doc.methods, |doc| { brief: extract(doc.desc) with doc }) @@ -52,7 +52,7 @@ fn fold_impl(fold: fold::fold<()>, doc: doc::impldoc) -> doc::impldoc { let doc =fold::default_seq_fold_impl(fold, doc); { - methods: par::anymap(doc.methods, |doc| { + methods: par::map(doc.methods, |doc| { brief: extract(doc.desc) with doc }) diff --git a/src/rustdoc/extract.rs b/src/rustdoc/extract.rs index b3fd5257475..5a14bb2ecdc 100644 --- a/src/rustdoc/extract.rs +++ b/src/rustdoc/extract.rs @@ -113,7 +113,7 @@ fn nmoddoc_from_mod( ) -> doc::nmoddoc { { item: itemdoc, - fns: do par::seqmap(module.items) |item| { + fns: do vec::map(module.items) |item| { let itemdoc = mk_itemdoc(item.id, item.ident); alt item.node { ast::foreign_item_fn(_, _) { @@ -159,7 +159,7 @@ fn enumdoc_from_enum( fn variantdocs_from_variants( variants: ~[ast::variant] ) -> ~[doc::variantdoc] { - par::seqmap(variants, variantdoc_from_variant) + vec::map(variants, variantdoc_from_variant) } fn variantdoc_from_variant(variant: ast::variant) -> doc::variantdoc { @@ -189,7 +189,7 @@ fn traitdoc_from_trait( ) -> doc::traitdoc { { item: itemdoc, - methods: do par::seqmap(methods) |method| { + methods: do vec::map(methods) |method| { alt method { ast::required(ty_m) { { @@ -236,7 +236,7 @@ fn impldoc_from_impl( item: itemdoc, trait_ty: none, self_ty: none, - methods: do par::seqmap(methods) |method| { + methods: do vec::map(methods) |method| { { name: *method.ident, brief: none, diff --git a/src/rustdoc/fold.rs b/src/rustdoc/fold.rs index e9d8615d1d4..d3f7df1b7e2 100644 --- a/src/rustdoc/fold.rs +++ b/src/rustdoc/fold.rs @@ -133,7 +133,7 @@ fn default_par_fold(ctxt: T) -> fold { fn default_seq_fold_doc(fold: fold, doc: doc::doc) -> doc::doc { { - pages: do par::seqmap(doc.pages) |page| { + pages: do vec::map(doc.pages) |page| { alt page { doc::cratepage(doc) { doc::cratepage(fold.fold_crate(fold, doc)) @@ -169,7 +169,7 @@ fn default_any_fold_mod( ) -> doc::moddoc { { item: fold.fold_item(fold, doc.item), - items: par::anymap(doc.items, |itemtag, copy fold| { + items: par::map(doc.items, |itemtag, copy fold| { fold_itemtag(fold, itemtag) }) with doc @@ -182,7 +182,7 @@ fn default_seq_fold_mod( ) -> doc::moddoc { { item: fold.fold_item(fold, doc.item), - items: par::seqmap(doc.items, |itemtag| { + items: vec::map(doc.items, |itemtag| { fold_itemtag(fold, itemtag) }) with doc @@ -195,7 +195,7 @@ fn default_par_fold_mod( ) -> doc::moddoc { { item: fold.fold_item(fold, doc.item), - items: par::parmap(doc.items, |itemtag, copy fold| { + items: par::map(doc.items, |itemtag, copy fold| { fold_itemtag(fold, itemtag) }) with doc @@ -208,7 +208,7 @@ fn default_any_fold_nmod( ) -> doc::nmoddoc { { item: fold.fold_item(fold, doc.item), - fns: par::anymap(doc.fns, |fndoc, copy fold| { + fns: par::map(doc.fns, |fndoc, copy fold| { fold.fold_fn(fold, fndoc) }) with doc @@ -221,7 +221,7 @@ fn default_seq_fold_nmod( ) -> doc::nmoddoc { { item: fold.fold_item(fold, doc.item), - fns: par::seqmap(doc.fns, |fndoc| { + fns: vec::map(doc.fns, |fndoc| { fold.fold_fn(fold, fndoc) }) with doc @@ -234,7 +234,7 @@ fn default_par_fold_nmod( ) -> doc::nmoddoc { { item: fold.fold_item(fold, doc.item), - fns: par::parmap(doc.fns, |fndoc, copy fold| { + fns: par::map(doc.fns, |fndoc, copy fold| { fold.fold_fn(fold, fndoc) }) with doc diff --git a/src/rustdoc/markdown_index_pass.rs b/src/rustdoc/markdown_index_pass.rs index a98fe47ec0f..296982cb893 100644 --- a/src/rustdoc/markdown_index_pass.rs +++ b/src/rustdoc/markdown_index_pass.rs @@ -55,7 +55,7 @@ fn build_mod_index( config: config::config ) -> doc::index { { - entries: par::anymap(doc.items, |doc| { + entries: par::map(doc.items, |doc| { item_to_entry(doc, config) }) } @@ -66,7 +66,7 @@ fn build_nmod_index( config: config::config ) -> doc::index { { - entries: par::anymap(doc.fns, |doc| { + entries: par::map(doc.fns, |doc| { item_to_entry(doc::fntag(doc), config) }) } diff --git a/src/rustdoc/markdown_pass.rs b/src/rustdoc/markdown_pass.rs index 64b6f9ab1f6..fc03c1807d8 100644 --- a/src/rustdoc/markdown_pass.rs +++ b/src/rustdoc/markdown_pass.rs @@ -82,7 +82,7 @@ fn write_markdown( doc: doc::doc, +writer_factory: writer_factory ) { - do par::anymap(doc.pages) |page| { + do par::map(doc.pages) |page| { let ctxt = { w: writer_factory(page) }; @@ -488,7 +488,7 @@ fn write_sig(ctxt: ctxt, sig: option<~str>) { fn code_block_indent(s: ~str) -> ~str { let lines = str::lines_any(s); - let indented = par::seqmap(lines, |line| #fmt(" %s", line) ); + let indented = vec::map(lines, |line| #fmt(" %s", line) ); str::connect(indented, ~"\n") } diff --git a/src/rustdoc/par.rs b/src/rustdoc/par.rs deleted file mode 100644 index d64a89714ce..00000000000 --- a/src/rustdoc/par.rs +++ /dev/null @@ -1,31 +0,0 @@ -export anymap, seqmap, parmap; - -fn anymap(v: ~[T], f: fn~(T) -> U) -> ~[U] { - parmap(v, f) -} - -fn seqmap(v: ~[T], f: fn(T) -> U) -> ~[U] { - vec::map(v, f) -} - -fn parmap(v: ~[T], f: fn~(T) -> U) -> ~[U] unsafe { - let futures = do vec::map(v) |elt| { - let po = comm::port(); - let ch = comm::chan(po); - let addr = ptr::addr_of(elt); - do task::spawn |copy f| { - comm::send(ch, f(*addr)); - } - po - }; - do vec::map(futures) |future| { - comm::recv(future) - } -} - -#[test] -fn test_parallel_map() { - let i = ~[1, 2, 3, 4]; - let j = parmap(i, |e| e + 1 ); - assert j == ~[2, 3, 4, 5]; -} diff --git a/src/rustdoc/rustdoc.rc b/src/rustdoc/rustdoc.rc index c22f7b06d73..8a16e90cd67 100644 --- a/src/rustdoc/rustdoc.rc +++ b/src/rustdoc/rustdoc.rc @@ -19,6 +19,7 @@ use rustc(vers = "0.3"); use syntax(vers = "0.3"); import core::*; +import std::par; mod config; mod parse; @@ -44,7 +45,6 @@ mod sort_pass; mod sort_item_name_pass; mod sort_item_type_pass; mod reexport_pass; -mod par; mod page_pass; mod sectionalize_pass; mod escape_pass; diff --git a/src/rustdoc/sectionalize_pass.rs b/src/rustdoc/sectionalize_pass.rs index a6bb3574687..b7adfc17c4d 100644 --- a/src/rustdoc/sectionalize_pass.rs +++ b/src/rustdoc/sectionalize_pass.rs @@ -34,7 +34,7 @@ fn fold_trait(fold: fold::fold<()>, doc: doc::traitdoc) -> doc::traitdoc { let doc = fold::default_seq_fold_trait(fold, doc); { - methods: do par::anymap(doc.methods) |method| { + methods: do par::map(doc.methods) |method| { let (desc, sections) = sectionalize(method.desc); { @@ -51,7 +51,7 @@ fn fold_impl(fold: fold::fold<()>, doc: doc::impldoc) -> doc::impldoc { let doc = fold::default_seq_fold_impl(fold, doc); { - methods: do par::anymap(doc.methods) |method| { + methods: do par::map(doc.methods) |method| { let (desc, sections) = sectionalize(method.desc); { diff --git a/src/rustdoc/text_pass.rs b/src/rustdoc/text_pass.rs index ac419c557df..a27d1a09da6 100644 --- a/src/rustdoc/text_pass.rs +++ b/src/rustdoc/text_pass.rs @@ -45,7 +45,7 @@ fn fold_item(fold: fold::fold, doc: doc::itemdoc) -> doc::itemdoc { } fn apply_to_sections(op: op, sections: ~[doc::section]) -> ~[doc::section] { - par::anymap(sections, |section, copy op| { + par::map(sections, |section, copy op| { header: op(section.header), body: op(section.body) }) @@ -55,7 +55,7 @@ fn fold_enum(fold: fold::fold, doc: doc::enumdoc) -> doc::enumdoc { let doc = fold::default_seq_fold_enum(fold, doc); { - variants: do par::anymap(doc.variants) |variant, copy fold| { + variants: do par::map(doc.variants) |variant, copy fold| { { desc: maybe_apply_op(fold.ctxt, variant.desc) with variant @@ -75,7 +75,7 @@ fn fold_trait(fold: fold::fold, doc: doc::traitdoc) -> doc::traitdoc { } fn apply_to_methods(op: op, docs: ~[doc::methoddoc]) -> ~[doc::methoddoc] { - do par::anymap(docs) |doc, copy op| { + do par::map(docs) |doc, copy op| { { brief: maybe_apply_op(op, doc.brief), desc: maybe_apply_op(op, doc.desc), diff --git a/src/rustdoc/tystr_pass.rs b/src/rustdoc/tystr_pass.rs index 006e8bc66dc..d3c7adb51a4 100644 --- a/src/rustdoc/tystr_pass.rs +++ b/src/rustdoc/tystr_pass.rs @@ -106,7 +106,7 @@ fn fold_enum( let srv = fold.ctxt; { - variants: do par::anymap(doc.variants) |variant| { + variants: do par::map(doc.variants) |variant| { let sig = do astsrv::exec(srv) |ctxt| { alt check ctxt.ast_map.get(doc_id) { ast_map::node_item(@{ @@ -152,7 +152,7 @@ fn merge_methods( item_id: doc::ast_id, docs: ~[doc::methoddoc] ) -> ~[doc::methoddoc] { - do par::anymap(docs) |doc| { + do par::map(docs) |doc| { { sig: get_method_sig(srv, item_id, doc.name) with doc diff --git a/src/rustdoc/unindent_pass.rs b/src/rustdoc/unindent_pass.rs index 26b785b6614..9c62c936d1b 100644 --- a/src/rustdoc/unindent_pass.rs +++ b/src/rustdoc/unindent_pass.rs @@ -62,7 +62,7 @@ fn unindent(s: ~str) -> ~str { if vec::is_not_empty(lines) { let unindented = ~[str::trim(vec::head(lines))] - + do par::anymap(vec::tail(lines)) |line| { + + do par::map(vec::tail(lines)) |line| { if str::is_whitespace(line) { line } else {