Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upTracking issue for location of facade crates #27783
Comments
alexcrichton
added
T-libs
B-unstable
labels
Aug 13, 2015
This comment has been minimized.
This comment has been minimized.
|
It has been noted that the separation between Basically I don't think these should be stabilized at all in anything approaching the short term pending the ultimate allocator designs. |
Ms2ger
referenced this issue
Aug 16, 2015
Open
Tracking: Unstable Rust feature gates used by Servo #5286
coriolinus
referenced this issue
Dec 7, 2015
Closed
gstreamer does not build in rust 1.4, cargo 0.5. #5
This comment has been minimized.
This comment has been minimized.
zitsen
commented
Dec 16, 2015
|
Found this through Is there any news about this issue? |
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
chao787
commented
Jan 5, 2016
It would be nice if rust officially support some low-level mem layer (in rust way). |
This comment has been minimized.
This comment has been minimized.
|
@chao787 that's the |
alexcrichton
referenced this issue
Apr 18, 2016
Closed
Tracking issue for alloc_system/alloc_jemalloc #33082
This comment has been minimized.
This comment has been minimized.
Shnatsel
commented
Oct 4, 2016
•
|
I've found this issue through compiler error message:
I'm just trying to opt out of jemalloc and get Rust to compile my binary with system default malloc implementation. Is there a way to do it that would not involve unstable language features, like a compiler switch to get jemalloc out of my binaries and off my lawn? Rationale: jemalloc has abysmal fork performance (80x slowdown) on default kernel configuration of recent Ubuntu. See issue #36705 for more info. Opting out of jemalloc is also important for fuzzing, e.g. with afl-fuzz; even on jemalloc-friendly configurations using default malloc gets you 20% more fork performance which is significant for fuzzing workloads, and lets you substitute abusive memory allocators at runtime that catch more errors than default allocator or jemalloc but don't incur the performance penalty of DUMA or AddressSanitizer. See AFL's libdislocator as an example. |
This comment has been minimized.
This comment has been minimized.
|
@Shnatsel yeah I'd love to explore the possibilities of stabilizing the "please give me the system allocator" intent. Right now it's unfortunately not possible to do that in stable Rust. The tracking issue for global allocators in general is #27389, but it may be worth spawning off a separate thread of discussion for just declaring the intent to use the system allocator. |
This comment has been minimized.
This comment has been minimized.
|
FWIW I'm not in favor of merging the facade crates. Having std be decomposed into reusable components should be useful for those targeting more exotic systems, particularly if I complete my further ambitions to extract all system-specific components of std into their own crates. Ultimately people should be able to create custom stds for whatever weird systems they want be reusing our small self-contained building blocks. |
This comment has been minimized.
This comment has been minimized.
Shnatsel
commented
Oct 4, 2016
|
Decomposed stdlib would be really useful for asm.js target that I will need in the near future and really want to use Rust for. |
This comment has been minimized.
This comment has been minimized.
|
@brson As a person targeting a mildly exotic system, I agree. For example, I would expect that a significant proportion of bare-metal use cases (like mine) would want |
This comment has been minimized.
This comment has been minimized.
I surveyed what’s tracked by this issue when writing #39954. Unless I missed something:
Some environments might require My subjective opinions:
|
This comment has been minimized.
This comment has been minimized.
|
Looking at I think this leaves two items in need of attention:
I vaguely recall GC-related concerns about the former, but I think those would also apply to the |
This comment has been minimized.
This comment has been minimized.
This is #27700, not sure how I missed that. |
This comment has been minimized.
This comment has been minimized.
|
For unicode stuff, now that we can use crates.io crates in rustc build system, could the crates.io crates be used? |
This comment has been minimized.
This comment has been minimized.
|
The compiler depends on crates from crates.io. Does |
This comment has been minimized.
This comment has been minimized.
|
Question: is there a reason why |
This comment has been minimized.
This comment has been minimized.
tarcieri
commented
Jun 17, 2017
|
@alexcrichton might want to remove |
This comment has been minimized.
This comment has been minimized.
|
@SimonSapin I think it would be a huge boost to the no-std ecosystem if std was allowed to depend on crates.io (at least official out-of-tree crates). |
This comment has been minimized.
This comment has been minimized.
su8
commented
Jun 21, 2017
|
How do I install libc, can't use the following extern crate libc;
use libc::{c_char, uint8_t}; |
This comment has been minimized.
This comment has been minimized.
|
@su8 |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton the OP should probably be updated |
Mark-Simulacrum
added
the
C-tracking-issue
label
Jul 22, 2017
This comment has been minimized.
This comment has been minimized.
|
rust-lang-nursery/portability-wg#1 talks about what to do with std. I'd argue the goal for out-of-tree ports (among other things) actually pushes in the direction of making |
This comment has been minimized.
This comment has been minimized.
|
[As an aside, some of our language here is rather confusing. The "facade" is the exterior skin of the building, so |
This comment has been minimized.
This comment has been minimized.
|
I’ve been using "the facade" as short for "the fact that |
SimonSapin
referenced this issue
Apr 5, 2018
Merged
Merge the std_unicode crate into the core crate #49698
This comment has been minimized.
This comment has been minimized.
|
#49698 proposes merging |
SimonSapin
referenced this issue
Apr 6, 2018
Open
Tracking issue for UnicodeVersion and UNICODE_VERSION #49726
bors
added a commit
that referenced
this issue
Apr 7, 2018
bors
added a commit
that referenced
this issue
Apr 8, 2018
bors
added a commit
that referenced
this issue
Apr 8, 2018
bors
added a commit
that referenced
this issue
Apr 11, 2018
bors
added a commit
that referenced
this issue
Apr 11, 2018
kennytm
added a commit
to kennytm/rust
that referenced
this issue
Apr 11, 2018
kennytm
added a commit
to kennytm/rust
that referenced
this issue
Apr 11, 2018
bors
added a commit
that referenced
this issue
Apr 12, 2018
This comment has been minimized.
This comment has been minimized.
|
OK now that #49698 is merged, I'd like to reiterate my concerns on this general direction of fewer creates behind the facade.
The second concern absolutely does apply to |
This comment has been minimized.
This comment has been minimized.
|
Also, on a process level, I'm concerned that rather than getting a simple "we disagree with your points" which would have been fine, I was getting told "your concerns don't apply to this PR", which just isn't true. This leaves me wondering who actually read the discussion before checking off the box, and whether the rules "final comment period" was followed. Admittedly, I did open with the unrelevant portability concerns, unfortunately sowing confusion I did not intend, but I thought that was cleared up in the end, at least between @SimonSapin and I. @SimonSapin indeed said in his last comment to me #49698 (comment) "I don’t care as much about how source code is organized internally" which at least felt like a "this PR isn't trying to disagree with you" leaving open other resolutions to the issue. But then @withoutboats rejoined with another "[your concern] seems off topic from this PR" #49698 (comment), and @alexcrichton, who had not participated in that discussion since a LGTM before I raised my points, did the Again, I'm not demanding that everyone agree to with me, but just to that explicit reject my points rather than leaving open that they were just missed. If there is no process violation going on, either FCP is different for PRs than RFCs in ways I wasn't aware of, or I misunderstand FCP overall. |
geofft
referenced this issue
Jun 1, 2018
Open
Use stable Rust (tracking ticket for unstable features we use) #41
SimonSapin
referenced this issue
Jun 15, 2018
Merged
Make the public API of the alloc crate a subset of std #51569
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
There is something questionable with using |
This comment has been minimized.
This comment has been minimized.
|
@glandium #36963 should make this disappear, and it only happens for executables. A But yeah it’s a good question whether we should change this in the meantime. Maybe it’s not much of a problem in practice? |
bors
added a commit
that referenced
this issue
Jun 29, 2018
This comment has been minimized.
This comment has been minimized.
|
How about adding |
alexcrichton commentedAug 13, 2015
•
edited by SimonSapin
We probably don't want to indefinitely have a large number of facade crates which are all unstable, so we should eventually stabilize these crates, fold them back into the standard library, or find a good middle ground in which they can all reside.
The current set of crates considered under this issue are:
rustc_unicodelibccollectionsallocrandUpdate 2018-04-05:
libcandrandhave moved to crates.iocollectionswas merged intoallocrustc_unicodewas renamed tostd_unicodeand later merged intocoreThis leaves only the
alloccrate still unstable, which with the stablecoreandstdcrates (plus arguablyproc_macro) form the standard library.Update 2018-06-19:
RFC 2480 proposes stabilizing the
alloccrate, which would close this issue.