Skip to main content

Options

Struct Options 

Source
pub struct Options {
Show 42 fields pub manifest_path: Option<PathBuf>, pub name: Option<String>, pub entrypoint: Option<String>, pub profile: String, pub workspace: bool, pub packages: Vec<String>, pub target: Option<String>, pub target_type: Option<TargetType>, pub optimize: OptLevel, pub debug: DebugInfo, pub output_types: OutputTypes, pub search_paths: Vec<PathBuf>, pub link_libraries: Vec<LinkLibrary>, pub link_modules: Vec<(PathBuf, String)>, pub sysroot: Option<PathBuf>, pub midenup_home: Option<PathBuf>, pub toolchain: Option<String>, pub color: ColorChoice, pub diagnostics: DiagnosticsConfig, pub current_dir: PathBuf, pub target_dir: PathBuf, pub output_dir: Option<PathBuf>, pub output_file: Option<OutputFile>, pub remap_path_prefixes: Vec<RemapPathPrefix>, pub print_hir_source_locations: bool, pub stop_after: Option<String>, pub parse_only: bool, pub analyze_only: bool, pub link_only: bool, pub no_link: bool, pub lint: bool, pub print_cfg_after_all: bool, pub print_cfg_after_pass: Vec<String>, pub print_ir_before_stage: Vec<String>, pub print_ir_after_all: bool, pub print_ir_after_pass: Vec<String>, pub print_ir_after_modified: bool, pub print_ir_filters: Vec<IrFilter>, pub save_temps: bool, pub rustflags: Option<String>, pub cargo_frontmatter: bool, pub flags: CompileFlags,
}
Expand description

This struct contains all of the configuration options for the compiler

Fields§

§manifest_path: Option<PathBuf>

The path to the current project manifest, if present

§name: Option<String>

The name of the program being compiled

§entrypoint: Option<String>

The name of the function to call as the entrypoint

§profile: String

The name of the build profile to use

§workspace: bool

Build all packages in the current workspace (used by cargo miden)

§packages: Vec<String>

Build the specified packages in the current workspace (used by cargo miden)

§target: Option<String>

The name of the current project target being compiled

§target_type: Option<TargetType>

The type of target that was requested

§optimize: OptLevel

The optimization level for the current program

§debug: DebugInfo

The level of debugging info for the current program

§output_types: OutputTypes

The type of outputs to emit

§search_paths: Vec<PathBuf>

The paths in which to search for Miden Assembly libraries to link against

§link_libraries: Vec<LinkLibrary>

The set of Miden libraries to link against

§link_modules: Vec<(PathBuf, String)>

A set of Miden Assembly modules to link against

§sysroot: Option<PathBuf>

The path to the current toolchain directory, which contains libraries and other tools that the compiler may use.

This is expected to be set by midenup when the compiler is invoked via miden CLI

§midenup_home: Option<PathBuf>

The path to midenup’s home directory

This is expected to be set by midenup when the compiler is invoked via miden CLI

§toolchain: Option<String>

The name of the current midenup toolchain

This is expected to be set by midenup when the compiler is invoked via miden CLI

§color: ColorChoice

Whether, and how, to color terminal output

§diagnostics: DiagnosticsConfig

The current diagnostics configuration

§current_dir: PathBuf

The current working directory of the compiler

§target_dir: PathBuf

The target directory of the compiler

§output_dir: Option<PathBuf>

The artifact output directory of the compiler

§output_file: Option<OutputFile>

The output file requested by the user, if requested

§remap_path_prefixes: Vec<RemapPathPrefix>

Path prefixes to remap for any file paths encoded in debug info

§print_hir_source_locations: bool

Print source location information in HIR output

§stop_after: Option<String>

Stop compilation after the named checkpoint, as --stop-after asked.

An alias declared by the route being compiled — parse, analyze, transform, lower, assemble — or a fully-qualified checkpoint id such as hir.initial. Which names are valid depends on the frontend the input selects, so the value is carried uninterpreted and resolved against that route once it is known; an unrecognized one is reported there, listing the names that route does accept.

This is the general form of the -C stop flags below, and naming both is a usage error rather than a precedence rule.

§parse_only: bool

Only parse inputs

§analyze_only: bool

Only perform semantic analysis on the input

§link_only: bool

Run the linker on the inputs, but do not generate Miden Assembly

§no_link: bool

Generate Miden Assembly from the inputs without the linker

§lint: bool

Run the experimental Miden Assembly linter prior to codegen

This linter uses the HIR dataflow analysis framework to check for issues such as unconstrained advice usage.

§print_cfg_after_all: bool

Print CFG to stdout after each pass

§print_cfg_after_pass: Vec<String>

Print CFG to stdout each time the named passes are applied

§print_ir_before_stage: Vec<String>

Print IR to stdout at the start of each stage

§print_ir_after_all: bool

Print IR to stdout after each pass

§print_ir_after_pass: Vec<String>

Print IR to stdout each time the named passes are applied

§print_ir_after_modified: bool

Only print the IR if the pass modified the IR structure.

§print_ir_filters: Vec<IrFilter>

Apply filters to what IR is printed, when printing is enabled

§save_temps: bool

Save intermediate artifacts in memory during compilation

§rustflags: Option<String>

Custom RUSTFLAGS to set when building Rust

§cargo_frontmatter: bool

Look for cargo -Zscript-style frontmatter when compiling standalone Rust sources

§flags: CompileFlags

We store any leftover argument matches in the session options for use by any downstream crates that register custom flags

Implementations§

Source§

impl Options

Source

pub fn new( name: Option<String>, target: Option<TargetType>, current_dir: PathBuf, target_dir: PathBuf, output_dir: Option<PathBuf>, sysroot: Option<PathBuf>, ) -> Self

Source

pub fn with_color(self: Box<Self>, color: ColorChoice) -> Box<Self>

Source

pub fn with_verbosity(self: Box<Self>, verbosity: Verbosity) -> Box<Self>

Source

pub fn with_debug_info(self: Box<Self>, debug: DebugInfo) -> Box<Self>

Source

pub fn with_optimization(self: Box<Self>, level: OptLevel) -> Box<Self>

Source

pub fn with_warnings(self: Box<Self>, warnings: Warnings) -> Box<Self>

Source

pub fn with_output_types( self: Box<Self>, output_types: OutputTypes, output_file: Option<OutputFile>, ) -> Box<Self>

Source

pub fn into_session( self: Box<Self>, input: InputFile, emitter: Option<Arc<dyn Emitter>>, source_manager: Option<Arc<dyn SourceManager + Send + Sync>>, ) -> Result<Session, Report>

Use this configuration to obtain a crate::Session used for compilation

Source

pub fn default_emitter(&self) -> Arc<dyn Emitter>

Get a new Emitter based on the current options.

Source

pub fn emit_source_locations(&self) -> bool

Returns true if source location information should be emitted by the compiler

Source

pub fn emit_debug_decorators(&self) -> bool

Returns true if rich debugging information should be emitted by the compiler. This enables AssemblyOp decorators which carry source location info for runtime errors.

Source

pub fn emit_debug_assertions(&self) -> bool

Returns true if debug assertions are enabled

Source

pub fn target_requires_protocol(&self) -> bool

Returns true if the requested target type is a protocol target

Source

pub fn quiet(&self) -> bool

Returns true if the requested verbosity level is silent

Trait Implementations§

Source§

impl Clone for Options

Source§

fn clone(&self) -> Options

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Options

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Options

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more