Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve sidebar rendering and add methods list #45187

Merged
merged 4 commits into from
Nov 1, 2017

Conversation

GuillaumeGomez
Copy link
Member

@GuillaumeGomez GuillaumeGomez commented Oct 10, 2017

I suppose it can be reviewed as is, but this is just the first step of a more global plan.

cc @rust-lang/docs @nical

And a screenshot of course:

screen shot 2017-10-10 at 23 38 45

@rust-highfive
Copy link
Collaborator

Some changes occurred in HTML/CSS.

cc @GuillaumeGomez

@rust-highfive
Copy link
Collaborator

r? @steveklabnik

(rust_highfive has picked a reviewer for you, use r? to override)

let ret = v.iter()
.filter(|i| i.inner_impl().trait_.is_none())
.filter_map(|i| Some(get_methods(i.inner_impl()).join("")))
.collect::<Vec<_>>().join("");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Isn't .filter_map(|i| Some(...)) equivalent to .map(|i| ...)?
  2. You could .collect::<String>() directly, instead of .collect::<Vec<_>>().join("")

So I guess what you want is

v.iter()
    .filter(|i| i.inner_impl().trait_.is_none())
    .flat_map(|i| get_methods(i.inner_impl()))
    .collect::<String>();

}
} else {
None
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ewwwww

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

match item.name {
    Some(ref name) if !name.is_empty() && item.visibility.is_some() && item.is_method() => {
        Some(format!("<a href=\"#method.{name}\">{name}</a>", name = name))
    }
    _ => None,
}

@QuietMisdreavus
Copy link
Member

In general, i'm not sure how i feel about it. It's something that's been requested before, so there's at least some demand there. But this has potential to make the sidebar profoundly confusing, especially on pages like Vec, in your example. If there's a ton of methods there, it's going to make the sidebar downright huge.

This also completely buries any heading links that appear below the method listing, like "Methods from Deref" and "Trait Implementations". I would prefer to leave the links that were there at the top (since it was supposed to mock a table of contents), then print all the methods underneath those links. I would also like to see the Deref methods, since those are often as much a part of a type's API as its inherent methods. (Again, especially for popular types like Vec or String.) (This doubles the concern from earlier, though - it's going to be downright impossible to reach the bottom of Vec's or String's sidebar if all their Deref methods are there.)

If you're going to make the sidebar headings no longer part of a list, do you want to do something similar to the dynamic sidebar content? I'm pretty sure i copied that structure from the "module siblings" listing that's loaded in dynamically.

@GuillaumeGomez
Copy link
Member Author

@QuietMisdreavus: I'm wondering about adding a way to expand/hide the list. Also, for the sidebar size: #45212

@nical
Copy link
Contributor

nical commented Oct 12, 2017

I really like the fact that this gives an easy to read overview of all of the method names. Right now if you are looking for something specific but don't remember how it's called, you have to scroll through the entire doc. I find that very impractical.

@nical
Copy link
Contributor

nical commented Oct 12, 2017

But this has potential to make the sidebar profoundly confusing, especially on pages like Vec, in your example. If there's a ton of methods there, it's going to make the sidebar downright huge.

To your point, types like Vec with tons of methods are specifically the cases where I most need an easy to read list of symbols, because the amount of stuff I need to otherwise scan through to find what I want is orders of magnitude larger than the side bar would be (no matter how big the latter is).

@aidanhs aidanhs added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 12, 2017
@GuillaumeGomez
Copy link
Member Author

Updated btw.

@GuillaumeGomez GuillaumeGomez added I-nominated A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools labels Oct 16, 2017
@QuietMisdreavus
Copy link
Member

Okay, coming back to this, I'm much more willing to add it. Some non-code-nit concerns still stand, though:

  • I would much prefer it if you put the method listing below all the other header links in the sidebar, so they don't get drowned out by the actual list. Right now, it will just stick the method listing between the "Methods" header and the "Methods from Deref" and "Trait Implementations" headers, which means they might as well be hidden on structs with loads of methods. (Not to mention the items in sidebar_trait which are added after sidebar_assoc_items is called, so taking that into account may require either restructuring that method or moving those headers "out of order" so they don't get overshadowed.)
  • Can you add a listing for the "Methods from Deref" as well? For some core types in std, these methods are as much part of the regular struct as the regular inherent methods.
    • (Though, with the previous bullet in mind, you could also print the list of traits right here as well, which means each header in sidebar_assoc_items generates a list. :3 Not sure if you were planning to put that in another PR, though.)

