A buildable Lean module of a LeanLib
.
- lib : Lake.LeanLib
- name : Lake.Name
- keyName : Lake.Name
The name of the module as a key. Used to create private modules (e.g., executable roots).
Instances For
Equations
- Lake.instHashableModule = { hash := fun (m : Lake.Module) => hash m.keyName }
Equations
- Lake.instBEqModule = { beq := fun (m n : Lake.Module) => m.keyName == n.keyName }
@[inline, reducible]
Equations
Instances For
@[inline, reducible]
Equations
Instances For
@[inline, reducible]
Equations
- Lake.ModuleMap α = Lean.RBMap Lake.Module α fun (x x_1 : Lake.Module) => Lean.Name.quickCmp x.name x_1.name
Instances For
Locate the named, buildable module in the library (which implies it is local and importable).
Equations
- Lake.LeanLib.findModule? mod self = if Lake.LeanLib.isBuildableModule mod self = true then some { lib := self, name := mod, keyName := mod } else none
Instances For
Locate the named, buildable, importable, local module in the package.
Equations
- Lake.Package.findModule? mod self = Array.findSomeRev? (Lake.Package.leanLibs self) fun (x : Lake.LeanLib) => Lake.LeanLib.findModule? mod x
Instances For
Get an Array
of the library's modules (as specified by its globs).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The library's buildable root modules.
Equations
- Lake.LeanLib.rootModules self = Array.filterMap (fun (mod : Lake.Name) => Lake.LeanLib.findModule? mod self) self.config.roots 0
Instances For
@[inline]
Equations
- Lake.Module.filePath dir ext self = Lean.modToFilePath dir self.name ext
Instances For
@[inline]
Equations
- Lake.Module.srcPath ext self = Lake.Module.filePath (Lake.LeanLib.srcDir self.lib) ext self
Instances For
@[inline]
Equations
- Lake.Module.leanLibPath ext self = Lake.Module.filePath (Lake.Package.leanLibDir (Lake.Module.pkg self)) ext self
Instances For
@[inline]
Equations
- Lake.Module.irPath ext self = Lake.Module.filePath (Lake.Package.irDir (Lake.Module.pkg self)) ext self
Instances For
Suffix for single module dynlibs (e.g., for precompilation).
Equations
Instances For
@[inline]
Equations
- Lake.Module.dynlibName self = Lean.Name.toStringWithSep "-" true self.name ++ Lake.Module.dynlibSuffix
Instances For
@[inline]
Equations
- Lake.Module.dynlibFile self = Lake.Package.nativeLibDir (Lake.Module.pkg self) / { toString := Lake.nameToSharedLib (Lake.Module.dynlibName self) }
Instances For
@[inline]
Equations
- Lake.Module.serverOptions self = Lake.LeanLib.serverOptions self.lib
Instances For
@[inline]
Equations
- Lake.Module.weakLeancArgs self = Lake.LeanLib.weakLeancArgs self.lib
Instances For
@[inline]
Equations
- Lake.Module.platformIndependent self = Lake.LeanLib.platformIndependent self.lib
Instances For
@[inline]
Equations
- Lake.Module.shouldPrecompile self = Lake.LeanLib.precompileModules self.lib
Instances For
@[inline]
Equations
- Lake.Module.nativeFacets self = Lake.LeanLib.nativeFacets self.lib
Instances For
Trace Helpers #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lake.Module.instGetMTimeModule = { getMTime := Lake.Module.getMTime }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lake.Module.instCheckExistsModule = { checkExists := Lake.Module.checkExists }