Documentation

Lean.Compiler.LCNF.Main

We do not generate code for declName if

  • Its type is a proposition.
  • Its type is a type former.
  • It is tagged as [macro_inline].
  • It is a type class instance.

Remark: we still generate code for declarations tagged as [inline] and [specialize] since they can be partially applied.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def Lean.Compiler.LCNF.checkpoint {pu : Purity} (stepName : Name) (decls : Array (Decl pu)) (shouldCheck : Bool) :

    A checkpoint in code generation to print all declarations in between compiler passes in order to ease debugging. The trace can be viewed with set_option trace.Compiler.step true.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Equations
      Instances For

        A postponed call of compileDecls.

        • declNames : Array Name

          Declaration names of this mutual group.

        • options : Options

          Options at time of original call, to be restored for tracing etc.

        Instances For

          Saves postponed compileDecls calls.

          We use this state both in lean when doing post-hoc compilation of non-meta declarations on #eval etc. as well as in leanir to do separate compilation of all defs.

          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
              def Lean.Compiler.LCNF.main (declNames : Array Name) (baseOpts : Options) :
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For