@GuillaumeGomez
Copy link
Member Author

  • I would much prefer it if you put the method listing below all the other header links in the sidebar, so they don't get drowned out by the actual list. Right now, it will just stick the method listing between the "Methods" header and the "Methods from Deref" and "Trait Implementations" headers, which means they might as well be hidden on structs with loads of methods. (Not to mention the items in sidebar_trait which are added after sidebar_assoc_items is called, so taking that into account may require either restructuring that method or moving those headers "out of order" so they don't get overshadowed.)

That's why I suggested to add a "hide button", so like that, you call collapse the calls and you're good to go!

  • Can you add a listing for the "Methods from Deref" as well? For some core types in std, these methods are as much part of the regular struct as the regular inherent methods.
    • (Though, with the previous bullet in mind, you could also print the list of traits right here as well, which means each header in sidebar_assoc_items generates a list. :3 Not sure if you were planning to put that in another PR, though.)

Hum sure. I was wondering if it'd be useful but if you think it is, then I can totally add it.

@QuietMisdreavus
Copy link
Member

We talked about this in the docs team meeting today, I suggested an alternate layout to @GuillaumeGomez and i'd like to see whether that works out.

PM 022123 <misdreavus> so like, here's how i want it to look:
PM 022139 <misdreavus> make the methods listing look the same as the module-sibling listing that's put there by the javascript
PM 022157 <misdreavus> put that listing at the bottom of the static sidebar, after the table-of-contents headings
PM 022219 <misdreavus> so that it just flows into the other listings that come in later

@QuietMisdreavus QuietMisdreavus added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed I-nominated S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 17, 2017
@GuillaumeGomez GuillaumeGomez force-pushed the doc-ui-improvement branch 2 times, most recently from c96bb7b to 1fa3a28 Compare October 26, 2017 21:56
@@ -3606,15 +3640,15 @@ fn sidebar_trait(fmt: &mut fmt::Formatter, it: &clean::Item,

sidebar.push_str("<li><a href=\"#implementors\">Implementors</a></li>");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move the sidebar_assoc_items call below these items and i'll call it good. As-is, this will print these links below the assoc items listing, thus putting the "table of contents" links between the methods listings and the module-siblings listings, effectively hiding them.

@QuietMisdreavus
Copy link
Member

Cool! I'm willing to call it good at this point. r=me pending travis.

@kennytm kennytm added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 26, 2017
@QuietMisdreavus
Copy link
Member

Travis failed on linkchecker:

(...lots of similar lines elided...)
[01:11:42] std/vec/struct.Vec.html:32: broken link fragment `#impl-Extend&lt;&'a T&gt;` pointing to `std/vec/struct.Vec.html`
[01:11:42] std/vec/struct.Vec.html:32: broken link fragment `#impl-From&lt;&'a str&gt;` pointing to `std/vec/struct.Vec.html`
[01:11:42] std/vec/struct.Vec.html:32: broken link fragment `#impl-From&lt;&'a mut [T]&gt;` pointing to `std/vec/struct.Vec.html`
[01:11:42] std/vec/struct.Vec.html:32: broken link fragment `#impl-From&lt;&'a [T]&gt;` pointing to `std/vec/struct.Vec.html`
[01:11:42] std/vec/struct.Vec.html:32: broken link fragment `#impl-From&lt;Cow&lt;'a, [T]&gt;&gt;` pointing to `std/vec/struct.Vec.html`

Seems like the IDs for the trait link anchors aren't the same as the ones on the page.

@kennytm kennytm added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 27, 2017
@GuillaumeGomez
Copy link
Member Author

Chrome and firefox are doing the translation by themselves? Interesting!

@@ -3206,12 +3206,37 @@ fn render_deref_methods(w: &mut fmt::Formatter, cx: &Context, impl_: &Impl,
}
}

