Documentation

Lake.Build.Data

Build Data Subtypes #

opaque Lake.DataType (kind : Lean.Name) :

The open type family which maps a Lake data kind to its associated type. For example, LeanLib.facetKind maps to LeanLib.

It is an open type, meaning additional mappings can be add lazily as needed (via data_type).

class Lake.DataKind (α : Type u) :

A Name descriptor of a data type.

Instances
    class Lake.OptDataKind (α : Type u) :

    Tries to synthesize a Name descriptor of a data type. Otherwise uses Name.anonymous to indicate none was found.

    Instances
      @[implicit_reducible, instance 100]
      @[implicit_reducible]
      @[inline]
      Instances For
        theorem Lake.OptDataKind.eq_data_type {α : Type u_1} {self : OptDataKind α} (h : ¬self.isAnonymous = true) :
        α = DataType (name α)
        @[implicit_reducible]
        @[implicit_reducible]
        @[implicit_reducible]
        opaque Lake.FacetOut (facet : Lean.Name) :

        The open type family which maps a Lake facet to its output type. For example, a FilePath for the module.olean facet.

        It is an open type, meaning additional mappings can be add lazily as needed (via facet_data).

        @[reducible, inline]
        abbrev Lake.FacetData (kind facet : Lean.Name) :

        The open type family which maps a Lake facet kind and name to its output type. For example, a FilePath for the module olean facet.

        It is an open type, meaning additional mappings can be add lazily as needed (via facet_data).

        Instances For
          instance Lake.instFamilyDefNameFacetDataOfFacetOutHAppend {kind facet : Lean.Name} {α : Type} [h : FamilyDef FacetOut (kind ++ facet) α] :
          FamilyDef (FacetData kind) facet α
          instance Lake.instFamilyDefNameFacetOutHAppendOfFacetData {kind facet : Lean.Name} {α : Type} [h : FamilyDef (FacetData kind) facet α] :
          FamilyDef FacetOut (kind ++ facet) α
          @[reducible, inline]
          abbrev Lake.ModuleData (facet : Lean.Name) :

          The open type family which maps a module facet's name to its output type. For example, a FilePath for the module olean facet.

          It is an open type, meaning additional mappings can be add lazily as needed (via module_data).

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

            The open type family which maps a package facet's name to output type. For example, an Array Package of direct dependencies for the deps facet.

            It is an open type, meaning additional mappings can be add lazily as needed (via package_data).

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

              The open type family which maps a Lean library facet's name to its output type. For example, the FilePath pf the generated static library for the static facet.

              It is an open type, meaning additional mappings can be add lazily as needed (via library_data).

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

                The open type family which maps a Lean library facet's name to its output type. For example, the FilePath pf the generated static library for the static facet.

                It is an open type, meaning additional mappings can be add lazily as needed (via library_data).

                Instances For

                  The open type family which maps a custom package target (package × target name) to its output type.

                  It is an open type, meaning additional mappings can be add lazily as needed (via custom_data).

                  @[reducible, inline]
                  abbrev Lake.CustomData (package target : Lean.Name) :

                  The open type family which maps a custom package target to its output type.

                  It is an open type, meaning additional mappings can be add lazily as needed (via custom_data).

                  Instances For

                    Build Data #

                    @[reducible, inline]

                    A mapping between a build key and its associated build data in the store. It is a simple type function composed of the separate open type families for modules facets, package facets, Lake target facets, and custom targets.

                    Instances For

                      Macros for Declaring Build Data #

                      Macro for declaring a new DataType.

                      Instances For
                        @[implicit_reducible]
                        @[implicit_reducible]
                        @[implicit_reducible]

                        Internal macro for declaring new facet within Lake.

                        Instances For

                          Macro for declaring new FacetData.

                          Instances For

                            Macro for declaring new PackageData.

                            Instances For

                              Macro for declaring new ModuleData.

                              Instances For

                                Macro for declaring new LibraryData.

                                Instances For

                                  Macro for declaring new CustomData.

                                  Instances For