-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCargo.toml
134 lines (126 loc) · 7.28 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
[package]
name = "atomic-maybe-uninit"
version = "0.3.7" #publish:version
edition = "2021"
rust-version = "1.59" # For asm!
license = "Apache-2.0 OR MIT"
repository = "https://github.com/taiki-e/atomic-maybe-uninit"
keywords = ["atomic"]
categories = ["concurrency", "embedded", "hardware-support", "no-std", "no-std::no-alloc"]
exclude = ["/.*", "/tools", "/target-specs"]
description = """
Atomic operations on potentially uninitialized integers.
"""
[package.metadata.docs.rs]
targets = [
"aarch64-unknown-linux-gnu",
"armv7-unknown-linux-gnueabihf",
"i686-unknown-linux-gnu",
"riscv64gc-unknown-linux-gnu",
"x86_64-unknown-linux-gnu",
]
[package.metadata.cargo_check_external_types]
# The following are external types that are allowed to be exposed in our public API.
allowed_external_types = [
]
[lib]
doc-scrape-examples = false
[dev-dependencies]
build-context = "0.1"
crossbeam-utils = { version = "0.8", git = "https://github.com/crossbeam-rs/crossbeam.git", rev = "17fb841" } # The latest released crossbeam-utils requires Rust 1.60
fastrand = "2"
paste = "1"
quickcheck = { version = "1", default-features = false, git = "https://github.com/taiki-e/quickcheck.git", rev = "83b1d59" } # https://github.com/BurntSushi/quickcheck/pull/304 + https://github.com/BurntSushi/quickcheck/pull/282 + https://github.com/BurntSushi/quickcheck/pull/296 + f16/f128 support + lower MSRV
[target.'cfg(unix)'.dev-dependencies]
libc = "=0.2.163" # newer libc requires Rust 1.63
[lints]
workspace = true
[workspace]
resolver = "2"
# This table is shared by projects under github.com/taiki-e.
# Expect for unexpected_cfgs.check-cfg, it is not intended for manual editing.
[workspace.lints.rust]
deprecated_safe = "warn"
improper_ctypes = "warn"
improper_ctypes_definitions = "warn"
non_ascii_idents = "warn"
rust_2018_idioms = "warn"
single_use_lifetimes = "warn"
unexpected_cfgs = { level = "warn", check-cfg = [
'cfg(target_arch,values("xtensa"))', # 1.81+ https://github.com/rust-lang/rust/pull/125141
'cfg(target_arch,values("amdgpu"))', # 1.86+ https://github.com/rust-lang/rust/pull/134740
'cfg(target_feature,values("lse2","lse128","rcpc3"))', # 1.82+ https://github.com/rust-lang/rust/pull/128192
'cfg(target_feature,values("partword-atomics","quadword-atomics"))', # 1.83+ https://github.com/rust-lang/rust/pull/130873
'cfg(target_feature,values("zaamo","zabha","zalrsc"))', # 1.83+ https://github.com/rust-lang/rust/pull/130877
'cfg(target_feature,values("leoncasa","v9"))', # 1.84+ https://github.com/rust-lang/rust/pull/132552
'cfg(target_feature,values("x87"))', # 1.85+ https://github.com/rust-lang/rust/pull/133099
'cfg(target_feature,values("isa-68020"))', # 1.85+ https://github.com/rust-lang/rust/pull/134329
'cfg(target_feature,values("zacas"))', # 1.87+ https://github.com/rust-lang/rust/pull/137417
'cfg(target_feature,values("msync"))', # 1.87+ https://github.com/rust-lang/rust/pull/137860
'cfg(target_pointer_width,values("128"))',
# Known custom cfgs, excluding those that may be set by build script.
# Not public API.
'cfg(atomic_maybe_uninit_test_prefer_zalrsc_over_zaamo,atomic_maybe_uninit_test_prefer_zacas_over_zalrsc_for_sub_word,qemu,valgrind)',
# Public APIs, considered unstable unless documented in readme.
# arm: Use cp15_barrier instead of __kuser_memory_barrier on Armv6 Linux/Android.
# Armv6 binaries compiled with this cfg may cause problems when run on Armv7+ chips:
# https://github.com/rust-lang/rust/issues/60605
'cfg(atomic_maybe_uninit_use_cp15_barrier)',
# These cfgs are auto-detected for known builtin targets and -C target-cpu
# by the build script, but need to be set manually, for example if the CPU
# is specified in a custom target, since rustc does not have target
# features to indicate them, and target name beginning with i386- may
# actually be i686 (e.g., i386-apple-ios)
# https://github.com/rust-lang/rust/blob/1.84.0/compiler/rustc_target/src/spec/base/apple/mod.rs#L65
# x86: Assume CPU does not have CMPXCHG8B instruction.
# This is a cfg for compatibility with 80486/80386, but note that
# LLVM does not support those CPUs well: https://reviews.llvm.org/D18802
'cfg(atomic_maybe_uninit_no_cmpxchg8b)',
# x86: Assume CPU does not have CMPXCHG instruction.
# This is a cfg for compatibility with 80386, but note that
# LLVM does not support those CPUs well: https://reviews.llvm.org/D18802
# When setting this cfg you also need to set atomic_maybe_uninit_no_cmpxchg8b.
'cfg(atomic_maybe_uninit_no_cmpxchg)',
# mips: Assume CPU does not have SYNC instruction.
# This is a cfg for compatibility with MIPS I.
'cfg(atomic_maybe_uninit_no_sync)',
] }
unnameable_types = "warn"
unreachable_pub = "warn"
# unsafe_op_in_unsafe_fn = "warn" # Set at crate-level instead since https://github.com/rust-lang/rust/pull/100081 merged in Rust 1.65 is not available on MSRV
[workspace.lints.clippy]
all = "warn" # Downgrade deny-by-default lints
pedantic = "warn"
as_ptr_cast_mut = "warn"
as_underscore = "warn"
default_union_representation = "warn"
inline_asm_x86_att_syntax = "warn"
trailing_empty_array = "warn"
transmute_undefined_repr = "warn"
undocumented_unsafe_blocks = "warn"
unused_trait_names = "warn"
# Suppress buggy or noisy clippy lints
bool_assert_comparison = { level = "allow", priority = 1 }
borrow_as_ptr = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/8286
cast_lossless = { level = "allow", priority = 1 } # https://godbolt.org/z/Pv6vbGG6E
declare_interior_mutable_const = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/7665
doc_markdown = { level = "allow", priority = 1 }
float_cmp = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/7725
incompatible_msrv = { level = "allow", priority = 1 } # buggy: doesn't consider cfg, https://github.com/rust-lang/rust-clippy/issues/12280, https://github.com/rust-lang/rust-clippy/issues/12257#issuecomment-2093667187
lint_groups_priority = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/12920
manual_assert = { level = "allow", priority = 1 }
manual_range_contains = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/6455#issuecomment-1225966395
missing_errors_doc = { level = "allow", priority = 1 }
module_name_repetitions = { level = "allow", priority = 1 } # buggy: https://github.com/rust-lang/rust-clippy/issues?q=is%3Aissue+is%3Aopen+module_name_repetitions
naive_bytecount = { level = "allow", priority = 1 }
nonminimal_bool = { level = "allow", priority = 1 } # buggy: https://github.com/rust-lang/rust-clippy/issues?q=is%3Aissue+is%3Aopen+nonminimal_bool
range_plus_one = { level = "allow", priority = 1 } # buggy: https://github.com/rust-lang/rust-clippy/issues?q=is%3Aissue+is%3Aopen+range_plus_one
similar_names = { level = "allow", priority = 1 }
single_match = { level = "allow", priority = 1 }
single_match_else = { level = "allow", priority = 1 }
struct_excessive_bools = { level = "allow", priority = 1 }
struct_field_names = { level = "allow", priority = 1 }
too_many_arguments = { level = "allow", priority = 1 }
too_many_lines = { level = "allow", priority = 1 }
type_complexity = { level = "allow", priority = 1 }
unreadable_literal = { level = "allow", priority = 1 }