Helper functions for creating auxiliary names used in (old) compiler passes.
Equations
- Lean.Compiler.mkEagerLambdaLiftingName n idx = Lean.Name.mkStr n ("_elambda_" ++ toString idx)
Instances For
Instances For
Return the name of new definitions in the a given declaration.
Here we consider only declarations we generate code for.
We use this definition to implement add_and_compile
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
We generate auxiliary unsafe definitions for regular recursive definitions. The auxiliary unsafe definition has a clear runtime cost execution model. This function returns the auxiliary unsafe definition name for the given name.
Equations
- Lean.Compiler.mkUnsafeRecName declName = Lean.Name.mkStr declName "_unsafe_rec"
Instances For
Return some _
if the given name was created using mkUnsafeRecName
Equations
- Lean.Compiler.isUnsafeRecName? x = match x with | Lean.Name.str n "_unsafe_rec" => some n | x => none
Instances For
Compile the given block of mutual declarations.
Assumes the declarations have already been added to the environment using addDecl
.
Compile the given declaration, it assumes the declaration has already been added to the environment using addDecl
.
Equations
- Lean.Environment.compileDecl env opt decl = Lean.Environment.compileDecls env opt (Lean.Compiler.getDeclNamesForCodeGen decl)
Instances For
Equations
- Lean.Environment.addAndCompile env opt decl = do let env ← Lean.Environment.addDecl env decl Lean.Environment.compileDecl env opt decl