-
Notifications
You must be signed in to change notification settings - Fork 53
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
Use fibers on windows #8
Conversation
…ble unwinding, catching panics and backtraces.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! My main hesitation here continues to be that there's no comments anywhere and I have no idea how any of this works, so some comments would be greatly welcome!
src/lib.rs
Outdated
} | ||
} else { | ||
#[inline(always)] | ||
fn get_thread_stack_guarantee() -> usize { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this used because aren't all windows platforms x86/x86_64 righ tnow basically?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did see someone trying to use Rust on ARM64
That's why I didn't want to touch that PR :/ cc @Zoxc can you do a first round of documentation, maybe even with some links into windows-documentation? If it's completely out of your cache I can start reading up on the docs myself though. |
@alexcrichton we lost appveyor on this repo it seems? |
@Zoxc can you review the comments I added in the code? |
src/lib.rs
Outdated
cfg_if! { | ||
if #[cfg(any(target_arch = "x86_64", target_arch = "x86"))] { | ||
#[inline(always)] | ||
// We cannot know the initial stack size on x86 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Zoxc this seems suspicious.
@alexcrichton deadlines are coming up fast. Do you think we could merge this and address additional documentation later? |
I think this is way too high risk to land in the edition release, and I would still personally prefer that someone takes the time to understand and document this. |
mingw failures are probably related to rust-lang/rust#53454 |
Ok great! I'll take a closer look at this on Monday where I should have access to a windows computer and can dig in a bit more |
Appveryor is configured to use headers from MSYS2 and libs copied from mingw-builds GCC 7.2 package. This ABI mismatch is only getting worse as the time goes by. Another error (this time caused by this PR) is multiple definition of |
src/arch/asm.h
Outdated
@@ -1,4 +1,4 @@ | |||
#if defined(APPLE) || (defined(WINDOWS) && defined(X86)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
32 bit Windows does use additional leading _
, you'll have to revert this change.
fn __stacker_black_box(t: *const u8); | ||
} | ||
#[inline(never)] | ||
fn __stacker_black_box(_: *const u8) {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a not a black box. LLVM can see what is inside ;)
This did fail on my Fedora VM last time I tried. That means that there's probably something wrong in the unix code :/ |
Ah ok, if you can get a reproduction we can dig in! |
No description provided.