Skip to content

Commit 198e2e9

Browse files
authored
Merge pull request #664 from alexcrichton/version-check
Move `rustc_version` dep to `autocfg`
2 parents 189f53e + e59539b commit 198e2e9

File tree

16 files changed

+53
-59
lines changed

16 files changed

+53
-59
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ wasm-bindgen = { version = "0.2.12", optional = true }
7070
average = "0.9.2"
7171

7272
[build-dependencies]
73-
rustc_version = "0.2"
73+
autocfg = "0.1"
7474

7575
[package.metadata.docs.rs]
7676
all-features = true

build.rs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
extern crate rustc_version;
2-
use rustc_version::{version, Version};
1+
extern crate autocfg;
32

43
fn main() {
5-
if version().unwrap() >= Version::parse("1.25.0").unwrap() {
6-
println!("cargo:rustc-cfg=rust_1_25");
7-
}
8-
if version().unwrap() >= Version::parse("1.26.0").unwrap() {
9-
println!("cargo:rustc-cfg=rust_1_26");
10-
}
11-
if version().unwrap() >= Version::parse("1.27.0").unwrap() {
12-
println!("cargo:rustc-cfg=rust_1_27");
13-
}
4+
println!("cargo:rerun-if-changed=build.rs");
5+
6+
let ac = autocfg::new();
7+
ac.emit_rustc_version(1, 25);
8+
ac.emit_rustc_version(1, 26);
9+
ac.emit_rustc_version(1, 27);
1410
}

rand_chacha/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ appveyor = { repository = "rust-random/rand" }
2222
rand_core = { path = "../rand_core", version = ">=0.2, <0.4", default-features=false }
2323

2424
[build-dependencies]
25-
rustc_version = "0.2"
25+
autocfg = "0.1"

rand_chacha/build.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
extern crate rustc_version;
2-
use rustc_version::{version, Version};
1+
extern crate autocfg;
32

43
fn main() {
5-
if version().unwrap() >= Version::parse("1.26.0").unwrap() {
6-
println!("cargo:rustc-cfg=rust_1_26");
7-
}
4+
println!("cargo:rerun-if-changed=build.rs");
5+
let ac = autocfg::new();
6+
ac.emit_rustc_version(1, 26);
87
}

