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 upImplement libstd for CloudABI. #47268
Conversation
rust-highfive
assigned
sfackler
Jan 8, 2018
This comment has been minimized.
This comment has been minimized.
|
r? @sfackler (rust_highfive has picked a reviewer for you, use r? to override) |
EdSchouten
force-pushed the
EdSchouten:cloudabi-libstd
branch
2 times, most recently
from
8ffc7be
to
72aaa08
Jan 8, 2018
kennytm
added
the
S-waiting-on-review
label
Jan 8, 2018
EdSchouten
force-pushed the
EdSchouten:cloudabi-libstd
branch
2 times, most recently
from
adf24d1
to
e7aa33c
Jan 8, 2018
sfackler
added
I-needs-decision
T-libs
labels
Jan 8, 2018
This comment has been minimized.
This comment has been minimized.
|
Thanks for the PR @EdSchouten! We discussed this PR at @rust-lang/libs triage today and we noted that one thing we'll probably want to do is keep the whole standard library compiling as-is on the cloudabi platform (e.g. continue to have Along those lines could this take a wasm-like approach which implements the entire |
EdSchouten
added some commits
Jan 8, 2018
EdSchouten
force-pushed the
EdSchouten:cloudabi-libstd
branch
from
e7aa33c
to
cc8565b
Jan 11, 2018
This comment has been minimized.
This comment has been minimized.
|
Hi Alex, Thanks to you and others for taking the time to discuss this! I have to say I only agree with this sentiment partially; I already had a set of patches that made a full I've just updated this pull request with three additional commits: one to put shims in place and two to make all of the tests/documentation build properly. Be sure to let me know what you think! Ed |
This comment has been minimized.
This comment has been minimized.
|
Hmmm... this is odd. Checks fail due to |
EdSchouten
referenced this pull request
Jan 11, 2018
Closed
Don't normalize paths in backtraces to be relative to the cwd. #47057
This comment has been minimized.
This comment has been minimized.
|
Looks like there may be a specific exception for these lines but the modification is triggering it again? |
This comment has been minimized.
This comment has been minimized.
|
(in that it should be fine to just tweak that exception logic) |
This comment has been minimized.
This comment has been minimized.
|
@bors: r+ |
This comment has been minimized.
This comment has been minimized.
|
|
alexcrichton
added
S-waiting-on-bors
and removed
I-needs-decision
S-waiting-on-review
labels
Jan 11, 2018
This comment has been minimized.
This comment has been minimized.
|
Sorry if I'm being impatient, but is this pull request actually in bors's queue? I'm seeing most pull requests getting merged by bors within one day, whereas this one is taking almost three days. Just responding to this pull request to ensure it won't slip under the radar. There happened to be an outage on GitHub around the time this got approved. Maybe this interfered with it being queued? |
This comment has been minimized.
This comment has been minimized.
bors
added a commit
that referenced
this pull request
Jan 14, 2018
This comment has been minimized.
This comment has been minimized.
You can see the queue here - https://buildbot2.rust-lang.org/homu/queue/rust. |
This comment has been minimized.
This comment has been minimized.
|
Hey @petrochenkov. Thanks for the link. That's pretty useful! |
This comment has been minimized.
This comment has been minimized.
|
|
bors
merged commit 6a8d55a
into
rust-lang:master
Jan 14, 2018
This comment has been minimized.
This comment has been minimized.
|
@EdSchouten What is the reason you used |
EdSchouten commentedJan 8, 2018
Though CloudABI is strongly inspired by POSIX, its absence of features that don't work well with capability-based sandboxing makes it different enough that adding bits to
sys/unixwill make things a mess. This change therefore adds CloudABI specific platform code undersys/cloudabi.One of the goals of this implementation is to build as much as possible directly on top of CloudABI's system call layer, as opposed to using the C library. This is preferred, as the system call layer is supposed to be stable, whereas the C library ABI technically is not. An advantage of this approach is that it allows us to implement certain interfaces, such as mutexes and condition variables more optimally. They can be lighter than the ones provided by pthreads.
This change disables some modules that cannot realistically be implemented right now. For example, libstd's pathname abstraction is not designed with POSIX
*at()(e.g.,openat()) in mind. The*at()functions are the only set of file system APIs available on CloudABI. There is no global file system namespace, nor a process working directory. Discussions on how to port these modules over are outside the scope of this change.