Skip to content

Commit 7ffde12

Browse files
Zoxccuviper
authored andcommitted
Rename crates, update version and make clear this is not the real rayon crate
1 parent 4dbc008 commit 7ffde12

File tree

7 files changed

+21
-139
lines changed

7 files changed

+21
-139
lines changed

Cargo.toml

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
[package]
2-
name = "rayon"
2+
name = "rustc-rayon"
33
# Reminder to update html_rool_url in lib.rs when updating version
4-
version = "1.2.0"
4+
version = "0.2.0"
55
authors = ["Niko Matsakis <[email protected]>",
66
"Josh Stone <[email protected]>"]
7-
description = "Simple work-stealing parallelism for Rust"
7+
description = "Simple work-stealing parallelism for Rust - fork for rustc"
88
license = "Apache-2.0/MIT"
9-
repository = "https://github.com/rayon-rs/rayon"
10-
documentation = "https://docs.rs/rayon/"
9+
repository = "https://github.com/rust-lang/rustc-rayon"
10+
documentation = "https://docs.rs/rustc-rayon/"
1111
readme = "README.md"
1212
keywords = ["parallel", "thread", "concurrency", "join", "performance"]
1313
categories = ["concurrency"]
1414
exclude = ["/ci/*", "/scripts/*", "/.travis.yml", "/appveyor.yml", "/bors.toml"]
1515

1616
[workspace]
17-
members = ["rayon-demo", "rayon-core", "rayon-futures"]
17+
members = ["rayon-core"]
1818
exclude = ["ci"]
1919

2020
[dependencies]
21-
rayon-core = { version = "1.6.0", path = "rayon-core" }
21+
rustc-rayon-core = { version = "0.2", path = "rayon-core" }
2222
crossbeam-deque = "0.7"
2323

2424
# This is a public dependency!

README.md

+3-123
Original file line numberDiff line numberDiff line change
@@ -1,130 +1,10 @@
1-
# Rayon
1+
# rustc-rayon
22

