Skip to content

Commit 6a5544c

Browse files
committed
Rename crates, update version and make clear this is not the real rayon crate
1 parent be1b824 commit 6a5544c

File tree

5 files changed

+18
-130
lines changed

5 files changed

+18
-130
lines changed

Cargo.toml

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
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.3.0"
4+
version = "0.3.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
edition = "2018"
99
license = "Apache-2.0/MIT"
10-
repository = "https://github.com/rayon-rs/rayon"
11-
documentation = "https://docs.rs/rayon/"
10+
repository = "https://github.com/rust-lang/rustc-rayon"
11+
documentation = "https://docs.rs/rustc-rayon/"
1212
readme = "README.md"
1313
keywords = ["parallel", "thread", "concurrency", "join", "performance"]
1414
categories = ["concurrency"]
1515
exclude = ["/ci/*", "/scripts/*", "/.travis.yml", "/appveyor.yml", "/bors.toml"]
1616

1717
[workspace]
18-
members = ["rayon-demo", "rayon-core"]
18+
members = ["rayon-core"]
1919
exclude = ["ci"]
2020

2121
[dependencies]
22-
rayon-core = { version = "1.7.0", path = "rayon-core" }
22+
rayon-core = { version = "0.3", path = "rayon-core", package = "rustc-rayon-core" }
2323
crossbeam-deque = "0.7.2"
2424

2525
# This is a public dependency!

README.md

+3-117
Original file line numberDiff line numberDiff line change
@@ -1,124 +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-
To use the Parallel Iterator APIs, a number of traits have to be in
78-
scope. The easiest way to bring those things into scope is to use the
79-
[Rayon prelude](https://docs.rs/rayon/*/rayon/prelude/index.html). In
80-
each module where you would like to use the parallel iterator APIs,
81-
just add:
82-
83-
```rust
84-
use rayon::prelude::*;
85-
```
86-
87-
Rayon currently requires `rustc 1.31.0` or greater.
88-
89-
## Contribution
90-
91-
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).
92-
93-
## Quick demo
94-
95-
To see Rayon in action, check out the `rayon-demo` directory, which
96-
includes a number of demos of code using Rayon. For example, run this
97-
command to get a visualization of an nbody simulation. To see the
98-
effect of using Rayon, press `s` to run sequentially and `p` to run in
99-
parallel.
100-
101-
```text
102-
> cd rayon-demo
103-
> cargo run --release -- nbody visualize
104-
```
105-
106-
For more information on demos, try:
107-
108-
```text
109-
> cd rayon-demo
110-
> cargo run --release -- --help
111-
```
112-
113-
## Other questions?
114-
115-
See [the Rayon FAQ][faq].
116-
117-
[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. =)
1184

1195
## License
1206

121-
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
1228
Apache License (Version 2.0). See [LICENSE-APACHE](LICENSE-APACHE) and
1239
[LICENSE-MIT](LICENSE-MIT) for details. Opening a pull requests is
12410
assumed to signal agreement with these licensing terms.

rayon-core/Cargo.toml

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
[package]
2-
name = "rayon-core"
3-
version = "1.7.0" # reminder to update html_root_url attribute
2+
name = "rustc-rayon-core"
3+
version = "0.3.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/"
8+
repository = "https://github.com/rust-lang/rustc-rayon"
9+
documentation = "https://docs.rs/rustc-rayon-core/"
1010
edition = "2018"
1111
links = "rayon-core"
1212
build = "build.rs"

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
@@ -6,7 +6,7 @@ authors = ["Niko Matsakis <[email protected]>"]
66
publish = false
77

88
[dependencies]
9-
rayon = { path = "../" }
9+
rustc-rayon = { path = "../" }
1010
cgmath = "0.17"
1111
docopt = "1"
1212
fixedbitset = "0.2.0"

0 commit comments

Comments
 (0)