fn shoud_render_item(item: &clean::Item, deref_mut_: bool) -> bool {
Copy link
Member

@kennytm kennytm Oct 28, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know if anyone cares but this should be spelled should_render_item 😐

(BTW why the underscore after deref_mut?)

@bors
Copy link
Contributor

bors commented Oct 28, 2017

⌛ Testing commit b712d516b3717535232b7267ad2d52eb1a699626 with merge 9573fcc79059466fce4883a3bfb8f542d45ef5cb...

@bors
Copy link
Contributor

bors commented Oct 28, 2017

💔 Test failed - status-travis

@kennytm
Copy link
Member

kennytm commented Oct 28, 2017

dist-mips64-linux, failed to link stage2-rustdoc with some error related to TLS, looks like exactly the same error as #45529 (comment), legit I think?

[01:06:45] error: linking with `mips64-linux-gnuabi64-gcc` failed: exit code: 1
[01:06:45]   |
[01:06:45]   = note: "mips64-linux-gnuabi64-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/rustdoc_tool_binary-33413ef758609bf3.rustdoc_tool_binary0.rust-cgu.o" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/rustdoc_tool_binary-33413ef758609bf3" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/rustdoc_tool_binary-33413ef758609bf3.crate.allocator.rust-cgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/deps" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/build/rustdoc-a04509048bb42866/out" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-Wl,-Bstatic" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/librustdoc-c8ce1463e2ecb206.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libhtml_diff-b06e907eeeeb8e72.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libkuchiki-a0646417ac6e48c1.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libselectors-0a99200872f9a00f.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libsmallvec-a3f129837876b297.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libfnv-6d3e0b7e975e89ba.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libcssparser-a7a44f18eab08f51.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libprocedural_masquerade-cf872c5196dfc81d.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libbitflags-d55f1fea8910fc60.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libenv_logger-4017921f49d78e3b.rlib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-Wl,-Bdynamic" "-l" "rustc_driver-cccd2e49d873fd28" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_trans-24da5f4bf711ee39" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_trans_utils-96f6f2c14da19680" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_llvm-0eac490db95e9295" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_save_analysis-5fc8d28fd48a24fb" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_resolve-860198273a366510" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_incremental-b6540339ac525822" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_privacy-79a9261e2ef2828c" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_plugin-e254392a78c19830" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_metadata-1a6aead885da5379" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "syntax_ext-fef0196f3172e2d6" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "proc_macro-dd6c3636f34e28ab" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_passes-c76942e41c0b7963" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_borrowck-3dc2df26cac5f3d2" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_mir-c72cefc03766ac9c" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_allocator-8490c6eb3fe1f1d0" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_lint-398897c6fced6417" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_const_eval-e20f26f5493a616b" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_typeck-3201b4bd2f5e7152" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_platform_intrinsics-07e308919f9e7c29" "-Wl,-Bstatic" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libhtml5ever-2ae546efd7ef3b99.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libmarkup5ever-42d0b93e746378ee.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libtendril-a20f6e208846a355.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libutf8-b265700d2304aa01.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libmatches-b0668b4595b647c4.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libphf-39d38bf87d65cc50.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libstring_cache-f2895d140812fa62.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libstring_cache_shared-d826397877c13950.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libserde-44e0f2da0ce284bb.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libprecomputed_hash-db2160da8819061c.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libphf_shared-c05c2f7fbdf211b5.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libsiphasher-7911f4690364bffd.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/liblazy_static-0db1cadf340ea3d3.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/liblog-e62885ac232edc3a.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libpulldown_cmark-75b027e6fe6c5465.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libbitflags-cfd1c4877f5dce61.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libfutf-4f8d53b3cd34a72e.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libmac-a53d04fc368ec512.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libdebug_unreachable-a8d74b2faebee50b.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libunreachable-51c70151e416e73a.rlib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/libvoid-be30453a57e46349.rlib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-Wl,-Bdynamic" "-l" "rustc-fc5d01c98dd0ea8b" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "test-9e2230fef34d445b" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_const_math-16b0a6a1b176ce1e" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "graphviz-17bd26b1498ee002" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "fmt_macros-20aef2dfcc65150a" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "arena-7766509c8a1613ee" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_back-db908cbcf08fe91d" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "syntax-49a5ad26e7c7022c" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_errors-37c697748a1c826f" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "syntax_pos-a9e95e2d5d27efff" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_data_structures-5adac668fab655ca" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "serialize-ce3090d98a845190" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "rustc_cratesio_shim-7c04351c2994136d" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "term-3ff3ec281f8adb33" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib" "-l" "std-8994a70aafb14627" "-Wl,-Bstatic" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/mips64-unknown-linux-gnuabi64/lib/libcompiler_builtins-88699abd98e9c904.rlib" "-Wl,-Bdynamic" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "gcc_s" "-l" "c" "-l" "m" "-l" "rt" "-l" "pthread" "-l" "util" "-Wl,-rpath,$ORIGIN/../lib"
[01:06:45]   = note: /usr/lib/gcc-cross/mips64-linux-gnuabi64/5/../../../../mips64-linux-gnuabi64/bin/ld: _ZN7rustdoc4html8markdown10PLAYGROUND7__getit5__KEY17hf37832d2e3d1431eE.llvm.73DA2AB6: TLS definition in /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/librustdoc-c8ce1463e2ecb206.rlib(rustdoc-c8ce1463e2ecb206.rustdoc14-b951c851d4f4ffcffa60bb508a23f39b.rs.rust-cgu.o) section .tdata._ZN7rustdoc4html8markdown10PLAYGROUND7__getit5__KEY17hf37832d2e3d1431eE.llvm.73DA2AB6 mismatches non-TLS reference in /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/librustdoc-c8ce1463e2ecb206.rlib(rustdoc-c8ce1463e2ecb206.rustdoc10-b951c851d4f4ffcffa60bb508a23f39b.rs.rust-cgu.o)
[01:06:45]           /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/mips64-unknown-linux-gnuabi64/release/deps/librustdoc-c8ce1463e2ecb206.rlib: error adding symbols: Bad value
[01:06:45]           collect2: error: ld returned 1 exit status
[01:06:45]           
[01:06:45] 
[01:06:45] error: aborting due to previous error
[01:06:45] 
[01:06:45] error: Could not compile `rustdoc-tool`.
[01:06:45] 
[01:06:45] To learn more, run the command again with --verbose.

@kennytm kennytm added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 28, 2017
@GuillaumeGomez
Copy link
Member Author

Well, no clue what the error is about. Builds fine on my computer. Fixed the function name.

@kennytm
Copy link
Member

kennytm commented Oct 28, 2017

@bors r=QuietMisdreavus

Let's try again. If this turns out to be spurious, maybe we should disable MultipleCGU/ThinLTO on MIPS.

@bors
Copy link
Contributor

bors commented Oct 28, 2017

📌 Commit 6fa521c has been approved by QuietMisdreavus

@bors
Copy link
Contributor

bors commented Oct 28, 2017

⌛ Testing commit 6fa521c with merge ddf0f1c...

bors added a commit that referenced this pull request Oct 28, 2017
…reavus

Improve sidebar rendering and add methods list

I suppose it can be reviewed as is, but this is just the first step of a more global plan.

cc @rust-lang/docs @nical

And a screenshot of course:

<img width="1440" alt="screen shot 2017-10-10 at 23 38 45" src="https://user-images.githubusercontent.com/3050060/31412170-657beaf6-ae14-11e7-9f01-1e562a034595.png">
@bors
Copy link
Contributor

bors commented Oct 28, 2017

💔 Test failed - status-travis

@kennytm
Copy link
Member

kennytm commented Oct 28, 2017

Same error. Legit then.

Did you recognize the following symbol mentioned in the linker error?

  • _ZN7rustdoc4html8markdown10PLAYGROUND7__getit5__KEY17he28fc12935839aecE.llvm.2B8C6904rustdoc::html::markdown::PLAYGROUND::__getit::__KEY::he28fc12935839aec.llvm.2B8C6904

@GuillaumeGomez
Copy link
Member Author

@kennytm: I suppose it refers to this. But I don't see the connection with my PR...

@GuillaumeGomez
Copy link
Member Author

Maybe someone from the @rust-lang/compiler team will see the issue?

@alexcrichton
Copy link
Member

The linkage error here I hope will be unblocked with #45655

@alexcrichton
Copy link
Member

@bors: retry

@kennytm kennytm added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 31, 2017
@bors
Copy link
Contributor

bors commented Nov 1, 2017

⌛ Testing commit 6fa521c with merge fc3e12a...

bors added a commit that referenced this pull request Nov 1, 2017
…reavus

Improve sidebar rendering and add methods list

I suppose it can be reviewed as is, but this is just the first step of a more global plan.

cc @rust-lang/docs @nical

And a screenshot of course:

<img width="1440" alt="screen shot 2017-10-10 at 23 38 45" src="https://user-images.githubusercontent.com/3050060/31412170-657beaf6-ae14-11e7-9f01-1e562a034595.png">
@bors
Copy link
Contributor

bors commented Nov 1, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: QuietMisdreavus
Pushing fc3e12a to master...

@bors bors merged commit 6fa521c into rust-lang:master Nov 1, 2017
@GuillaumeGomez GuillaumeGomez deleted the doc-ui-improvement branch November 1, 2017 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants