CompilationLoader.Configuration Class

Definition

may be specified via configuration (or project) file in the future

public class CompilationLoader.Configuration
type CompilationLoader.Configuration = class
Public Class CompilationLoader.Configuration
Inheritance
CompilationLoader.Configuration

Constructors

CompilationLoader.Configuration()

Properties

AssemblyConstants

Handle to pass arbitrary constants with which to populate the corresponding dictionary for loaded rewrite steps. These values will take precedence over any already existing values that the default constructor sets. However, the compiler may overwrite the assembly constants defined for the Q# compilation unit in the dictionary of the loaded step. The given dictionary in this configuration is left unchanged in any case.

AttemptFullPreEvaluation

If set to true, the compiler attempts to pre-evaluate the built compilation as much as possible. This is an experimental feature that will change over time.

BuildOutputFolder

Directory where the compiled binaries will be generated. No binaries will be written to disk unless this path is specified and valid.

DllOutputPath

Output path for the dll containing the compiled binaries. No dll will be generated unless this path is specified and valid.

DocumentationOutputFolder

If the output folder is not null, documentation is generated in the specified folder based on doc comments in the source code.

EnableAdditionalChecks

If set to true, the post-condition for loaded rewrite steps is checked if the corresponding verification is implemented. Otherwise post-condition verifications are skipped.

ExposeReferencesViaTestNames

If set to true, then public types and callables declared in referenced assemblies are exposed via their test name defined by the corresponding attribute.

ForceRewriteStepExecution

If set to true, forces all rewrite steps to execute, regardless of whether their precondition was satisfied. If the precondition of a step is not satisfied, the transformation is executed but the output will be ignored, and an error is generated, indicating a compilation failure.

GenerateFunctorSupport

If set to true, the syntax tree rewrite step that replaces all generation directives for all functor specializations is executed during compilation.

IsExecutable

Specifies whether the project to build is a Q# command line application. If set to true, a warning will be raised if no entry point is defined. If set to false, then defined entry points will be ignored and a warning will be raised.

LiftLambdaExpressions

Indicates whether the compiler will remove lambda expressions and replace them with calls to generated callables.

LoadReferencesBasedOnGeneratedCsharp

If set to true, then referenced dlls will be loaded purely based on attributes in the contained C# code. Any Q# resources will be ignored.

PrepareQirGeneration

Indicates whether the necessary compiler passes are executed for the compilation to be compatible with QIR generation.

ProjectName

The name of the project. Used as assembly name in the generated dll. The name of the project with a suitable extension will also be used as the name of the generated binary file.

RewriteStepAssemblies

Contains a sequence of tuples with the path to a dotnet dll containing one or more rewrite steps (i.e. classes implementing IRewriteStep) and the corresponding output folder. The contained rewrite steps will be executed in the defined order and priority at the end of the compilation.

RewriteStepInstances

Contains a sequence of tuples with the objects (instances of IRewriteStep) and the corresponding output folder. The contained rewrite steps will be executed in the defined order and priority at the end of the compilation.

RewriteStepTypes

Contains a sequence of tuples with the types (classes implementing IRewriteStep) and the corresponding output folder. The contained rewrite steps will be executed in the defined order and priority at the end of the compilation.

SkipConjugationInlining

Unless this is set to true, the syntax tree rewrite step that inlines conjugations is executed during compilation.

SkipMonomorphization

Unless this is set to true, all usages of type-parameterized callables are replaced with the concrete callable instantiation if an entry point is specified for the compilation. Removes all type-parameterizations in the syntax tree.

SkipSyntaxTreeTrimming

Unless this is set to true, all unused callables are removed from the syntax tree.

SkipTargetSpecificCompilation

If this is set to true, the initial validation will take the specified runtime capability into account, but any further compilation steps will execute as if no target specific properties were specified.

TargetCapability

Specifies the capabilities of the target. The specified capabilities determine what QIR profile to compile to.

TargetPackageAssemblies

Paths to the assemblies that contains a syntax tree with target specific implementations for certain functions and operations. The functions and operations defined in these assemblies replace the ones declared within the compilation unit. If no paths are specified here or the sequence is null then this compilation step is omitted.

Applies to