X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flib.rs;h=6a5e7af23726903d8e50da6a69258dba7d97beb5;hb=e591b83185ba60cec09225d5ed6b41325a7a331f;hp=c04fbfeab98ca90bcd5e813fdd7f5b3583a9257b;hpb=7743a73be7b51d046f0d745ab247be74d965ee0b;p=rust.git diff --git a/src/lib.rs b/src/lib.rs index c04fbfeab98..6a5e7af2372 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,8 +1,8 @@ #![feature(rustc_private)] -#![feature(option_expect_none, option_unwrap_none)] #![feature(map_first_last)] +#![feature(map_try_insert)] #![feature(never_type)] -#![feature(or_patterns)] +#![feature(try_blocks)] #![warn(rust_2018_idioms)] #![allow(clippy::cast_lossless)] @@ -12,10 +12,12 @@ #[macro_use] extern crate rustc_middle; extern crate rustc_data_structures; extern crate rustc_hir; +extern crate rustc_index; extern crate rustc_mir; extern crate rustc_span; extern crate rustc_target; +mod data_race; mod diagnostics; mod eval; mod helpers; @@ -26,28 +28,36 @@ mod range_map; mod shims; mod stacked_borrows; +mod sync; +mod thread; +mod vector_clock; + +// Establish a "crate-wide prelude": we often import `crate::*`. // Make all those symbols available in the same place as our own. pub use rustc_mir::interpret::*; // Resolve ambiguity. pub use rustc_mir::interpret::{self, AllocMap, PlaceTy}; -pub use crate::shims::dlsym::{Dlsym, EvalContextExt as DlsymEvalContextExt}; -pub use crate::shims::env::{EnvVars, EvalContextExt as EnvEvalContextExt}; -pub use crate::shims::foreign_items::EvalContextExt as ForeignItemsEvalContextExt; -pub use crate::shims::fs::{DirHandler, EvalContextExt as FileEvalContextExt, FileHandler}; -pub use crate::shims::intrinsics::EvalContextExt as IntrinsicsEvalContextExt; -pub use crate::shims::os_str::EvalContextExt as OsStrEvalContextExt; -pub use crate::shims::panic::{CatchUnwindData, EvalContextExt as PanicEvalContextExt}; -pub use crate::shims::time::EvalContextExt as TimeEvalContextExt; -pub use crate::shims::tls::{EvalContextExt as TlsEvalContextExt, TlsData}; -pub use crate::shims::EvalContextExt as ShimsEvalContextExt; +pub use crate::shims::dlsym::{Dlsym, EvalContextExt as _}; +pub use crate::shims::env::{EnvVars, EvalContextExt as _}; +pub use crate::shims::foreign_items::EvalContextExt as _; +pub use crate::shims::intrinsics::EvalContextExt as _; +pub use crate::shims::os_str::EvalContextExt as _; +pub use crate::shims::time::EvalContextExt as _; +pub use crate::shims::panic::{CatchUnwindData, EvalContextExt as _}; +pub use crate::shims::tls::{EvalContextExt as _, TlsData}; +pub use crate::shims::EvalContextExt as _; +pub use crate::data_race::{ + AtomicReadOp, AtomicWriteOp, AtomicRwOp, AtomicFenceOp, + EvalContextExt as DataRaceEvalContextExt +}; pub use crate::diagnostics::{ register_diagnostic, report_error, EvalContextExt as DiagnosticsEvalContextExt, TerminationInfo, NonHaltingDiagnostic, }; -pub use crate::eval::{create_ecx, eval_main, MiriConfig}; +pub use crate::eval::{create_ecx, eval_main, AlignmentCheck, MiriConfig}; pub use crate::helpers::EvalContextExt as HelpersEvalContextExt; pub use crate::machine::{ AllocExtra, Evaluator, FrameData, MemoryExtra, MiriEvalContext, MiriEvalContextExt, @@ -57,17 +67,24 @@ pub use crate::operator::EvalContextExt as OperatorEvalContextExt; pub use crate::range_map::RangeMap; pub use crate::stacked_borrows::{ - EvalContextExt as StackedBorEvalContextExt, Item, Permission, PtrId, Stack, Stacks, Tag, + EvalContextExt as StackedBorEvalContextExt, Item, Permission, CallId, PtrId, Stack, Stacks, Tag, +}; +pub use crate::thread::{ + EvalContextExt as ThreadsEvalContextExt, SchedulingAction, ThreadId, ThreadManager, ThreadState, +}; +pub use crate::sync::{ + EvalContextExt as SyncEvalContextExt, CondvarId, MutexId, RwLockId +}; +pub use crate::vector_clock::{ + VClock, VectorIdx, VTimestamp }; /// Insert rustc arguments at the beginning of the argument list that Miri wants to be /// set per default, for maximal validation power. -pub fn miri_default_args() -> &'static [&'static str] { - &[ - "-Zalways-encode-mir", - "-Zmir-emit-retag", - "-Zmir-opt-level=0", - "--cfg=miri", - "-Cdebug-assertions=on", - ] -} +pub const MIRI_DEFAULT_ARGS: &[&str] = &[ + "-Zalways-encode-mir", + "-Zmir-emit-retag", + "-Zmir-opt-level=0", + "--cfg=miri", + "-Cdebug-assertions=on", +];