rand_chacha/src/chacha.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ impl ChaChaRng {
114114
/// byte-offset.
115115
///
116116
/// Note: this function is currently only available with Rust 1.26 or later.
117-
#[cfg(rust_1_26)]
117+
#[cfg(rustc_1_26)]
118118
pub fn get_word_pos(&self) -> u128 {
119119
let mut c = (self.0.core.state[13] as u64) << 32
120120
| (self.0.core.state[12] as u64);
@@ -135,7 +135,7 @@ impl ChaChaRng {
135135
/// 60 bits.
136136
///
137137
/// Note: this function is currently only available with Rust 1.26 or later.
138-
#[cfg(rust_1_26)]
138+
#[cfg(rustc_1_26)]
139139
pub fn set_word_pos(&mut self, word_offset: u128) {
140140
let index = (word_offset as usize) & 0xF;
141141
let counter = (word_offset >> 4) as u64;
@@ -330,7 +330,7 @@ mod test {
330330
}
331331

332332
#[test]
333-
#[cfg(rust_1_26)]
333+
#[cfg(rustc_1_26)]
334334
fn test_chacha_true_values_c() {
335335
// Test vector 4 from
336336
// https://tools.ietf.org/html/draft-nir-cfrg-chacha20-poly1305-04

rand_pcg/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ serde_derive = { version = "^1.0.38", optional = true }
3434
bincode = { version = "1", features = ["i128"] }
3535

3636
[build-dependencies]
37-
rustc_version = "0.2"
37+
autocfg = "0.1"

rand_pcg/build.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
extern crate rustc_version;
2-
use rustc_version::{version, Version};
1+
extern crate autocfg;
32

43
fn main() {
5-
if version().unwrap() >= Version::parse("1.26.0").unwrap() {
6-
println!("cargo:rustc-cfg=rust_1_26");
7-
}
4+
println!("cargo:rerun-if-changed=build.rs");
5+
let ac = autocfg::new();
6+
ac.emit_rustc_version(1, 26);
87
}

rand_pcg/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ extern crate rand_core;
4242
#[cfg(feature="serde1")] #[macro_use] extern crate serde_derive;
4343

4444
mod pcg64;
45-
#[cfg(rust_1_26)] mod pcg128;
45+
#[cfg(rustc_1_26)] mod pcg128;
4646

4747
pub use self::pcg64::{Pcg32, Lcg64Xsh32};
48-
#[cfg(rust_1_26)] pub use self::pcg128::{Pcg64Mcg, Mcg128Xsl64};
48+
#[cfg(rustc_1_26)] pub use self::pcg128::{Pcg64Mcg, Mcg128Xsl64};

rand_pcg/tests/mcg128xsl64.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![cfg(rust_1_26)]
1+
#![cfg(rustc_1_26)]
22
extern crate rand_pcg;
33
extern crate rand_core;
44
#[cfg(all(feature="serde1", test))] extern crate bincode;

src/deprecated.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,12 @@ impl SeedableRng for ChaChaRng {
151151
}
152152

153153
impl ChaChaRng {
154-
#[cfg(rust_1_26)]
154+
#[cfg(rustc_1_26)]
155155
pub fn get_word_pos(&self) -> u128 {
156156
self.0.get_word_pos()
157157
}
158158

159-
#[cfg(rust_1_26)]
159+
#[cfg(rustc_1_26)]
160160
pub fn set_word_pos(&mut self, word_offset: u128) {
161161
self.0.set_word_pos(word_offset)
162162
}

src/distributions/integer.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ impl Distribution<u64> for Standard {
4545
}
4646
}
4747

48-
#[cfg(rust_1_26)]
48+
#[cfg(rustc_1_26)]
4949
impl Distribution<u128> for Standard {
5050
#[inline]
5151
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> u128 {
@@ -85,7 +85,7 @@ impl_int_from_uint! { i8, u8 }
8585
impl_int_from_uint! { i16, u16 }
8686
impl_int_from_uint! { i32, u32 }
8787
impl_int_from_uint! { i64, u64 }
88-
#[cfg(rust_1_26)] impl_int_from_uint! { i128, u128 }
88+
#[cfg(rustc_1_26)] impl_int_from_uint! { i128, u128 }
8989
impl_int_from_uint! { isize, usize }
9090

9191
#[cfg(feature="simd_support")]
@@ -147,15 +147,15 @@ mod tests {
147147
rng.sample::<i16, _>(Standard);
148148
rng.sample::<i32, _>(Standard);
149149
rng.sample::<i64, _>(Standard);
150-
#[cfg(rust_1_26)]
150+
#[cfg(rustc_1_26)]
151151
rng.sample::<i128, _>(Standard);
152152

153153
rng.sample::<usize, _>(Standard);
154154
rng.sample::<u8, _>(Standard);
155155
rng.sample::<u16, _>(Standard);
156156
rng.sample::<u32, _>(Standard);
157157
rng.sample::<u64, _>(Standard);
158-
#[cfg(rust_1_26)]
158+
#[cfg(rustc_1_26)]
159159
rng.sample::<u128, _>(Standard);
160160
}
161161
}

src/distributions/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@
182182
//! [`Weibull`]: struct.Weibull.html
183183
//! [`WeightedIndex`]: struct.WeightedIndex.html
184184
185-
#[cfg(any(rust_1_26, features="nightly"))]
185+
#[cfg(any(rustc_1_26, features="nightly"))]
186186
use core::iter;
187187
use Rng;
188188

@@ -316,7 +316,7 @@ impl<'a, D, R, T> Iterator for DistIter<'a, D, R, T>
316316
}
317317
}
318318

319-
#[cfg(rust_1_26)]
319+
#[cfg(rustc_1_26)]
320320
impl<'a, D, R, T> iter::FusedIterator for DistIter<'a, D, R, T>
321321
where D: Distribution<T>, R: Rng + 'a {}
322322

@@ -328,7 +328,7 @@ impl<'a, D, R, T> iter::TrustedLen for DistIter<'a, D, R, T>
328328
/// A generic random value distribution, implemented for many primitive types.
329329
/// Usually generates values with a numerically uniform distribution, and with a
330330
/// range appropriate to the type.
331-
///
331+
///
332332
/// ## Built-in Implementations
333333
///
334334
/// Assuming the provided `Rng` is well-behaved, these implementations

src/distributions/uniform.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
112112
#[cfg(feature = "std")]
113113
use std::time::Duration;
114-
#[cfg(all(not(feature = "std"), rust_1_25))]
114+
#[cfg(all(not(feature = "std"), rustc_1_25))]
115115
use core::time::Duration;
116116

117117
use Rng;
@@ -277,7 +277,7 @@ impl<X: SampleUniform> From<::core::ops::Range<X>> for Uniform<X> {
277277
}
278278
}
279279

280-
#[cfg(rust_1_27)]
280+
#[cfg(rustc_1_27)]
281281
impl<X: SampleUniform> From<::core::ops::RangeInclusive<X>> for Uniform<X> {
282282
fn from(r: ::core::ops::RangeInclusive<X>) -> Uniform<X> {
283283
Uniform::new_inclusive(r.start(), r.end())
@@ -472,15 +472,15 @@ uniform_int_impl! { i8, i8, u8, i32, u32 }
472472
uniform_int_impl! { i16, i16, u16, i32, u32 }
473473
uniform_int_impl! { i32, i32, u32, i32, u32 }
474474
uniform_int_impl! { i64, i64, u64, i64, u64 }
475-
#[cfg(rust_1_26)]
475+
#[cfg(rustc_1_26)]
476476
uniform_int_impl! { i128, i128, u128, u128, u128 }
477477
uniform_int_impl! { isize, isize, usize, isize, usize }
478478
uniform_int_impl! { u8, i8, u8, i32, u32 }
479479
uniform_int_impl! { u16, i16, u16, i32, u32 }
480480
uniform_int_impl! { u32, i32, u32, i32, u32 }
481481
uniform_int_impl! { u64, i64, u64, i64, u64 }
482482
uniform_int_impl! { usize, isize, usize, isize, usize }
483-
#[cfg(rust_1_26)]
483+
#[cfg(rustc_1_26)]
484484
uniform_int_impl! { u128, u128, u128, i128, u128 }
485485

486486
#[cfg(all(feature = "simd_support", feature = "nightly"))]
@@ -835,14 +835,14 @@ uniform_float_impl! { f64x8, u64x8, f64, u64, 64 - 52 }
835835
///
836836
/// [`UniformSampler`]: trait.UniformSampler.html
837837
/// [`Uniform`]: struct.Uniform.html
838-
#[cfg(any(feature = "std", rust_1_25))]
838+
#[cfg(any(feature = "std", rustc_1_25))]
839839
#[derive(Clone, Copy, Debug)]
840840
pub struct UniformDuration {
841841
mode: UniformDurationMode,
842842
offset: u32,
843843
}
844844

845-
#[cfg(any(feature = "std", rust_1_25))]
845+
#[cfg(any(feature = "std", rustc_1_25))]
846846
#[derive(Debug, Copy, Clone)]
847847
enum UniformDurationMode {
848848
Small {
@@ -859,12 +859,12 @@ enum UniformDurationMode {
859859
}
860860
}
861861

862-
#[cfg(any(feature = "std", rust_1_25))]
862+
#[cfg(any(feature = "std", rustc_1_25))]
863863
impl SampleUniform for Duration {
864864
type Sampler = UniformDuration;
865865
}
866866

867-
#[cfg(any(feature = "std", rust_1_25))]
867+
#[cfg(any(feature = "std", rustc_1_25))]
868868
impl UniformSampler for UniformDuration {
869869
type X = Duration;
870870

@@ -989,7 +989,7 @@ mod tests {
989989
fn test_integers() {
990990
use core::{i8, i16, i32, i64, isize};
991991
use core::{u8, u16, u32, u64, usize};
992-
#[cfg(rust_1_26)]
992+
#[cfg(rustc_1_26)]
993993
use core::{i128, u128};
994994

995995
let mut rng = ::test::rng(251);
@@ -1053,7 +1053,7 @@ mod tests {
10531053
}
10541054
t!(i8, i16, i32, i64, isize,
10551055
u8, u16, u32, u64, usize);
1056-
#[cfg(rust_1_26)]
1056+
#[cfg(rustc_1_26)]
10571057
t!(i128, u128);
10581058

10591059
#[cfg(all(feature = "simd_support", feature = "nightly"))]
@@ -1208,11 +1208,11 @@ mod tests {
12081208

12091209

12101210
#[test]
1211-
#[cfg(any(feature = "std", rust_1_25))]
1211+
#[cfg(any(feature = "std", rustc_1_25))]
12121212
fn test_durations() {
12131213
#[cfg(feature = "std")]
12141214
use std::time::Duration;
1215-
#[cfg(all(not(feature = "std"), rust_1_25))]
1215+
#[cfg(all(not(feature = "std"), rustc_1_25))]
12161216
use core::time::Duration;
12171217

12181218
let mut rng = ::test::rng(253);
@@ -1283,7 +1283,7 @@ mod tests {
12831283
assert_eq!(r.inner.scale, 5.0);
12841284
}
12851285

1286-
#[cfg(rust_1_27)]
1286+
#[cfg(rustc_1_27)]
12871287
#[test]
12881288
fn test_uniform_from_std_range_inclusive() {
12891289
let r = Uniform::from(2u32..=6);

src/distributions/utils.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ macro_rules! wmul_impl {
6161
wmul_impl! { u8, u16, 8 }
6262
wmul_impl! { u16, u32, 16 }
6363
wmul_impl! { u32, u64, 32 }
64-
#[cfg(rust_1_26)]
64+
#[cfg(rustc_1_26)]
6565
wmul_impl! { u64, u128, 64 }
6666

6767
// This code is a translation of the __mulddi3 function in LLVM's
@@ -125,9 +125,9 @@ macro_rules! wmul_impl_large {
125125
)+
126126
};
127127
}
128-
#[cfg(not(rust_1_26))]
128+
#[cfg(not(rustc_1_26))]
129129
wmul_impl_large! { u64, 32 }
130-
#[cfg(rust_1_26)]
130+
#[cfg(rustc_1_26)]
131131
wmul_impl_large! { u128, 64 }
132132

133133
macro_rules! wmul_impl_usize {

src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -549,13 +549,13 @@ macro_rules! impl_as_byte_slice {
549549
impl_as_byte_slice!(u16);
550550
impl_as_byte_slice!(u32);
551551
impl_as_byte_slice!(u64);
552-
#[cfg(rust_1_26)] impl_as_byte_slice!(u128);
552+
#[cfg(rustc_1_26)] impl_as_byte_slice!(u128);
553553
impl_as_byte_slice!(usize);
554554
impl_as_byte_slice!(i8);
555555
impl_as_byte_slice!(i16);
556556
impl_as_byte_slice!(i32);
557557
impl_as_byte_slice!(i64);
558-
#[cfg(rust_1_26)] impl_as_byte_slice!(i128);
558+
#[cfg(rustc_1_26)] impl_as_byte_slice!(i128);
559559
impl_as_byte_slice!(isize);
560560

561561
macro_rules! impl_as_byte_slice_arrays {

src/rngs/small.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
1111
use {RngCore, SeedableRng, Error};
1212

13-
#[cfg(all(rust_1_26, target_pointer_width = "64"))]
13+
#[cfg(all(rustc_1_26, target_pointer_width = "64"))]
1414
type Rng = ::rand_pcg::Pcg64Mcg;
15-
#[cfg(not(all(rust_1_26, target_pointer_width = "64")))]
15+
#[cfg(not(all(rustc_1_26, target_pointer_width = "64")))]
1616
type Rng = ::rand_pcg::Pcg32;
1717

1818
/// An RNG recommended when small state, cheap initialization and good

0 commit comments

Comments
 (0)