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

Rewrite of task switching mechanism #485

Closed
wants to merge 1 commit into from
Closed

Conversation

eholk
Copy link
Contributor

@eholk eholk commented Jun 14, 2011

This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).

This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.

…anism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).

This commit also moves yield and join to the standard library, as requested in rust-lang#42. Join is currently a no-op though.
@graydon
Copy link
Contributor

graydon commented Jun 14, 2011

Integrated, thanks!

@graydon graydon closed this Jun 14, 2011
keeperofdakeys pushed a commit to keeperofdakeys/rust that referenced this pull request Dec 12, 2017
Add Solaris constants for fcntl-style advisory locking

Solaris doesn't implement flock(), so any Rust implementation of flock()
will need to implement it using fcntl(), using the F_RDLCK, F_WRLCK, and
F_UNLCK constants.
ZuseZ4 pushed a commit to EnzymeAD/rust that referenced this pull request Mar 7, 2023
celinval added a commit to celinval/rust-dev that referenced this pull request Jun 4, 2024
Instead of keeping our own copy of the monomorphizer, we would like to
start using rustc monomorphizer as is. This is the first step towards
that goal.

For now, we will use the upstream version of the monomorphizer with a
few small changes. Use a query to skip monomorphization for rmc instead
of hooks.

This change, adds a query to allow RMC to skip monomorphizing functions. It also does the following:
- Adds a default query to codegen base that don't skip anything.
- Adds a query implementation to RMC that checks our hooks.
- Skips monomorphizing the start function if --cfg=rmc

Issue rust-lang#485 tracks the rest of the changes needed.
celinval added a commit to celinval/rust-dev that referenced this pull request Jun 4, 2024
We have changed rmc to always compile the target crate as a library.
This allow us to treat any extern / public function to be used as the
starting point of a proof. Furthermore, it allow us to remove the is_rmc
check that we were using to skip the rust start function generation.
The start function is only generated when we are compiling a bin crate.
celinval added a commit to celinval/rust-dev that referenced this pull request Jun 4, 2024
Remove the hack we added to monomorphizer to skip functions that we were not able to handle.

The latest fixes that we added to RMC was enough to allow us to run the monomorphizer as is.
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

Successfully merging this pull request may close these issues.

2 participants