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

make target-run compiled artifacts per-arch #474

Closed
graydon opened this issue Jun 10, 2011 · 5 comments
Closed

make target-run compiled artifacts per-arch #474

graydon opened this issue Jun 10, 2011 · 5 comments
Assignees

Comments

@graydon
Copy link
Contributor

graydon commented Jun 10, 2011

once in sysroot, librustrt.so should be built as stageN/lib/$arch/librustrt.so and recompiled for every target in the targets list for the current compiler. rustc and librustllvm should probably only be compiled for every host in the host list. Or, if we're lucky, we only have one host.

@ghost ghost assigned espindola Jun 21, 2011
@espindola
Copy link

librustrt is written in c++. This would require a cross compiler to implement. Why do we need this?

@brson
Copy link
Contributor

brson commented Jul 25, 2011

Can this be delayed until after the 0.1 milestone?

@graydon
Copy link
Contributor Author

graydon commented Jul 25, 2011

Only requires a cross compiler when we support host != target. Until then it's just a question of directory organization. I agree we can defer host != target until after first milestone. I'd like to get the directory organization right though.

@graydon
Copy link
Contributor Author

graydon commented Sep 23, 2011

Doing this in steps, also combining it with a slight reorg of built dirs into stageN/{bin,lib}/ such that it has the right shape to be installed into /usr/ with the RPATH-ing that has to happen in #441.

First step is to teach configure and the makefiles and compiler to handle --target args, defaulting to host triple, add library search path for $sysroot/lib/rustc/$target, and make $stageN/lib/rustc/$target/ libs build along with the usual ones.

Once all new stuff is building properly, snapshot and start purging the old stuff from the make system.

@brson
Copy link
Contributor

brson commented Sep 30, 2011

Done.

@brson brson closed this as completed Sep 30, 2011
keeperofdakeys pushed a commit to keeperofdakeys/rust that referenced this issue Dec 12, 2017
Fix doc generation on travis.

Documentation generation appears to be failing on master (https://travis-ci.org/rust-lang/libc/jobs/183483333):

```
Collecting ghp-import
  Downloading ghp-import-0.4.1.tar.gz
Collecting travis
  Could not find a version that satisfies the requirement travis (from versions: )
No matching distribution found for travis
```

Basically `--user` doesn't appear to take an option, so `pip install ghp_import --user $USER` makes pip think the user is a package that needs to be installed (in this case `travis`). As there is no `travis` package, it dies.
withoutboats pushed a commit to withoutboats/rust that referenced this issue Apr 11, 2018
In [RFC rust-lang#474][rfc474], the issue of how to handle Displaying a
Path was left as an open question. The problem is that a Path
may contain non-UTF-8 data on most platforms. In the
implementation of the RFC, a `display` method was added, which
returns an adapter that implements `Display` by replacing
non-UTF8 data with a unicode replacement character.

Though I can't find a record of the discussion around this
issue, I believe there were two primary reasons not to just
implement this behavior as the `Display` impl of `Path`:

1. The adapter allocated in the non-UTF8 case, and Rust as a
   rule tries to avoid allocations that are not explicit in code.
2. The user may prefer an alternative solution than using the
   unicode replacement character for handling non-UTF8 data.

In my view, the choice to provide an adapter rather than
implement Display has had a high cost in terms of user experience:

* I almost never remember that I need an adapter, forcing me to
  go back and edit my code after compiling it and getting an error.
* It makes my code more noisy to have the display adapter; this
  detail is rarely important.
* It is extremely uncommon to actually do something other than call
  the display adapter when trying to display a path (I have never
  wanted anything else myself).
* For new users, it is Yet Another Compiler Error that they have to
  figure out how to solve, contributing to the sense that Rust nags
  nags and obstructs rather than assists & guides.

Therefore, I think time has shown that this has been a detriment to
user experience, rather than a helpful reminder. That leaves only
the first reason not to implement this: implicit allocations. That
problem was happily resolved in June 2017: rust-lang#42613 provided an
alternative implementation which efficiently avoids allocations.

Given that, I think it is time that we implement `Display` for both
`Path` and `PathBuf` and deprecate the `Path::display` method.

r? @alexcrichton
cc @rust-lang/libs

[rfc474]: https://github.com/rust-lang/rfcs/blob/master/text/0474-path-reform.md)
pdietl pushed a commit to pdietl/rust that referenced this issue Apr 23, 2020
Fix minor typos in const functions section
celinval pushed a commit to celinval/rust-dev that referenced this issue Jun 4, 2024
* Introduce the first section of the RMC tutorial

* add license boilerplate, correct typos

* fix formatting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants