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

libgreen context switching never swaps AVX registers, and SSE registers aren't handled on 32-bit #7762

Closed
thestinger opened this issue Jul 13, 2013 · 8 comments
Labels
A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows P-low Low priority

Comments

@thestinger
Copy link
Contributor

We support flags to enable AVX and SSE, but it's broken because context switching doesn't handle it. The OS will detect the CPU and swap appropriately, but we don't.

@thestinger
Copy link
Contributor Author

Nominating for production ready. It's not good to be generating invalid binaries from a non-experimental feature.

@graydon
Copy link
Contributor

graydon commented Jul 13, 2013

I have some fixes to this in the gc branch but likely more are required.

@thestinger
Copy link
Contributor Author

This is still an issue.

@catamorphism
Copy link
Contributor

Accepted for production-ready

@flaper87
Copy link
Contributor

triage bump, nothing to add.

@pnkfelix
Copy link
Member

cc me.

As part of my gc experiments I have played with the code graydon mentioned above. Probably should look into landing it or some variant of it independently of the GC work.

@pnkfelix
Copy link
Member

P-low, not a 1.0 blocker; at worst we do not support enabling SSE until sometime after 1.0 release.

@thestinger thestinger changed the title context switching never swaps AVX registers, and SSE registers aren't handled on 32-bit libgreen context switching never swaps AVX registers, and SSE registers aren't handled on 32-bit Mar 22, 2014
@thestinger
Copy link
Contributor Author

#17325 means this is no longer relevant to the standard libraries

flip1995 pushed a commit to flip1995/rust that referenced this issue Oct 7, 2021
Add lint `equatable_if_let`

This is my attempt for rust-lang#1716. There is a major false positive, which is people may implement `PartialEq` in a different way. It is unactionable at the moment so I put it into `nursery`.

There is a trait `StructuralPartialEq` for solving this problem which is promising but it has several problems currently:
* Integers and tuples doesn't implement it.
* Some types wrongly implement it, like `Option<T>` when `T` doesn't implement it.

I consider them bugs and against the propose of `StructuralPartialEq`. When they become fixed, this lint can become a useful lint with a single line change.

changelog: New lint: [`equatable_if_let`]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows P-low Low priority
Projects
None yet
Development

No branches or pull requests

6 participants