3-
[![Rayon crate](https://img.shields.io/crates/v/rayon.svg)](https://crates.io/crates/rayon)
4-
[![Rayon documentation](https://docs.rs/rayon/badge.svg)](https://docs.rs/rayon)
5-
[![Travis Status](https://travis-ci.org/rayon-rs/rayon.svg?branch=master)](https://travis-ci.org/rayon-rs/rayon)
6-
[![Appveyor status](https://ci.appveyor.com/api/projects/status/wre5dkx08gayy8hc/branch/master?svg=true)](https://ci.appveyor.com/project/cuviper/rayon/branch/master)
7-
[![Join the chat at https://gitter.im/rayon-rs/Lobby](https://badges.gitter.im/rayon-rs/Lobby.svg)](https://gitter.im/rayon-rs/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
8-
9-
Rayon is a data-parallelism library for Rust. It is extremely
10-
lightweight and makes it easy to convert a sequential computation into
11-
a parallel one. It also guarantees data-race freedom. (You may also
12-
enjoy [this blog post][blog] about Rayon, which gives more background
13-
and details about how it works, or [this video][video], from the Rust
14-
Belt Rust conference.) Rayon is
15-
[available on crates.io](https://crates.io/crates/rayon), and
16-
[API Documentation is available on docs.rs](https://docs.rs/rayon/).
17-
18-
[blog]: http://smallcultfollowing.com/babysteps/blog/2015/12/18/rayon-data-parallelism-in-rust/
19-
[video]: https://www.youtube.com/watch?v=gof_OEv71Aw
20-
21-
## Parallel iterators and more
22-
23-
Rayon makes it drop-dead simple to convert sequential iterators into
24-
parallel ones: usually, you just change your `foo.iter()` call into
25-
`foo.par_iter()`, and Rayon does the rest:
26-
27-
```rust
28-
use rayon::prelude::*;
29-
fn sum_of_squares(input: &[i32]) -> i32 {
30-
input.par_iter() // <-- just change that!
31-
.map(|&i| i * i)
32-
.sum()
33-
}
34-
```
35-
36-
[Parallel iterators] take care of deciding how to divide your data
37-
into tasks; it will dynamically adapt for maximum performance. If you
38-
need more flexibility than that, Rayon also offers the [join] and
39-
[scope] functions, which let you create parallel tasks on your own.
40-
For even more control, you can create [custom threadpools] rather than
41-
using Rayon's default, global threadpool.
42-
43-
[Parallel iterators]: https://docs.rs/rayon/*/rayon/iter/index.html
44-
[join]: https://docs.rs/rayon/*/rayon/fn.join.html
45-
[scope]: https://docs.rs/rayon/*/rayon/fn.scope.html
46-
[custom threadpools]: https://docs.rs/rayon/*/rayon/struct.ThreadPool.html
47-
48-
## No data races
49-
50-
You may have heard that parallel execution can produce all kinds of
51-
crazy bugs. Well, rest easy. Rayon's APIs all guarantee **data-race
52-
freedom**, which generally rules out most parallel bugs (though not
53-
all). In other words, **if your code compiles**, it typically does the
54-
same thing it did before.
55-
56-
For the most, parallel iterators in particular are guaranteed to
57-
produce the same results as their sequential counterparts. One caveat:
58-
If your iterator has side effects (for example, sending methods to
59-
other threads through a [Rust channel] or writing to disk), those side
60-
effects may occur in a different order. Note also that, in some cases,
61-
parallel iterators offer alternative versions of the sequential
62-
iterator methods that can have higher performance.
63-
64-
[Rust channel]: https://doc.rust-lang.org/std/sync/mpsc/fn.channel.html
65-
66-
## Using Rayon
67-
68-
[Rayon is available on crates.io](https://crates.io/crates/rayon). The
69-
recommended way to use it is to add a line into your Cargo.toml such
70-
as:
71-
72-
```toml
73-
[dependencies]
74-
rayon = "1.1"
75-
```
76-
77-
and then add the following to your `lib.rs`:
78-
79-
```rust
80-
extern crate rayon;
81-
```
82-
83-
To use the Parallel Iterator APIs, a number of traits have to be in
84-
scope. The easiest way to bring those things into scope is to use the
85-
[Rayon prelude](https://docs.rs/rayon/*/rayon/prelude/index.html). In
86-
each module where you would like to use the parallel iterator APIs,
87-
just add:
88-
89-
```rust
90-
use rayon::prelude::*;
91-
```
92-
93-
Rayon currently requires `rustc 1.28.0` or greater.
94-
95-
## Contribution
96-
97-
Rayon is an open source project! If you'd like to contribute to Rayon, check out [the list of "help wanted" issues](https://github.com/rayon-rs/rayon/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22). These are all (or should be) issues that are suitable for getting started, and they generally include a detailed set of instructions for what to do. Please ask questions if anything is unclear! Also, check out the [Guide to Development](https://github.com/rayon-rs/rayon/wiki/Guide-to-Development) page on the wiki. Note that all code submitted in PRs to Rayon is assumed to [be licensed under Rayon's dual MIT/Apache2 licensing](https://github.com/rayon-rs/rayon/blob/master/README.md#license).
98-
99-
## Quick demo
100-
101-
To see Rayon in action, check out the `rayon-demo` directory, which
102-
includes a number of demos of code using Rayon. For example, run this
103-
command to get a visualization of an nbody simulation. To see the
104-
effect of using Rayon, press `s` to run sequentially and `p` to run in
105-
parallel.
106-
107-
```text
108-
> cd rayon-demo
109-
> cargo run --release -- nbody visualize
110-
```
111-
112-
For more information on demos, try:
113-
114-
```text
115-
> cd rayon-demo
116-
> cargo run --release -- --help
117-
```
118-
119-
## Other questions?
120-
121-
See [the Rayon FAQ][faq].
122-
123-
[faq]: https://github.com/rayon-rs/rayon/blob/master/FAQ.md
3+
rustc-rayon is a fork of [the Rayon crate](https://github.com/rayon-rs/rayon/). It adds a few "in progress" features that rustc is using, mostly around deadlock detection. These features are not stable and should not be used by others -- though they may find their way into rayon proper at some point. In general, if you are not rustc, you should be using the real rayon crate, not rustc-rayon. =)
1244

1255
## License
1266

127-
Rayon is distributed under the terms of both the MIT license and the
7+
rustc-rayon is a fork of rayon. rayon is distributed under the terms of both the MIT license and the
1288
Apache License (Version 2.0). See [LICENSE-APACHE](LICENSE-APACHE) and
1299
[LICENSE-MIT](LICENSE-MIT) for details. Opening a pull requests is
13010
assumed to signal agreement with these licensing terms.

rayon-core/Cargo.toml

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
[package]
2-
name = "rayon-core"
3-
version = "1.6.0" # reminder to update html_root_url attribute
2+
name = "rustc-rayon-core"
3+
version = "0.2.0" # reminder to update html_root_url attribute
44
authors = ["Niko Matsakis <[email protected]>",
55
"Josh Stone <[email protected]>"]
6-
description = "Core APIs for Rayon"
6+
description = "Core APIs for Rayon - fork for rustc"
77
license = "Apache-2.0/MIT"
8-
repository = "https://github.com/rayon-rs/rayon"
9-
documentation = "https://docs.rs/rayon/"
10-
links = "rayon-core"
8+
repository = "https://github.com/rust-lang/rustc-rayon"
9+
documentation = "https://docs.rs/rustc-rayon-core/"
1110
build = "build.rs"
1211
readme = "README.md"
1312
keywords = ["parallel", "thread", "concurrency", "join", "performance"]

rayon-core/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
Note: This is an unstable fork made for use in rustc
2+
13
Rayon-core represents the "core, stable" APIs of Rayon: join, scope, and so forth, as well as the ability to create custom thread-pools with ThreadPool.
24

35
Maybe worth mentioning: users are not necessarily intended to directly access rayon-core; all its APIs are mirror in the rayon crate. To that end, the examples in the docs use rayon::join and so forth rather than rayon_core::join.

rayon-demo/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ authors = ["Niko Matsakis <[email protected]>"]
55
publish = false
66

77
[dependencies]
8-
rayon = { path = "../" }
8+
rustc-rayon = { path = "../" }
99
cgmath = "0.17"
1010
docopt = "1"
1111
fixedbitset = "0.1.5"

rayon-futures/Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ documentation = "https://docs.rs/rayon-futures/"
1010
readme = "README.md"
1111
keywords = ["parallel", "thread", "concurrency", "join", "performance"]
1212
categories = ["concurrency"]
13+
publish = false
1314

1415
[dependencies]
15-
rayon-core = { version = "1.3", path = "../rayon-core" }
16+
rustc-rayon-core = { version = "0.1", path = "../rayon-core" }
1617
futures = "0.1.16"

src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
8181
extern crate crossbeam_deque;
8282
extern crate either;
83-
extern crate rayon_core;
83+
extern crate rustc_rayon_core as rayon_core;
8484

8585
#[cfg(test)]
8686
extern crate rand;

0 commit comments

Comments
 (0)