Documentation

Lake.Build.Infos

Build Keys, Infos, & Facets #

This module defines the shorthand definitions for build keys, infos, and facets on the various target types.

Build Key Helper Constructors #

@[reducible, inline]
Instances For
    @[reducible, inline]
    abbrev Lake.ConfigTarget.key {kind : Lean.Name} (self : ConfigTarget kind) :
    Instances For
      @[reducible, inline]
      Instances For
        @[reducible, inline]
        Instances For
          @[reducible, inline]
          Instances For
            @[reducible, inline]
            Instances For

              Complex Builtin Facet Declarations #

              Additional builtin facets missing from Build.Facets. These are defined here because they need configuration definitions (e.g., Module), whereas the facets there are needed by the configuration definitions.

              @[implicit_reducible]
              @[implicit_reducible]
              @[implicit_reducible]
              @[implicit_reducible]
              @[implicit_reducible]
              @[implicit_reducible]
              @[implicit_reducible]

              An import statement with its resolved module within the workspace.

              Instances For

                A module's source file path plus its parsed header.

                Instances For
                  @[reducible]

                  The module's processed Lean source file. Combines tracing the file with parsing its header.

                  Instances For
                    @[reducible]

                    The direct local imports of the Lean module.

                    Instances For
                      @[reducible]

                      The transitive local imports of the Lean module.

                      Instances For
                        @[simp]
                        @[simp]
                        @[reducible]

                        The transitive local imports of the Lean module.

                        Instances For
                          @[simp]
                          @[reducible]

                          Shared library for --load-dynlib.

                          Instances For
                            @[reducible]

                            A Lean library's Lean modules.

                            Instances For
                              @[reducible]

                              The package's array of dependencies.

                              Instances For
                                @[reducible]

                                The package's complete array of transitive dependencies.

                                Instances For

                                  Facet Build Info Helper Constructors #

                                  Definitions to easily construct BuildInfo values for module, package, and target facets.

                                  Module Infos #

                                  @[reducible, inline]
                                  abbrev Lake.Module.facetCore (facet : Lean.Name) (self : Module) :

                                  Build info for applying the specified facet to the module. It is the user's obligation to ensure the facet in question is a module facet.

                                  Instances For
                                    @[reducible, inline]
                                    abbrev Lake.Module.facet (facet : Lean.Name) (self : Module) :

                                    Build info for a module facet.

                                    Instances For
                                      @[reducible, inline]

                                      The module's processed Lean source file. Combines tracing the file with parsing its header.

                                      Instances For
                                        @[reducible, inline]

                                        The module's Lean source file.

                                        Instances For
                                          @[reducible, inline]

                                          The parsed module header of the module's source file.

                                          Instances For
                                            @[reducible, inline]

                                            The direct local imports of the Lean module.

                                            Instances For
                                              @[reducible, inline]

                                              The transitive local imports of the Lean module.

                                              Instances For
                                                @[reducible, inline]

                                                The transitive local imports of the Lean module.

                                                Instances For
                                                  @[reducible, inline]

                                                  The computed configuration of a module for Lean.

                                                  In the process, this facet will build all of a module's dependencies, including transitive imports, plugins, and those specified by needs.

                                                  Instances For
                                                    @[reducible, inline]

                                                    This facet builds all of a module's dependencies, including transitive imports, plugins, and those specified by needs.

                                                    Instances For
                                                      @[reducible, inline]

                                                      For internal use only. Information about the imports of this module.

                                                      Instances For
                                                        @[reducible, inline]

                                                        For internal use only. Information useful to importers of this module.

                                                        Instances For
                                                          @[reducible, inline]

                                                          Artifacts directly needed for an import of this module with the module system enabled.

                                                          Instances For
                                                            @[reducible, inline]

                                                            Artifacts directly needed for an import of this module from a module without the module system enabled or import all of this module from a module with it enabled.

                                                            Instances For
                                                              @[reducible, inline]

                                                              The core build facet of a Lean file. Elaborates the Lean file via lean and produces all the Lean artifacts of the module (e.g., olean, ilean, c). Its trace just includes its dependencies.

                                                              Instances For
                                                                @[reducible, inline]

                                                                The olean file produced by lean.

                                                                Instances For
                                                                  @[reducible, inline]

                                                                  The olean.server file produced by lean (with the module system enabled).

                                                                  Instances For
                                                                    @[reducible, inline]

                                                                    The olean.private file produced by lean (with the module system enabled).

                                                                    Instances For
                                                                      @[reducible, inline]

                                                                      The ilean file produced by lean.

                                                                      Instances For
                                                                        @[reducible, inline]

                                                                        The ir file produced by lean (with the module system enabled).

                                                                        Instances For
                                                                          @[reducible, inline]
                                                                          abbrev Lake.Module.c (self : Module) :

                                                                          The C file produced by lean.

                                                                          Instances For
                                                                            @[reducible, inline]

                                                                            The C file produced by lean.

                                                                            Instances For
                                                                              @[reducible, inline]
                                                                              abbrev Lake.Module.o (self : Module) :

                                                                              The object file built from c/bc. On Windows with the C backend, no Lean symbols are exported. On every other configuration, symbols are exported.

                                                                              Instances For
                                                                                @[reducible, inline]

                                                                                The object file built from c/bc (with Lean symbols exported).

                                                                                Instances For
                                                                                  @[reducible, inline]

                                                                                  The object file built from c/bc (without Lean symbols exported).

                                                                                  Instances For
                                                                                    @[reducible, inline]

                                                                                    The object file .c.o built from c. On Windows, this is c.o.noexport, on other systems it is c.o.export).

                                                                                    Instances For
                                                                                      @[reducible, inline]

                                                                                      The object file .c.o.export built from c (with -DLEAN_EXPORTING).

                                                                                      Instances For
                                                                                        @[reducible, inline]

                                                                                        The object file .c.o.noexport built from c (without -DLEAN_EXPORTING).

                                                                                        Instances For
                                                                                          @[reducible, inline]

                                                                                          The object file .bc.o built from bc.

                                                                                          Instances For
                                                                                            @[reducible, inline]

                                                                                            Shared library for --load-dynlib.

                                                                                            Instances For

                                                                                              Package Infos #

                                                                                              @[reducible, inline]
                                                                                              abbrev Lake.Package.target (target : Lean.Name) (self : Package) :

                                                                                              Build info for a package target (e.g., a library, executable, or custom target).

                                                                                              Instances For
                                                                                                @[reducible, inline]
                                                                                                Instances For
                                                                                                  @[reducible, inline]
                                                                                                  abbrev Lake.Package.facet (facet : Lean.Name) (self : Package) :

                                                                                                  Build info for a package facet.

                                                                                                  Instances For
                                                                                                    @[reducible, inline]

                                                                                                    A package's cached build archive (e.g., from Reservoir or GitHub). Will cause the whole build to fail if the archive cannot be fetched.

                                                                                                    Instances For
                                                                                                      @[reducible, inline]

                                                                                                      A package's optional cached build archive (e.g., from Reservoir or GitHub). Will NOT cause the whole build to fail if the archive cannot be fetched.

                                                                                                      Instances For
                                                                                                        @[reducible, inline]

                                                                                                        A package's Reservoir build archive from Reservoir. Will cause the whole build to fail if the barrel cannot be fetched.

                                                                                                        Instances For
                                                                                                          @[reducible, inline]

                                                                                                          A package's optional build archive from Reservoir. Will NOT cause the whole build to fail if the barrel cannot be fetched.

                                                                                                          Instances For
                                                                                                            @[reducible, inline]

                                                                                                            A package's build archive from a GitHub release. Will cause the whole build to fail if the release cannot be fetched.

                                                                                                            Instances For
                                                                                                              @[reducible, inline]

                                                                                                              A package's optional build archive from a GitHub release. Will NOT cause the whole build to fail if the release cannot be fetched.

                                                                                                              Instances For
                                                                                                                @[reducible, inline]

                                                                                                                A package's extraDepTargets mixed with its transitive dependencies'.

                                                                                                                Instances For
                                                                                                                  @[reducible, inline]

                                                                                                                  The package's array of dependencies.

                                                                                                                  Instances For
                                                                                                                    @[reducible, inline]

                                                                                                                    The package's complete array of transitive dependencies.

                                                                                                                    Instances For

                                                                                                                      Lean Library Infos #

                                                                                                                      @[reducible, inline]
                                                                                                                      Instances For
                                                                                                                        @[reducible, inline]
                                                                                                                        abbrev Lake.LeanLib.facet (facet : Lean.Name) (self : LeanLib) :

                                                                                                                        Build info for a facet of a Lean library.

                                                                                                                        Instances For
                                                                                                                          @[reducible, inline]

                                                                                                                          The library's default facets (as specified by its defaultFacets configuration). .

                                                                                                                          Instances For
                                                                                                                            @[reducible, inline]

                                                                                                                            A Lean library's Lean modules.

                                                                                                                            Instances For
                                                                                                                              @[reducible, inline]

                                                                                                                              A Lean library's Lean artifacts (e.g., olean, ilean, c).

                                                                                                                              Instances For
                                                                                                                                @[reducible, inline]

                                                                                                                                A Lean library's static artifact.

                                                                                                                                Instances For
                                                                                                                                  @[reducible, inline]

                                                                                                                                  A Lean library's static artifact (with exported symbols).

                                                                                                                                  Static libraries with explicit exports are built as thin libraries. Such libraries are usually used as part of the local build process of some shared artifact and not publicly distributed. Standard static libraries are much better for distribution.

                                                                                                                                  Instances For
                                                                                                                                    @[reducible, inline]

                                                                                                                                    A Lean library's shared artifact.

                                                                                                                                    Instances For
                                                                                                                                      @[reducible, inline]

                                                                                                                                      A Lean library's extraDepTargets mixed with its package's.

                                                                                                                                      Instances For

                                                                                                                                        Lean Executable Infos #

                                                                                                                                        @[reducible, inline]
                                                                                                                                        Instances For
                                                                                                                                          @[reducible, inline]

                                                                                                                                          A Lean binary executable.

                                                                                                                                          Instances For

                                                                                                                                            External Library Infos #

                                                                                                                                            @[reducible, inline]
                                                                                                                                            Instances For
                                                                                                                                              @[reducible, inline]

                                                                                                                                              A external library's static binary.

                                                                                                                                              Instances For
                                                                                                                                                @[reducible, inline]

                                                                                                                                                A external library's shared binary.

                                                                                                                                                Instances For
                                                                                                                                                  @[reducible, inline]

                                                                                                                                                  A external library's dynlib.

                                                                                                                                                  Instances For

                                                                                                                                                    Input File & Directory Infos #

                                                                                                                                                    @[reducible, inline]
                                                                                                                                                    Instances For
                                                                                                                                                      @[reducible, inline]

                                                                                                                                                      The default facet for an input file. Produces the file path.

                                                                                                                                                      Instances For
                                                                                                                                                        @[reducible, inline]
                                                                                                                                                        Instances For
                                                                                                                                                          @[reducible, inline]

                                                                                                                                                          The default facet for an input directory. Produces the matching files in the directory.

                                                                                                                                                          Instances For