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

x.py doc cannot work when a junction point / symbolic link cannot be created. #43801

Open
kennytm opened this issue Aug 11, 2017 · 1 comment
Labels
A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools C-enhancement Category: An issue proposing an enhancement or a PR with one. C-optimization Category: An issue highlighting optimization opportunities or PRs implementing such T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.

Comments

@kennytm
Copy link
Member

kennytm commented Aug 11, 2017

... for instance, in a VirtualBox shared folder, which are mapped as network drive, does not support junction point on Windows, which causes Incorrect function. (os error 1) always.

Symbolic links (junction points) are used because:

Here what we're doing is creating a symlink (directory junction on
Windows) to the final output location. This is not done as an
optimization but rather for correctness. We've got three trees of
documentation, one for std, one for test, and one for rustc. It's then
our job to merge them all together.

Unfortunately rustbuild doesn't know nearly as well how to merge doc
trees as rustdoc does itself, so instead of actually having three
separate trees we just have rustdoc output to the same location across
all of them.

This way rustdoc generates output directly into the output, and rustdoc
will also directly handle merging.

There should be other way to achieve the same effect? For example forcing rustdoc to output to stage$N/$TARGET/doc (bootstrap already wrapped rustdoc so it should be fine).

@Mark-Simulacrum Mark-Simulacrum added T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) C-enhancement Category: An issue proposing an enhancement or a PR with one. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Aug 11, 2017
@kennytm kennytm changed the title x.py doc cannot work on when a junction point / symbolic link cannot be created. x.py doc cannot work when a junction point / symbolic link cannot be created. Aug 11, 2017
@jyn514
Copy link
Member

jyn514 commented Jun 27, 2022

Triage: we now use symlinks only for compiler + tool documentation and not the standard library, which should make it more rare to come across this. The symlinks for std were removed in #74352; maybe we can do something similar for tools?

@jyn514 jyn514 added the A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools label Jun 27, 2022
@workingjubilee workingjubilee added the C-optimization Category: An issue highlighting optimization opportunities or PRs implementing such label Oct 8, 2023
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 C-enhancement Category: An issue proposing an enhancement or a PR with one. C-optimization Category: An issue highlighting optimization opportunities or PRs implementing such T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

4 participants