Documentation

Lake.Config.Package

Platform-specific archive file with an optional name prefix (i.e., {name}-{platformDescriptor}.tar.gz).

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

    First tries to convert a string into a legal name. If that fails, defaults to making it a simple name (e.g., Lean.Name.mkSimple). Currently used for package and target names taken from the CLI.

    Equations
    Instances For

      Defaults #

      The default setting for a PackageConfig's buildDir option.

      Equations
      Instances For

        The default setting for a PackageConfig's leanLibDir option.

        Equations
        Instances For

          The default setting for a PackageConfig's nativeLibDir option.

          Equations
          Instances For

            The default setting for a PackageConfig's binDir option.

            Equations
            Instances For

              The default setting for a PackageConfig's irDir option.

              Equations
              Instances For

                PackageConfig #

                A Package's declarative configuration.

                • packagesDir : Lake.FilePath
                • buildType : Lake.BuildType
                • moreLeanArgs : Array String
                • weakLeanArgs : Array String
                • moreLeancArgs : Array String
                • weakLeancArgs : Array String
                • moreLinkArgs : Array String
                • weakLinkArgs : Array String
                • backend : Lake.Backend
                • name : Lake.Name

                  The Name of the package.

                • manifestFile : Option Lake.FilePath

                  This field is deprecated.

                  The path of a package's manifest file, which stores the exact versions of its resolved dependencies.

                  Defaults to defaultManifestFile (i.e., lake-manifest.json).

                • extraDepTargets : Array Lake.Name

                  An Array of target names to build whenever the package is used.

                • precompileModules : Bool

                  Whether to compile each of the package's module into a native shared library that is loaded whenever the module is imported. This speeds up evaluation of metaprograms and enables the interpreter to run functions marked @[extern].

                  Defaults to false.

                • moreServerArgs : Array String

                  Additional arguments to pass to the Lean language server (i.e., lean --server) launched by lake server.

                • srcDir : Lake.FilePath

                  The directory containing the package's Lean source files. Defaults to the package's directory.

                  (This will be passed to lean as the -R option.)

                • buildDir : Lake.FilePath

                  The directory to which Lake should output the package's build results. Defaults to defaultLakeDir / defaultBuildDir (i.e., .lake/build).

                • leanLibDir : Lake.FilePath

                  The build subdirectory to which Lake should output the package's binary Lean libraries (e.g., .olean, .ilean files). Defaults to defaultLeanLibDir (i.e., lib).

                • nativeLibDir : Lake.FilePath

                  The build subdirectory to which Lake should output the package's native libraries (e.g., .a, .so, .dll files). Defaults to defaultNativeLibDir (i.e., lib).

                • binDir : Lake.FilePath

                  The build subdirectory to which Lake should output the package's binary executable. Defaults to defaultBinDir (i.e., bin).

                • The build subdirectory to which Lake should output the package's intermediary results (e.g., .c and .o files). Defaults to defaultIrDir (i.e., ir).

                • releaseRepo? : Option String

                  The URL of the GitHub repository to upload and download releases of this package. If none (the default), for downloads, Lake uses the URL the package was download from (if it is a dependency) and for uploads, uses gh's default.

                • buildArchive? : Option String

                  The name of the build archive on GitHub. Defaults to none. The archive's full file name will be nameToArchive buildArchive?.

                • preferReleaseBuild : Bool

                  Whether to prefer downloading a prebuilt release (from GitHub) rather than building this package from the source when this package is used as a dependency.

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

                  Package #

                  structure Lake.Package :

                  A Lake package -- its location plus its configuration.

                  Instances For
                    Equations
                    @[implemented_by Lake.OpaquePackage.unsafeMk]
                    @[implemented_by Lake.OpaquePackage.unsafeGet]
                    Equations
                    Equations
                    @[inline, reducible]
                    Equations
                    Instances For
                      @[inline]
                      Equations
                      Instances For
                        @[inline, reducible]
                        Equations
                        Instances For
                          @[inline]
                          Equations
                          Instances For
                            @[inline, reducible]

                            The package's name.

                            Equations
                            Instances For
                              structure Lake.NPackage (name : Lake.Name) extends Lake.Package :

                              A package with a name known at type-level.

                              Instances For
                                Equations
                                • Lake.instCoeOutNPackagePackage = { coe := Lake.NPackage.toPackage }
                                Equations
                                @[inline, reducible]

                                The package's name.

                                Equations
                                Instances For
                                  @[inline, reducible]
                                  abbrev Lake.PostUpdateFn (pkgName : Lake.Name) :

                                  The type of a post-update hooks monad. IO equipped with logging ability and information about the Lake configuration.

                                  Equations
                                  Instances For
                                    structure Lake.PostUpdateHook (pkgName : Lake.Name) :
                                    Instances For
                                      Equations
                                      • Lake.instInhabitedPostUpdateHook = { default := { fn := default } }
                                      Equations
                                      • Lake.OpaquePostUpdateHook.instCoeOpaquePostUpdateHookPostUpdateHook = { coe := Lake.OpaquePostUpdateHook.get }
                                      Equations
                                      • Lake.OpaquePostUpdateHook.unsafeGet = unsafeCast
                                      Instances For
                                        Equations
                                        Equations
                                        • Lake.OpaquePostUpdateHook.instCoePostUpdateHookOpaquePostUpdateHook = { coe := Lake.OpaquePostUpdateHook.mk }
                                        @[implemented_by Lake.OpaquePostUpdateHook.unsafeMk]
                                        Equations
                                        • Lake.OpaquePostUpdateHook.unsafeMk = unsafeCast
                                        Instances For
                                          @[implemented_by Lake.OpaquePostUpdateHook.unsafeGet]
                                          Instances For
                                            @[inline]

                                            The package's direct dependencies.

                                            Equations
                                            Instances For
                                              @[inline]

                                              The path to the package's Lake directory relative to dir (e.g., .lake).

                                              Equations
                                              Instances For
                                                @[inline]

                                                The full path to the package's Lake directory (i.e, dir joined with relLakeDir).

                                                Equations
                                                Instances For
                                                  @[inline]

                                                  The path for storing the package's remote dependencies relative to dir (i.e., packagesDir).

                                                  Equations
                                                  Instances For
                                                    @[inline]

                                                    The package's dir joined with its relPkgsDir.

                                                    Equations
                                                    Instances For
                                                      @[inline]

                                                      The path to the package's JSON manifest of remote dependencies.

                                                      Equations
                                                      Instances For
                                                        @[inline]

                                                        The package's dir joined with its buildDir configuration.

                                                        Equations
                                                        Instances For
                                                          @[inline]

                                                          The package's extraDepTargets configuration.

                                                          Equations
                                                          Instances For
                                                            @[inline]

                                                            The package's releaseRepo? configuration.

                                                            Equations
                                                            Instances For
                                                              @[inline]

                                                              The package's buildArchive? configuration.

                                                              Equations
                                                              Instances For
                                                                @[inline]

                                                                The file name of the package's build archive derived from buildArchive?.

                                                                Equations
                                                                Instances For
                                                                  @[inline]

                                                                  The package's lakeDir joined with its buildArchive configuration.

                                                                  Equations
                                                                  Instances For
                                                                    @[inline]

                                                                    The package's preferReleaseBuild configuration.

                                                                    Equations
                                                                    Instances For
                                                                      @[inline]

                                                                      The package's precompileModules configuration.

                                                                      Equations
                                                                      Instances For
                                                                        @[inline]

                                                                        The package's moreServerArgs configuration.

                                                                        Equations
                                                                        Instances For
                                                                          @[inline]

                                                                          The package's buildType configuration.

                                                                          Equations
                                                                          Instances For
                                                                            @[inline]

                                                                            The package's backend configuration.

                                                                            Equations
                                                                            Instances For
                                                                              @[inline]

                                                                              The package's moreLeanArgs configuration.

                                                                              Equations
                                                                              Instances For
                                                                                @[inline]

                                                                                The package's weakLeanArgs configuration.

                                                                                Equations
                                                                                Instances For
                                                                                  @[inline]

                                                                                  The package's moreLeancArgs configuration.

                                                                                  Equations
                                                                                  Instances For
                                                                                    @[inline]

                                                                                    The package's weakLeancArgs configuration.

                                                                                    Equations
                                                                                    Instances For
                                                                                      @[inline]

                                                                                      The package's moreLinkArgs configuration.

                                                                                      Equations
                                                                                      Instances For
                                                                                        @[inline]

                                                                                        The package's weakLinkArgs configuration.

                                                                                        Equations
                                                                                        Instances For
                                                                                          @[inline]

                                                                                          The package's dir joined with its srcDir configuration.

                                                                                          Equations
                                                                                          Instances For
                                                                                            @[inline]

                                                                                            The package's root directory for lean (i.e., srcDir).

                                                                                            Equations
                                                                                            Instances For
                                                                                              @[inline]

                                                                                              The package's buildDir joined with its leanLibDir configuration.

                                                                                              Equations
                                                                                              Instances For
                                                                                                @[inline]

                                                                                                The package's buildDir joined with its nativeLibDir configuration.

                                                                                                Equations
                                                                                                Instances For
                                                                                                  @[inline]

                                                                                                  The package's buildDir joined with its binDir configuration.

                                                                                                  Equations
                                                                                                  Instances For
                                                                                                    @[inline]

                                                                                                    The package's buildDir joined with its irDir configuration.

                                                                                                    Equations
                                                                                                    Instances For

                                                                                                      Whether the given module is considered local to the package.

                                                                                                      Equations
                                                                                                      Instances For

                                                                                                        Whether the given module is in the package (i.e., can build it).

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

                                                                                                          Remove the package's build outputs (i.e., delete its build directory).

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