The overlord Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The overlord Reference Manual

This is the overlord Reference Manual, version 51, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed Jun 15 05:29:38 2022 GMT+0.

Table of Contents


1 Introduction

Overlord

Introduction

Overlord is a build system in Common Lisp. It is a real build system, with all the modern features: rules with multiple outputs, parallel builds, immunity to clock issues, and dynamic dependencies.

But Overlord is more than another build system. Overlord is a uniform approach to dependencies inside or outside of a Lisp image. Conceptually, Overlord is to Make what Lisp macros are to C macros.

Overlord uses a persistent store to track dependencies. This small overhead translates into drastically simplified semantics for the programmer. Much like garbage collection allows programmers largely not to have to think about lifetimes, persistent dependencies allow programmers largely not to have to think about phasing.

For more discussion, consult the wiki. If you are a Lisper, you might want to jump straight to the tutorial for Lispers.

Advice for users

Note that, to run the test suite, you will need to download Core Lisp, and, if not on Windows, you must have the touch program in your search path. (On Windows, Powershell is used instead).

Overlord stores its persistent data structures in a cache directory. On Linux, this is $XDG_CACHE_HOME/overlord. The data structures stored there are versioned. It might worth checking the cache directory from time to time to delete obsolete files.

Overlord is developed and tested on Clozure and SBCL. In the future it may officially support other Lisp implementations, but that is not a priority.

Examples

Here are some projects that make direct use of Overlord:

  1. cl-https-everywhere. In-process HTTPS Everywhere rulesets, automatically fetched from the HTTPS Everywhere repository and compiled into Lisp code.

  2. Proctor. Proctor treats tests as build targets, allowing you to precisely specify their dependencies and re-run tests only when necessary.

  3. Vernacular. Provides a module system for embedding languages, with arbitrary syntaxes, into Common Lisp systems.


2 Systems

The main system appears first, followed by any subsystem dependency.


Next: , Previous: , Up: Systems   [Contents][Index]

2.1 overlord

Experimental build system.

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Version

51

Dependency

overlord/all (system).

Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.2 overlord/all

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.3 overlord/types

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
  • alexandria (system).
  • serapeum (system).
  • trivia (system).
  • fset (system).
Source

overlord.asd.


2.4 overlord/message

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.5 overlord/global-state

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependency

serapeum (system).

Source

overlord.asd.


2.6 overlord/util

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
  • alexandria (system).
  • serapeum (system).
  • trivial-file-size (system).
  • overlord/types (system).
  • fset (system).
  • babel (system).
  • bit-smasher (system).
  • local-time (system).
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.7 overlord/specials

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.8 overlord/asdf

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
  • alexandria (system).
  • serapeum (system).
  • named-readtables (system).
  • overlord/types (system).
Source

overlord.asd.


2.9 overlord/redo

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.10 overlord/target-protocol

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


2.11 overlord/stamp

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
  • alexandria (system).
  • serapeum (system).
  • local-time (system).
  • overlord/types (system).
  • overlord/util (system).
  • fset (system).
  • trivial-file-size (system).
Source

overlord.asd.


2.12 overlord/target-table

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


2.13 overlord/build-env

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.14 overlord/kernel

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.15 overlord/db

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.16 overlord/cache

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.17 overlord/makespan

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
  • alexandria (system).
  • serapeum (system).
Source

overlord.asd.


2.18 overlord/base

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.19 overlord/target

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.20 overlord/digest

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
  • alexandria (system).
  • serapeum (system).
  • sb-md5 (system).
  • overlord/util (system).
Source

overlord.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.21 overlord/freeze

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


2.22 overlord/oracle

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


Previous: , Up: Systems   [Contents][Index]

2.23 overlord/project-system

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd.


3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


3.1.2 overlord/all/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/all (system).

Packages

3.1.3 overlord/types/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/types (system).

Packages

overlord/types.

Public Interface
Internals

3.1.4 overlord/message/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/message (system).

Packages

overlord/message.

Public Interface
Internals

3.1.5 overlord/global-state/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/global-state (system).

Packages

overlord/global-state.

Public Interface
Internals

3.1.6 overlord/util/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/util (system).

Packages

overlord/util.

Public Interface
Internals

3.1.7 overlord/specials/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/specials (system).

Packages

overlord/specials.

Public Interface
Internals

3.1.8 overlord/asdf/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/asdf (system).

Packages

overlord/asdf.

Public Interface

3.1.9 overlord/redo/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/redo (system).

Packages

overlord/redo.

Public Interface
Internals

3.1.10 overlord/target-protocol/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/target-protocol (system).

Packages

overlord/target-protocol.

Public Interface
Internals

3.1.11 overlord/stamp/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/stamp (system).

Packages

overlord/stamp.

Public Interface
Internals

3.1.12 overlord/target-table/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/target-table (system).

Packages

overlord/target-table.

Public Interface
Internals

3.1.13 overlord/build-env/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/build-env (system).

Packages

overlord/build-env.

Public Interface
Internals

3.1.14 overlord/kernel/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/kernel (system).

Packages

overlord/kernel.

Public Interface
Internals

3.1.15 overlord/db/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/db (system).

Packages

overlord/db.

Public Interface
Internals

3.1.16 overlord/cache/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/cache (system).

Packages

overlord/cache.

Public Interface
Internals

3.1.17 overlord/makespan/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/makespan (system).

Packages

overlord/makespan.

Public Interface
Internals

3.1.18 overlord/base/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/base (system).

Packages

overlord/base.

Public Interface
Internals

3.1.19 overlord/target/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/target (system).

Packages

overlord/target.

Public Interface
Internals

3.1.20 overlord/digest/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/digest (system).

Packages

overlord/digest.

Public Interface

3.1.21 overlord/freeze/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/freeze (system).

Packages

overlord/freeze.

Public Interface
Internals

3.1.22 overlord/oracle/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/oracle (system).

Packages

overlord/oracle.

Public Interface
Internals

3.1.23 overlord/project-system/file-type.lisp

Source

overlord.asd.

Parent Component

overlord/project-system (system).

Packages

overlord/project-system.

Public Interface
Internals

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 overlord/types

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
  • uiop/pathname.
Used By List
Public Interface
Internals

4.2 overlord/redo

Source

file-type.lisp.

Nickname

redo

Use List
Used By List
Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.3 overlord/project-system

Very basic, experimental ASDF extension. Looks for
a package with the same name as the system and a symbol named ‘all’ in that package, and builds that.

Use ‘asdf:make’ to get the desired behavior.

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
Used By List

overlord/all.

Public Interface
Internals

4.4 overlord/base

Source

file-type.lisp.

Use List
Used By List
Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.5 overlord/freeze

Source

file-type.lisp.

Use List
Used By List
Public Interface
Internals

4.6 overlord/cache

Source

file-type.lisp.

Use List
Used By List
Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.7 overlord/makespan

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
Public Interface
Internals

4.8 overlord/oracle

Source

file-type.lisp.

Use List
Used By List
Public Interface
Internals

4.9 overlord/global-state

Source

file-type.lisp.

Use List
  • common-lisp.
  • serapeum.
Used By List
Public Interface
Internals

4.10 overlord/target-table

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
Used By List
Public Interface
Internals

4.11 overlord-user

Source

file-type.lisp.

Use List

Next: , Previous: , Up: Packages   [Contents][Index]

4.12 overlord/specials

Source

file-type.lisp.

Use List
Used By List
Public Interface
Internals

4.13 overlord/target

Source

file-type.lisp.

Use List
Used By List

overlord/all.

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.14 overlord/build-env

Environment for builds, including (but not limited to) caching already built targets.

Source

file-type.lisp.

Use List
Used By List

overlord/redo.

Public Interface
Internals

4.15 overlord/asdf

This package contains wrappers for ASDF functions.

The idea is to be able to trivially audit exactly how Overlord uses ASDF.

If you want to call an ASDF function in another package, don’t! Add a wrapper for it here and import that.

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
Used By List
Public Interface

Next: , Previous: , Up: Packages   [Contents][Index]

4.16 overlord/digest

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
Used By List

overlord/target.

Public Interface

Next: , Previous: , Up: Packages   [Contents][Index]

4.17 overlord/stamp

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • local-time.
  • serapeum.
Used By List

overlord/target.

Public Interface
Internals

4.18 overlord/util

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
  • trivial-file-size.
Used By List

overlord/target.

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.19 overlord/target-protocol

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
Used By List
Public Interface
Internals

4.20 overlord/message

Source

file-type.lisp.

Use List
Used By List
Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.22 overlord/kernel

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
Public Interface
Internals

Previous: , Up: Packages   [Contents][Index]

4.23 overlord/db

Source

file-type.lisp.

Use List
Used By List
Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


5.1.1 Special variables

Special Variable: *base*

The current base.

Package

overlord/specials.

Source

file-type.lisp.

Special Variable: *base-package*

The package relative to which (if bound) the base should be computed.

Package

overlord/specials.

Source

file-type.lisp.

Special Variable: *before-hard-freeze-hook*
Package

overlord/freeze.

Source

file-type.lisp.

Special Variable: *cli*

Are we running on a CLI?

Package

overlord/specials.

Source

file-type.lisp.

Special Variable: *db-version*

Versioning for fasls.
Incrementing this should be sufficient to invalidate old fasls.

Package

overlord/specials.

Source

file-type.lisp.

Special Variable: *force*

Whether to force rebuilding.

Package

overlord/specials.

Source

file-type.lisp.

Special Variable: *jobs*
Package

overlord/specials.

Source

file-type.lisp.

Special Variable: *message-stream*

The stream printed to by the default message handler.

Package

overlord/message.

Source

file-type.lisp.

Special Variable: *parents*

The chain of parents being built.

Package

overlord/redo.

Source

file-type.lisp.

Special Variable: *suppress-phonies*
Package

overlord/specials.

Source

file-type.lisp.

Special Variable: *use-build-cache*

Should we cache which targets are already built?

Note that this can safely be rebound around part of a build when non-caching behavior is desired.

Package

overlord/build-env.

Source

file-type.lisp.


5.1.2 Symbol macros

Symbol Macro: far-future
Package

overlord/stamp.

Source

file-type.lisp.

Symbol Macro: impossible-prereq
Package

overlord/target-protocol.

Source

file-type.lisp.

Symbol Macro: never
Package

overlord/stamp.

Source

file-type.lisp.

Symbol Macro: nproc
Package

overlord/kernel.

Source

file-type.lisp.

Symbol Macro: root-target
Package

overlord/target-protocol.

Source

file-type.lisp.

Symbol Macro: stamp
Package

overlord/stamp.

Source

file-type.lisp.

Symbol Macro: trivial-prereq
Package

overlord/target-protocol.

Source

file-type.lisp.


5.1.3 Macros

Macro: check-list-of (list item-type)
Package

overlord/types.

Source

file-type.lisp.

Macro: defconfig (name &body init)
Package

overlord/target.

Source

file-type.lisp.

Macro: define-global-state (name init &body &optional)
Package

overlord/global-state.

Source

file-type.lisp.

Macro: define-script (name &body script)
Package

overlord/target.

Source

file-type.lisp.

Macro: define-target-config (name expr &body deps)

Define a conf with dependencies.
A dependency can be a file or another variable.

If any of those files or variables change, then the variable is rebuilt.

Package

overlord/target.

Source

file-type.lisp.

Macro: define-target-task (name &body body)

Lower-level version of ‘deftask’.

Unlike tasks defined using ‘deftask’, tasks defined using ‘define-target-task’ are built before freezing.

Package

overlord/target.

Source

file-type.lisp.

Macro: define-target-var (name expr &body deps)

Define a variable with dependencies.
A dependency can be a file or another variable.

If any of those files or variables change, then the variable is rebuilt.

Package

overlord/target.

Source

file-type.lisp.

Macro: define-var-once (name expr &optional docstring)

Like ‘defvar’, but also re-evaluate if EXPR changes.

Package

overlord/target.

Source

file-type.lisp.

Macro: defpattern (class-name (&key in out dest) (&rest initargs &key &allow-other-keys) &body script)

Define a file pattern named NAME.

Some build systems let you define file patterns based on extensions or regular expressions. That won’t work for Overlord, because there is no special namespace for targets, so such a rule would apply everywhere. It has to have a name.

The behavior of ‘defpattern’ changes based on the bindings you request. IN is bound to the name of the input file or files.

For the meaning of OUT and DEST, compare the documentation for ‘file-target’.

Package

overlord/target.

Source

file-type.lisp.

Macro: deftask (name &body body)

Define a task – a target that only has dependencies.

This is essentially a convenience to let you use script syntax to specify the dependencies you want to build.

Package

overlord/target.

Source

file-type.lisp.

Macro: dx-sxhash (expr)

Like SXHASH, but try to stack-allocate EXPR.

Package

overlord/util.

Source

file-type.lisp.

Macro: ensure-pathnamef (place)
Package

overlord/util.

Source

file-type.lisp.

Macro: file-target (name (&key path dest out) &body body)

Define PATHNAME as a target.

If supplied, PATHNAME may be a literal pathname or a string (in which case it is parsed with ‘uiop:parse-unix-namestring’). Using a string is preferred for programs that care about portability. If not supplied, PATHNAME defaults to NAME, as a string, with its case inverted, and any earmuffs removed.

NAME is not a target; it is a binding that serves as a convenient handle for the name of the target. (It is also necessary to be able to recognize that the file is out of date when BODY changes.) The binding is a lexical binding, unless NAME has earmuffs (‘*NAME*’) in which case it is bound as a special variable.

The behavior of ‘file-target’ depends on which, if any, bindings are requested. If DEST is supplied, then it is simply bound to PATHNAME, after it has been resolved. If only DEST is supplied, or if no bindings are requested, then you must write directly to the destination file.

If a binding for OUT is supplied, however, the behavior of ‘file-target’ changes: OUT is bound to a temporary file, and after BODY has finished the destination file is atomically overwritten with OUT.

You should generally prefer OUT to DEST. DEST is most useful when you are using an external program that lets you specify the input file but not the output file (a bad design, but unfortunately a common one).

There are legitimate cases where you might want to use both OUT and DEST: for example, while writing to OUT, you might still need to know the name of the destination file in order to derive the names of input files to depend on dynamically.

Package

overlord/target.

Source

file-type.lisp.

Macro: lessf (place &rest item-or-tuple)

Modify macro for removing from an Fset map or set.

Package

overlord/util.

Source

file-type.lisp.

Macro: path (string)

At compile time, parse STRING using ‘uiop:parse-unix-namestring’.

The result is a relative pathname object.

This is an alternative to literal pathname syntax for greater portability.

Package

overlord/target.

Source

file-type.lisp.

Macro: propagate-side-effect (&body body)

Force BODY to be evaluated both at compile time AND load time (but not run time).

Note that BODY should be idempotent, as it may be evaluated more than once.

Package

overlord/util.

Source

file-type.lisp.

Macro: saving-database (&body body)

Macro wrapper for ‘call/saving-database’.

Package

overlord/db.

Source

file-type.lisp.

Macro: set-package-base (base &optional system)

Set the base and/or system, for the current package, at compile time as well as load time.

Package

overlord/base.

Source

file-type.lisp.

Macro: set-package-system (system)
Package

overlord/base.

Source

file-type.lisp.

Macro: var-target (name expr &body deps)

Like ‘define-target-var’, but does not actually evaluate anything.

Package

overlord/target.

Source

file-type.lisp.

Macro: with-absolute-package-names ((&key) &body body)
Package

overlord/util.

Source

file-type.lisp.

Macro: with-build-env ((&key jobs debug) &body body)
Package

overlord/build-env.

Source

file-type.lisp.

Macro: with-current-dir ((dir &key) &body body)
Package

overlord/base.

Source

file-type.lisp.

Macro: with-meta-kernel ((&key) &body body)
Package

overlord/kernel.

Source

file-type.lisp.

Macro: with-target-locked ((target &key) &body body)
Package

overlord/target-protocol.

Source

file-type.lisp.

Macro: with-target-table-locked ((target-table) &body body)
Package

overlord/target-table.

Source

file-type.lisp.

Macro: withf (place &rest item-or-tuple)

Modify macro for augmenting an Fset map or set.

Package

overlord/util.

Source

file-type.lisp.


5.1.4 Compiler macros

Compiler Macro: file (path)
Package

overlord/target.

Source

file-type.lisp.

Compiler Macro: message (format-control &rest format-arguments)
Package

overlord/message.

Source

file-type.lisp.


5.1.5 Ordinary functions

Function: --version (command)

An oracle that monitors the version of COMMAND (by calling it with an argument of ‘–version’.

Package

overlord/oracle.

Source

file-type.lisp.

Function: asdf-system-base (system)
Package

overlord/asdf.

Source

file-type.lisp.

Function: asdf-system-loaded? (system)
Package

overlord/asdf.

Source

file-type.lisp.

Function: asdf-system-name (system)
Package

overlord/asdf.

Source

file-type.lisp.

Function: asdf-system-name-keyword (system)
Package

overlord/asdf.

Source

file-type.lisp.

Function: asdf-system-relative-pathname (system pathname)
Package

overlord/asdf.

Source

file-type.lisp.

Function: asdf-system-version (system &key error)
Package

overlord/asdf.

Source

file-type.lisp.

Function: asdf-system? (system)
Package

overlord/asdf.

Source

file-type.lisp.

Function: ask-for-token* ()

Get a token from the current build environment.

Package

overlord/build-env.

Source

file-type.lisp.

Function: base ()

Return the current base, which is either the current value of ‘*base*’ (if that is bound) or the base of the current package.

Package

overlord/base.

Source

file-type.lisp.

Function: base-package ()
Package

overlord/specials.

Source

file-type.lisp.

Function: build (target/s &key force jobs debug on-exit)

Build TARGET/S, a single target or a list of targets.

Package

overlord/target.

Source

file-type.lisp.

Function: build-env-bound? ()
Package

overlord/build-env.

Source

file-type.lisp.

Function: build-package (package &rest kws &key &allow-other-keys)
Package

overlord/target.

Source

file-type.lisp.

Function: building? ()

Return T if anything is being built.

Package

overlord/redo.

Source

file-type.lisp.

Function: byte-array-to-hex-string (ba)
Package

overlord/util.

Source

file-type.lisp.

Function: cached-stamp (target)
Package

overlord/build-env.

Source

file-type.lisp.

Function: (setf cached-stamp) (target)
Package

overlord/build-env.

Source

file-type.lisp.

Function: call-with-targets-locked (targets fn)

Lock every target in TARGETS, then call FN.

Before locking, targets are ordered according to the global order established by ‘fset:compare’, to avoid deadlocks.

Package

overlord/target-protocol.

Source

file-type.lisp.

Function: call/temp-file-pathname (dest fn)

Like ‘call/temp-file-pathnames‘, but for a single file.

Package

overlord/util.

Source

file-type.lisp.

Function: call/temp-file-pathnames (dests fn)

Create a set of temp files, call FN on them, and then copy the temp files into DESTS.

Package

overlord/util.

Source

file-type.lisp.

Function: cerror* (cont message &rest args)
Package

overlord/types.

Source

file-type.lisp.

Function: change-pathname-type (file ext)
Package

overlord/target.

Source

file-type.lisp.

Function: check-not-frozen ()
Package

overlord/freeze.

Source

file-type.lisp.

Function: claim-file* (target file)
Package

overlord/build-env.

Source

file-type.lisp.

Function: claim-files* (target files)
Package

overlord/build-env.

Source

file-type.lisp.

Function: clear-package-prereqs (package)

Clear the current prerequisites of PACKAGE. Return PACKAGE.

Package

overlord/target.

Source

file-type.lisp.

Function: clear-target-table (table)
Package

overlord/target-table.

Source

file-type.lisp.

Function: coerce-case (string &key readtable)
Package

overlord/util.

Source

file-type.lisp.

Function: copy-file-if-changed (from to)
Package

overlord/util.

Source

file-type.lisp.

Function: current-cache-dir (&optional version)

The current Overlord cache directory.
The path includes the Overlord major version, as well as the Lisp implementation and version, so if Overlord is updated, or the Lisp implementation is upgraded, the old cache is automatically invalidated.

Package

overlord/cache.

Source

file-type.lisp.

Function: current-dir! ()

Return the current directory.

If ‘*default-pathname-defaults*’ is an absolute directory pathname, return that.

Otherwise, resolve ‘*default-pathname-defaults*’ to an absolute directory, set ‘*default-pathname-defaults*’ to the new value, and return the new value.

Package

overlord/base.

Source

file-type.lisp.

Function: (setf current-dir!) ()
Package

overlord/base.

Source

file-type.lisp.

Function: current-system ()

Retrieve or infer the system the current package comes from.

Package

overlord/base.

Source

file-type.lisp.

Function: daily-oracle ()

Depend on today’s date.
This is for targets that should be no more than one a day.

Package

overlord/oracle.

Source

file-type.lisp.

Function: db-loaded? ()
Package

overlord/db.

Source

file-type.lisp.

Function: db-version ()
Package

overlord/types.

Source

file-type.lisp.

Function: deactivate-db ()

Clear the DB out of memory in such a way that it will not be reloaded on demand.

Package

overlord/db.

Source

file-type.lisp.

Function: delay-symbol (symbol)
Package

overlord/types.

Source

file-type.lisp.

Function: delayed-symbol (package-name symbol-name)
Package

overlord/types.

Source

file-type.lisp.

Function: delete-prop (obj prop)

Delete a property from OBJ.

Package

overlord/db.

Source

file-type.lisp.

Function: delete-targets (&rest targets)

Delete all targets in TARGETS, in no particular order. Lists of targets in TARGETS are flattened.

Package

overlord/target-protocol.

Source

file-type.lisp.

Function: delete-versioned-db (&key version)

Delete a specific version of the database. The database is always implicitly versioned.

Package

overlord/db.

Source

file-type.lisp.

Function: depends-not (&rest targets)

Depend on the targets in TARGETS not existing. Descends into lists.

Package

overlord/target.

Source

file-type.lisp.

Function: depends-not-all (targets)
Package

overlord/target.

Source

file-type.lisp.

Function: depends-on (&rest targets)

Depend on each target in TARGETS, in no particular order. Descends into lists.

Package

overlord/target.

Source

file-type.lisp.

Function: depends-on* (&rest targets)

Like ‘depends-on’, but in order.

Package

overlord/target.

Source

file-type.lisp.

Function: depends-on-all (targets)
Package

overlord/target.

Source

file-type.lisp.

Function: depends-on-all* (targets)
Package

overlord/target.

Source

file-type.lisp.

Function: digest-file (pathname)
Package

overlord/digest.

Source

file-type.lisp.

Function: digest-string (string)
Package

overlord/digest.

Source

file-type.lisp.

Function: directory-exists (name)

Wrap NAME as a directory reference.

Package

overlord/target.

Source

file-type.lisp.

Function: dist-version-oracle (&optional dist-name)
Package

overlord/oracle.

Source

file-type.lisp.

Function: end-meta-kernel ()

Terminate the Overlord kernel.

Package

overlord/kernel.

Source

file-type.lisp.

Function: ensure-absolute (pathname &key base)
Package

overlord/base.

Source

file-type.lisp.

Function: ensure-target-recorded (target)

Ensure that TARGET is recorded as a prerequisite.
If there is no current parent, make TARGET a prerequisite of the current package.

Package

overlord/target.

Source

file-type.lisp.

Function: env-oracle (name)
Package

overlord/oracle.

Source

file-type.lisp.

Function: error* (message &rest args)
Package

overlord/types.

Source

file-type.lisp.

Function: eval* (expr)

Evaluate EXPR by compiling it to a thunk, then calling that thunk.

Package

overlord/util.

Source

file-type.lisp.

Function: extension (ext)
Package

overlord/target.

Source

file-type.lisp.

Function: feature-oracle (feature)
Package

overlord/oracle.

Source

file-type.lisp.

Function: file (path)

Parse PATH as a Unix namestring and resolve it. If PATH is wild, expand it.

Package

overlord/target.

Source

file-type.lisp.

Function: file-digest-string (pathname)
Package

overlord/digest.

Source

file-type.lisp.

Function: file-hash (size hash)
Package

overlord/stamp.

Source

file-type.lisp.

Function: file-meta (size timestamp)
Package

overlord/stamp.

Source

file-type.lisp.

Function: file-mtime (pathname)

As ‘file-write-date’, but check if the file exists first.
This is provided in case we ever want to offer more precise timestamps on Lisp/OS/filesystem combinations that support it, and for implementations which signal an error rather than returning nil when PATHNAME does not exist.

Package

overlord/util.

Source

file-type.lisp.

Function: find-asdf-system (system &key error)
Package

overlord/asdf.

Source

file-type.lisp.

Function: find-pattern (pattern &optional errorp)
Package

overlord/target.

Source

file-type.lisp.

Function: force-symbol (delay)
Package

overlord/types.

Source

file-type.lisp.

Function: freeze ()
Package

overlord/freeze.

Source

file-type.lisp.

Function: freeze-policy ()

Get or set the current freeze policy.

The freeze policy determines what Overlord does when saving an image.

A freeze policy of ‘t’ (the default) disables module loading, but can be reversed with ‘overlord:unfreeze’.

A freeze policy of ‘nil‘ does nothing. This should only be used for local development.

A freeze policy of ‘:hard’ does the same thing as ‘t’, but cannot be reversed. This should be used when the image is intended to be distributed.

Package

overlord/freeze.

Source

file-type.lisp.

Function: (setf freeze-policy) ()
Package

overlord/freeze.

Source

file-type.lisp.

Function: frozen? ()
Package

overlord/freeze.

Source

file-type.lisp.

Function: function-oracle (function-name &rest args)
Package

overlord/oracle.

Source

file-type.lisp.

Function: glob-target (wildcard)
Package

overlord/oracle.

Source

file-type.lisp.

Function: has-prop? (obj prop &rest props)

Test if an object has a property in the database.

Package

overlord/db.

Source

file-type.lisp.

Function: list-package-prereqs (package)

List the current prerequisites of PACKAGE.

Package

overlord/target.

Source

file-type.lisp.

Function: load-asdf-system (system)
Package

overlord/asdf.

Source

file-type.lisp.

Function: locate-dominating-file (file name)
Package

overlord/util.

Source

file-type.lisp.

Function: make-pattern (pattern-name &key inputs outputs)
Package

overlord/target.

Source

file-type.lisp.

Function: make-shadow-tree (&key prefix)

Make a shadow tree with prefix PREFIX. PREFIX may be a string or a list of strings.

Package

overlord/cache.

Source

file-type.lisp.

Function: make-target-table (&key size synchronized)
Package

overlord/target-table.

Source

file-type.lisp.

Function: maybe-delay-symbol (symbol)
Package

overlord/types.

Source

file-type.lisp.

Function: message (control &rest args)
Package

overlord/message.

Source

file-type.lisp.

Function: minimize-makespan (machine-count targets build-times)

Given MACHINE-COUNT, a sequence of TARGETS, and a sequence of BUILD-TIMES for each target, distribute TARGETS into batches, at most one batch per machine (but possibly less), in such a way as to minimize their makespan – the time until the last machine is done with the last task.

Package

overlord/makespan.

Source

file-type.lisp.

Function: nproc ()
Package

overlord/kernel.

Source

file-type.lisp.

Function: optimal-machine-count (build-times)
Package

overlord/makespan.

Source

file-type.lisp.

Function: package-base (package &key errorp)

Retrieve or infer the base of PACKAGE.

Package

overlord/base.

Source

file-type.lisp.

Function: package-inferred-asdf-system? (system)
Package

overlord/asdf.

Source

file-type.lisp.

Function: package-name-asdf-system (n)
Package

overlord/asdf.

Source

file-type.lisp.

Function: package-system (package &key errorp)

Retrieve or infer the system PACKAGE comes from.

Package

overlord/base.

Source

file-type.lisp.

Function: pattern (inputs name)
Package

overlord/target.

Source

file-type.lisp.

Function: pattern-from (inputs pattern)
Package

overlord/target.

Source

file-type.lisp.

Function: pattern-into (outputs pattern)
Package

overlord/target.

Source

file-type.lisp.

Function: pattern-ref (inputs pattern)

Make a pattern reference.

Package

overlord/target.

Source

file-type.lisp.

Function: primary-asdf-system-name (system)
Package

overlord/asdf.

Source

file-type.lisp.

Function: prop (obj prop &optional default)

Look up a property for an object in the database.

Package

overlord/db.

Source

file-type.lisp.

Function: (setf prop) (obj prop &optional default)

Set an object’s property in the database.

Package

overlord/db.

Source

file-type.lisp.

Function: quoted-symbol? (x)
Package

overlord/util.

Source

file-type.lisp.

Function: read-file-form (file)
Package

overlord/util.

Source

file-type.lisp.

Function: redo (&rest targets)

Unconditionally build each target in TARGETS.

Package

overlord/redo.

Source

file-type.lisp.

Function: redo-all (targets &key jobs debug)

Unconditionally build each target in TARGETS.

Package

overlord/redo.

Source

file-type.lisp.

Function: redo-always ()

Depend on an impossible prerequisite.
This ensures that the script for the current target is always run, no matter what.

Package

overlord/redo.

Source

file-type.lisp.

Function: redo-ifchange (&rest targets)

Rebuild each target in TARGETS if it is out of date.

Package

overlord/redo.

Source

file-type.lisp.

Function: redo-ifchange-all (targets &key jobs debug)

Rebuild each target in TARGETS if it is out of date.

Package

overlord/redo.

Source

file-type.lisp.

Function: redo-ifcreate (&rest targets)

Depend on the non-existence of each target in TARGETS.

Package

overlord/redo.

Source

file-type.lisp.

Function: redo-ifcreate-all (targets &key jobs debug)

Depend on the non-existence of each target in TARGETS.

Package

overlord/redo.

Source

file-type.lisp.

Function: register-proc* (proc)
Package

overlord/build-env.

Source

file-type.lisp.

Function: register-worker-special (var)

Register VAR as a variable that should be propagated into worker threads.

Package

overlord/specials.

Source

file-type.lisp.

Function: register-worker-specials (vars)

Register each var in VARS, as with ‘register-worker-special’.

Package

overlord/specials.

Source

file-type.lisp.

Function: require-asdf-system (system)
Package

overlord/asdf.

Source

file-type.lisp.

Function: require-db ()

Load the DB.

Package

overlord/db.

Source

file-type.lisp.

Function: reset-global-state ()

Restore Overlord’s global state to its value when first loaded.

This is intended to be the practical equivalent of quitting Lisp and reloading: it completely resets Overlord’s internal state.

Note that this does not reset *just* Overlord’s state. It also resets a number of Lisp global variables to their default values.

Package

overlord/global-state.

Source

file-type.lisp.

Function: resolve-file (file &key base)
Package

overlord/base.

Source

file-type.lisp.

Function: resolve-package (package-designator)

Like ‘find-package’, but make sure the package is resolved in absolute terms even if the Lisp implementation supports local package nicknames.

Package

overlord/util.

Source

file-type.lisp.

Function: resolved-file (path meta)
Package

overlord/stamp.

Source

file-type.lisp.

Function: return-token* (token)

Return TOKEN to the current build environment.

Package

overlord/build-env.

Source

file-type.lisp.

Function: round-down-to-nearest-second (ts)
Package

overlord/stamp.

Source

file-type.lisp.

Function: run (target &optional system-name)

Entry point for scripts.

Package

overlord/target.

Source

file-type.lisp.

Function: save-database ()

Save the current database.

Package

overlord/db.

Source

file-type.lisp.

Function: shadow-tree-translate (tree path)

Return a path equivalent to PATH in shadow tree TREE. PATH must be an absolute path.

Package

overlord/cache.

Source

file-type.lisp.

Function: stamp-satisfies-p (new old)

Is stamp NEW practically equivalent to (but not necessarily the same as) OLD?

Package

overlord/stamp.

Source

file-type.lisp.

Function: stamp= (s1 s2)
Package

overlord/stamp.

Source

file-type.lisp.

Function: start-project (directory &rest keys &key target-name depends-on &allow-other-keys)

Initialize a new Overlord project.
If DIRECTORY is relative, it is created as a subdirectory of

Package

overlord/project-system.

Source

file-type.lisp.

Function: string-digest-string (string)
Package

overlord/digest.

Source

file-type.lisp.

Function: strip-directory (pathname)

Return PATHNAME without its directory (or device).

Package

overlord/util.

Source

file-type.lisp.

Function: system-version-oracle (name)
Package

overlord/oracle.

Source

file-type.lisp.

Function: target-exists?/cache (target)

Skip hitting the filesystem to check if a target exists if we already built it.

Package

overlord/build-env.

Source

file-type.lisp.

Function: target-locked-p (target)
Package

overlord/build-env.

Source

file-type.lisp.

Function: (setf target-saved-prereqs) (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Function: (setf target-saved-prereqsne) (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Function: target-stamp/cache (target)

Skip hitting the filesystem to check a target’s stamp if we already built it.

Package

overlord/build-env.

Source

file-type.lisp.

Function: target-table-keys (table)
Package

overlord/target-table.

Source

file-type.lisp.

Function: target-table-len (table)
Package

overlord/target-table.

Source

file-type.lisp.

Function: target-table-member (table key)
Package

overlord/target-table.

Source

file-type.lisp.

Function: (setf target-table-member) (table key)
Package

overlord/target-table.

Source

file-type.lisp.

Function: target-table-ref (table key)
Package

overlord/target-table.

Source

file-type.lisp.

Function: (setf target-table-ref) (table key)
Package

overlord/target-table.

Source

file-type.lisp.

Function: target-table-rem (table key)
Package

overlord/target-table.

Source

file-type.lisp.

Function: target-timestamp= (ts1 ts2)

Is TS1 greater than TS2?

Package

overlord/stamp.

Source

file-type.lisp.

Function: target-tree (target)

Return a list of (target . deps), where each dep is also a target tree.

As a second value, return the non-existent prereqs.

Package

overlord/redo.

Source

file-type.lisp.

Function: task (target thunk script base)
Package

overlord/target.

Source

file-type.lisp.

Function: temp-prereqs (target)
Package

overlord/build-env.

Source

file-type.lisp.

Function: (setf temp-prereqs) (target)
Package

overlord/build-env.

Source

file-type.lisp.

Function: temp-prereqsne (target)
Package

overlord/build-env.

Source

file-type.lisp.

Function: (setf temp-prereqsne) (target)
Package

overlord/build-env.

Source

file-type.lisp.

Function: timestamp-diff (end start)

Return the difference between END and START, two timestamps, in nanoseconds.

Package

overlord/util.

Source

file-type.lisp.

Function: timestamp-newer? (ts1 ts2)

Is TS1 greater than TS2?

Package

overlord/stamp.

Source

file-type.lisp.

Function: unfreeze ()
Package

overlord/freeze.

Source

file-type.lisp.

Function: unload-db ()

Clear the DB out of memory in such a way that it can still be reloaded on demand.

Package

overlord/db.

Source

file-type.lisp.

Function: unregister-worker-special (var)

Stop VAR from being propagated into worker threads.

Package

overlord/specials.

Source

file-type.lisp.

Function: unregister-worker-specials (vars)

Unregister each var in VARS as with ‘unregister-worker-special’.

Package

overlord/specials.

Source

file-type.lisp.

Function: use (&rest targets)

Like ‘use-all’, but variadic.

Package

overlord/target.

Source

file-type.lisp.

Function: use-all (targets)

Like ‘use-all*’, but targets are shuffled.

Package

overlord/target.

Source

file-type.lisp.

Function: use-threads-p ()
Package

overlord/specials.

Source

file-type.lisp.

Function: (setf use-threads-p) ()
Package

overlord/specials.

Source

file-type.lisp.

Function: var-oracle (var)
Package

overlord/oracle.

Source

file-type.lisp.

Function: version-major-version (version)
Package

overlord/util.

Source

file-type.lisp.

Function: worker-specials ()
Package

overlord/specials.

Source

file-type.lisp.

Function: (setf worker-specials) ()
Package

overlord/specials.

Source

file-type.lisp.

Function: wrap-worker-specials (fn)

Return a function suitable for passing to a worker that, that
lexically closes over the current dynamic value of every special that has been registered for propagation to worker threads.

Package

overlord/specials.

Source

file-type.lisp.

Function: write-file-if-changed (data file &key encoding buffer-size)

Write DATA into FILE only if FILE would change. DATA may be a string or a byte vector.

Return T if the file was written to, NIL otherwise.

Package

overlord/util.

Source

file-type.lisp.

Function: write-form-as-file (form file)
Package

overlord/util.

Source

file-type.lisp.


5.1.6 Generic functions

Generic Function: build-script-target (script)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: build-script-target ((script task))
Source

file-type.lisp.

Generic Function: call-with-target-locked (target fn)

Call FN with TARGET locked.

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: call-with-target-locked ((target pathname) fn)
Source

file-type.lisp.

Method: call-with-target-locked ((target delayed-symbol) fn)
Source

file-type.lisp.

Method: call-with-target-locked ((self pattern-ref) fn)
Source

file-type.lisp.

Method: call-with-target-locked ((target file-digest-ref) fn)
Source

file-type.lisp.

Method: call-with-target-locked ((target directory-exists) fn)

Lock the directory (file), not target.

Source

file-type.lisp.

Method: call-with-target-locked ((target impossible-prereq) fn)
Source

file-type.lisp.

Method: call-with-target-locked ((target trivial-prereq) fn)
Source

file-type.lisp.

Method: call-with-target-locked ((target root-target) fn)
Source

file-type.lisp.

Method: call-with-target-locked (target fn)

Make call-with-target-meta-locked the default for call-with-target-locked.

Source

file-type.lisp.

Generic Function: clear-temp-prereqs (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: clear-temp-prereqs (target)
Source

file-type.lisp.

Generic Function: clear-temp-prereqsne (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: clear-temp-prereqsne (target)
Source

file-type.lisp.

Generic Function: delete-target (target)

Delete TARGET, if it can be deleted.

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: delete-target ((target delayed-symbol))
Source

file-type.lisp.

Method: delete-target ((target symbol))
Source

file-type.lisp.

Method: delete-target ((target package))
Source

file-type.lisp.

Method: delete-target ((target directory-exists))
Source

file-type.lisp.

Method: delete-target ((target pathname))
Source

file-type.lisp.

Method: delete-target ((self pattern-ref))
Source

file-type.lisp.

Method: delete-target (target)
Generic Function: hash-friendly? (target)

Can TARGET be used as a key in a EQUAL hash table?

Package

overlord/target-table.

Source

file-type.lisp.

Methods
Method: hash-friendly? ((target impossible-prereq))
Source

file-type.lisp.

Method: hash-friendly? ((target trivial-prereq))
Source

file-type.lisp.

Method: hash-friendly? ((target root-target))
Source

file-type.lisp.

Method: hash-friendly? ((x package))
Method: hash-friendly? ((x symbol))
Method: hash-friendly? ((x pathname))
Method: hash-friendly? (x)
Generic Function: hash-target (target)

Hash TARGET.

Two targets that are equal under ‘target=’ should always have the same hash (though the reverse is not necessarily true).

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: hash-target ((self system-resource))
Source

file-type.lisp.

Method: hash-target ((self pattern-ref))
Source

file-type.lisp.

Method: hash-target ((target file-digest-ref))
Source

file-type.lisp.

Method: hash-target ((target directory-exists))
Source

file-type.lisp.

Method: hash-target ((self ref))
Source

file-type.lisp.

Method: hash-target ((target impossible-prereq))
Source

file-type.lisp.

Method: hash-target ((target trivial-prereq))
Source

file-type.lisp.

Method: hash-target ((target root-target))
Source

file-type.lisp.

Method: hash-target ((self oracle))
Source

file-type.lisp.

Method: hash-target :around (target)
Method: hash-target (target)
Generic Function: merge-input-defaults (pattern inputs)
Package

overlord/target.

Source

file-type.lisp.

Methods
Method: merge-input-defaults ((self unloaded-pattern) inputs)
Method: merge-input-defaults (pattern inputs)
Generic Function: merge-output-defaults (pattern inputs)
Package

overlord/target.

Source

file-type.lisp.

Methods
Method: merge-output-defaults ((self unloaded-pattern) outputs)
Method: merge-output-defaults (pattern inputs)
Generic Function: oracle-answer (oracle)
Package

overlord/oracle.

Source

file-type.lisp.

Methods
Method: oracle-answer ((self function-oracle))
Method: oracle-answer ((self feature-oracle))
Method: oracle-answer ((self dist-version-oracle))
Method: oracle-answer ((self system-version-oracle))
Method: oracle-answer ((self env-oracle))
Method: oracle-answer ((self fixed-question-oracle))
Method: oracle-answer ((self cl-var-oracle))
Method: oracle-answer ((self var-oracle))
Method: oracle-answer :around ((self oracle))
Generic Reader: oracle-question (object)
Package

overlord/oracle.

Methods
Reader Method: oracle-question ((oracle oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

question.

Generic Reader: overlord-error-target (error)
Package

overlord/types.

Source

file-type.lisp.

Methods
Reader Method: overlord-error-target ((condition target-error))
Source

file-type.lisp.

Target Slot

target.

Generic Function: pattern-build (pattern inputs outputs)

Build OUTPUTS from INPUTS according to PATTERN.

Package

overlord/target.

Source

file-type.lisp.

Methods
Method: pattern-build ((self unloaded-pattern) input output)
Generic Function: pattern-name (pattern)
Package

overlord/target.

Source

file-type.lisp.

Methods
Reader Method: pattern-name ((unloaded-pattern unloaded-pattern))

automatically generated reader method

Target Slot

name.

Method: pattern-name ((self pattern))
Method: pattern-name ((pattern symbol))
Method: pattern-name ((pattern delayed-symbol))
Generic Reader: pattern-ref-outputs (object)
Package

overlord/target.

Methods
Reader Method: pattern-ref-outputs ((pattern-ref pattern-ref))

automatically generated reader method

Source

file-type.lisp.

Target Slot

outputs.

Generic Reader: pattern-ref-static-inputs (object)
Package

overlord/target.

Methods
Reader Method: pattern-ref-static-inputs ((pattern-ref pattern-ref))

automatically generated reader method

Source

file-type.lisp.

Target Slot

name.

Generic Reader: pattern.input-defaults (object)
Package

overlord/target.

Methods
Reader Method: pattern.input-defaults ((pattern pattern))

automatically generated reader method

Source

file-type.lisp.

Target Slot

input-defaults.

Generic Reader: pattern.output-defaults (object)
Package

overlord/target.

Methods
Reader Method: pattern.output-defaults ((pattern pattern))

automatically generated reader method

Source

file-type.lisp.

Target Slot

output-defaults.

Generic Function: record-prereq (target)

Record TARGET as a prerequisite of the current parent.

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: record-prereq ((target trivial-prereq))
Source

file-type.lisp.

Method: record-prereq ((target symbol))
Source

file-type.lisp.

Method: record-prereq ((target null))
Source

file-type.lisp.

Method: record-prereq (target)
Source

file-type.lisp.

Generic Function: record-prereqne (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: record-prereqne ((target impossible-prereq))
Source

file-type.lisp.

Method: record-prereqne ((target symbol))
Source

file-type.lisp.

Method: record-prereqne (target)
Source

file-type.lisp.

Generic Function: resolve-target (target &optional base)

Resolve any relative pathnames in TARGET.

TARGET may be returned unchanged if there are no pathnames to resolve, but it must not be mutated. If there are pathnames to resolve, TARGET should be copied.

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: resolve-target ((target pathname) &optional base)
Source

file-type.lisp.

Method: resolve-target ((self pattern-ref) &optional base)
Source

file-type.lisp.

Method: resolve-target ((target file-digest-ref) &optional base)
Source

file-type.lisp.

Method: resolve-target ((target directory-exists) &optional base)
Source

file-type.lisp.

Method: resolve-target (target &optional base)
Generic Function: run-script (task)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: run-script (task)
Source

file-type.lisp.

Generic Function: save-temp-prereqs (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: save-temp-prereqs (target)
Source

file-type.lisp.

Generic Function: save-temp-prereqsne (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: save-temp-prereqsne (target)
Source

file-type.lisp.

Generic Function: saved-prereq-stamp (prereq)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: saved-prereq-stamp (p)
Source

file-type.lisp.

Generic Function: saved-prereq-target (prereq)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: saved-prereq-target (p)
Source

file-type.lisp.

Generic Function: target-build-script (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target-build-script ((target package))
Source

file-type.lisp.

Method: target-build-script ((target symbol))
Source

file-type.lisp.

Method: target-build-script ((target pathname))
Source

file-type.lisp.

Method: target-build-script (target)
Source

file-type.lisp.

Method: target-build-script :around (target)
Source

file-type.lisp.

Method: target-build-script ((self relative-file-target))
Source

file-type.lisp.

Method: target-build-script ((self pattern-ref))
Source

file-type.lisp.

Method: target-build-script ((target file-digest-ref))
Source

file-type.lisp.

Method: target-build-script ((target directory-exists))
Source

file-type.lisp.

Method: target-build-script ((target impossible-prereq))
Source

file-type.lisp.

Method: target-build-script ((target trivial-prereq))
Source

file-type.lisp.

Method: target-build-script ((target root-target))
Source

file-type.lisp.

Generic Function: target-build-time (target)

How long (in internal time units) a target took to build.

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target-build-time ((target pathname))
Source

file-type.lisp.

Method: target-build-time ((target delayed-symbol))
Source

file-type.lisp.

Method: target-build-time ((self relative-file-target))
Source

file-type.lisp.

Method: target-build-time ((self pattern-ref))
Source

file-type.lisp.

Method: target-build-time ((target file-digest-ref))
Source

file-type.lisp.

Method: target-build-time ((target directory-exists))
Source

file-type.lisp.

Method: target-build-time ((target impossible-prereq))
Source

file-type.lisp.

Method: target-build-time ((target trivial-prereq))
Source

file-type.lisp.

Method: target-build-time (target)
Source

file-type.lisp.

Generic Function: (setf target-build-time) (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: (setf target-build-time) ((target delayed-symbol))
Source

file-type.lisp.

Method: (setf target-build-time) ((target directory-exists))
Source

file-type.lisp.

Method: (setf target-build-time) ((target impossible-prereq))
Source

file-type.lisp.

Method: (setf target-build-time) ((target trivial-prereq))
Source

file-type.lisp.

Method: (setf target-build-time) (target)
Source

file-type.lisp.

Generic Function: target-exists? (target)

Does TARGET exists?

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target-exists? ((target pathname))
Source

file-type.lisp.

Method: target-exists? ((target delayed-symbol))
Source

file-type.lisp.

Method: target-exists? ((target symbol))
Source

file-type.lisp.

Method: target-exists? ((target package))
Source

file-type.lisp.

Method: target-exists? ((self relative-file-target))
Source

file-type.lisp.

Method: target-exists? ((target file-digest-ref))
Source

file-type.lisp.

Method: target-exists? ((target directory-exists))
Source

file-type.lisp.

Method: target-exists? ((target impossible-prereq))
Source

file-type.lisp.

Method: target-exists? ((target trivial-prereq))
Source

file-type.lisp.

Method: target-exists? ((target root-target))
Source

file-type.lisp.

Method: target-exists? ((self function-oracle))
Source

file-type.lisp.

Method: target-exists? ((self feature-oracle))
Source

file-type.lisp.

Method: target-exists? ((self dist-version-oracle))
Source

file-type.lisp.

Method: target-exists? ((self system-version-oracle))
Source

file-type.lisp.

Method: target-exists? ((self env-oracle))
Source

file-type.lisp.

Method: target-exists? ((self fixed-question-oracle))
Source

file-type.lisp.

Method: target-exists? ((self cl-var-oracle))
Source

file-type.lisp.

Method: target-exists? ((self var-oracle))
Source

file-type.lisp.

Method: target-exists? :around (target)
Method: target-exists? (target)
Generic Function: target-in-db? (target)

Has TARGET been built before?

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target-in-db? ((target impossible-prereq))
Source

file-type.lisp.

Method: target-in-db? ((target trivial-prereq))
Source

file-type.lisp.

Method: target-in-db? ((target root-target))
Source

file-type.lisp.

Method: target-in-db? ((target package))
Source

file-type.lisp.

Method: target-in-db? (target)
Source

file-type.lisp.

Generic Function: target-node-label (target)

Return a string suitable for logging (for humans) what target is being built.

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target-node-label ((target package))
Source

file-type.lisp.

Method: target-node-label ((target delayed-symbol))
Source

file-type.lisp.

Method: target-node-label ((target symbol))
Source

file-type.lisp.

Method: target-node-label ((target pathname))
Source

file-type.lisp.

Method: target-node-label ((self system-resource))
Source

file-type.lisp.

Method: target-node-label ((self pattern-ref))
Source

file-type.lisp.

Method: target-node-label ((target file-digest-ref))
Source

file-type.lisp.

Method: target-node-label ((target directory-exists))
Source

file-type.lisp.

Method: target-node-label ((target impossible-prereq))
Source

file-type.lisp.

Method: target-node-label ((target trivial-prereq))
Source

file-type.lisp.

Method: target-node-label ((target root-target))
Source

file-type.lisp.

Method: target-node-label ((self system-version-oracle))
Source

file-type.lisp.

Method: target-node-label ((self oracle))
Source

file-type.lisp.

Method: target-node-label :around (target)
Method: target-node-label (target)
Generic Function: target-saved-prereqs (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target-saved-prereqs ((pkg package))
Source

file-type.lisp.

Method: target-saved-prereqs ((target root-target))
Source

file-type.lisp.

Method: target-saved-prereqs (target)
Source

file-type.lisp.

Generic Function: target-saved-prereqsne (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target-saved-prereqsne (target)
Source

file-type.lisp.

Generic Function: target-stamp (target)

Return the stamp of TARGET.

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target-stamp ((target pathname))
Source

file-type.lisp.

Method: target-stamp ((self relative-file-target))
Source

file-type.lisp.

Method: target-stamp ((self pattern-ref))
Source

file-type.lisp.

Method: target-stamp ((target file-digest-ref))
Source

file-type.lisp.

Method: target-stamp ((self env-oracle))
Source

file-type.lisp.

Method: target-stamp ((self oracle))
Source

file-type.lisp.

Method: target-stamp (target)
Generic Function: target-static-prereqs (target)
Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target-static-prereqs ((target package))
Source

file-type.lisp.

Reader Method: target-static-prereqs ((pattern-ref pattern-ref))

automatically generated reader method

Source

file-type.lisp.

Target Slot

name.

Method: target-static-prereqs ((target root-target))
Source

file-type.lisp.

Method: target-static-prereqs (target)
Generic Function: target-timestamp (target)

Return the timestamp of TARGET.

Package

overlord/stamp.

Source

file-type.lisp.

Methods
Method: target-timestamp ((target pathname))
Source

file-type.lisp.

Method: target-timestamp ((target delayed-symbol))
Source

file-type.lisp.

Method: target-timestamp ((target symbol))
Source

file-type.lisp.

Method: target-timestamp ((target package))
Source

file-type.lisp.

Method: target-timestamp ((target file-digest-ref))
Source

file-type.lisp.

Method: target-timestamp ((target directory-exists))
Source

file-type.lisp.

Method: target-timestamp ((target impossible-prereq))
Source

file-type.lisp.

Method: target-timestamp ((target trivial-prereq))
Source

file-type.lisp.

Method: target-timestamp ((target root-target))
Source

file-type.lisp.

Method: target-timestamp (target)
Generic Function: (setf target-timestamp) (target)

Set the timestamp of TARGET.
Not every target type supports this.

Package

overlord/stamp.

Source

file-type.lisp.

Methods
Method: (setf target-timestamp) ((target pathname))
Source

file-type.lisp.

Method: (setf target-timestamp) ((target symbol))
Source

file-type.lisp.

Method: (setf target-timestamp) ((target delayed-symbol))
Source

file-type.lisp.

Method: (setf target-timestamp) :before (target)
Source

file-type.lisp.

Method: (setf target-timestamp) ((target file-digest-ref))
Source

file-type.lisp.

Method: (setf target-timestamp) ((target directory-exists))
Source

file-type.lisp.

Method: (setf target-timestamp) (target)
Generic Function: target= (target1 target2)

Are TARGET1 and TARGET2 the same?

Package

overlord/target-protocol.

Source

file-type.lisp.

Methods
Method: target= ((x pathname) (y pathname))
Source

file-type.lisp.

Method: target= ((x delayed-symbol) (y delayed-symbol))
Source

file-type.lisp.

Method: target= ((x symbol) (y delayed-symbol))
Source

file-type.lisp.

Method: target= ((x delayed-symbol) (y symbol))
Source

file-type.lisp.

Method: target= (x (y delayed-symbol))
Source

file-type.lisp.

Method: target= ((x delayed-symbol) y)
Source

file-type.lisp.

Method: target= ((self relative-file-target) (other relative-file-target))
Source

file-type.lisp.

Method: target= ((self pattern-ref) (other pattern-ref))
Source

file-type.lisp.

Method: target= ((target file-digest-ref) (other file-digest-ref))
Source

file-type.lisp.

Method: target= ((target directory-exists) (y directory-exists))
Source

file-type.lisp.

Method: target= ((self feature-oracle) (other feature-oracle))
Source

file-type.lisp.

Method: target= ((self dist-version-oracle) (other dist-version-oracle))
Source

file-type.lisp.

Method: target= ((self system-version-oracle) (other system-version-oracle))
Source

file-type.lisp.

Method: target= ((self env-oracle) (other env-oracle))
Source

file-type.lisp.

Method: target= ((self readtable-oracle) (other readtable-oracle))
Source

file-type.lisp.

Method: target= ((self package-oracle) (other package-oracle))
Source

file-type.lisp.

Method: target= ((self fixed-question-oracle) (other fixed-question-oracle))
Source

file-type.lisp.

Method: target= ((self cl-var-oracle) (other cl-var-oracle))
Source

file-type.lisp.

Method: target= ((self var-oracle) (other var-oracle))
Source

file-type.lisp.

Method: target= ((self oracle) (other oracle))
Source

file-type.lisp.

Method: target= (t1 t2)
Method: target= :around (t1 t2)

5.1.7 Standalone methods

Method: compare ((s symbol) (d delayed-symbol))
Package

fset.

Source

file-type.lisp.

Method: compare ((d delayed-symbol) (s symbol))
Package

fset.

Source

file-type.lisp.

Method: compare ((ds1 delayed-symbol) (ds2 delayed-symbol))
Package

fset.

Source

file-type.lisp.

Method: compare ((self oracle) (other oracle))
Package

fset.

Source

file-type.lisp.

Method: compare ((x pattern) (y pattern))
Package

fset.

Source

file-type.lisp.

Method: compare ((self pattern-ref) (other pattern-ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b null))
Package

fset.

Source

file-type.lisp.

Method: compare ((a null) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b real))
Package

fset.

Source

file-type.lisp.

Method: compare ((a real) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b complex))
Package

fset.

Source

file-type.lisp.

Method: compare ((a complex) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b character))
Package

fset.

Source

file-type.lisp.

Method: compare ((a character) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b symbol))
Package

fset.

Source

file-type.lisp.

Method: compare ((a symbol) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b string))
Package

fset.

Source

file-type.lisp.

Method: compare ((a string) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b vector))
Package

fset.

Source

file-type.lisp.

Method: compare ((a vector) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b list))
Package

fset.

Source

file-type.lisp.

Method: compare ((a list) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b package))
Package

fset.

Source

file-type.lisp.

Method: compare ((a package) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b pathname))
Package

fset.

Source

file-type.lisp.

Method: compare ((a pathname) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b set))
Package

fset.

Source

file-type.lisp.

Method: compare ((a set) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b bag))
Package

fset.

Source

file-type.lisp.

Method: compare ((a bag) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b map))
Package

fset.

Source

file-type.lisp.

Method: compare ((a map) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b seq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a seq) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b tuple))
Package

fset.

Source

file-type.lisp.

Method: compare ((a tuple) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b identity-ordering-mixin))
Package

fset.

Source

file-type.lisp.

Method: compare ((a identity-ordering-mixin) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b relation))
Package

fset.

Source

file-type.lisp.

Method: compare ((a relation) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((a ref) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((self ref) (other ref))
Package

fset.

Source

file-type.lisp.

Method: compare ((x resolved-file) (y resolved-file))
Package

fset.

Source

file-type.lisp.

Method: compare ((x file-hash) (y file-hash))
Package

fset.

Source

file-type.lisp.

Method: compare ((x file-meta) (y file-meta))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b null))
Package

fset.

Source

file-type.lisp.

Method: compare ((a null) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b real))
Package

fset.

Source

file-type.lisp.

Method: compare ((a real) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b complex))
Package

fset.

Source

file-type.lisp.

Method: compare ((a complex) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b character))
Package

fset.

Source

file-type.lisp.

Method: compare ((a character) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b symbol))
Package

fset.

Source

file-type.lisp.

Method: compare ((a symbol) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b string))
Package

fset.

Source

file-type.lisp.

Method: compare ((a string) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b vector))
Package

fset.

Source

file-type.lisp.

Method: compare ((a vector) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b list))
Package

fset.

Source

file-type.lisp.

Method: compare ((a list) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b package))
Package

fset.

Source

file-type.lisp.

Method: compare ((a package) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b pathname))
Package

fset.

Source

file-type.lisp.

Method: compare ((a pathname) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b set))
Package

fset.

Source

file-type.lisp.

Method: compare ((a set) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b bag))
Package

fset.

Source

file-type.lisp.

Method: compare ((a bag) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b map))
Package

fset.

Source

file-type.lisp.

Method: compare ((a map) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b seq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a seq) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b tuple))
Package

fset.

Source

file-type.lisp.

Method: compare ((a tuple) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b identity-ordering-mixin))
Package

fset.

Source

file-type.lisp.

Method: compare ((a identity-ordering-mixin) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a root-target) (b relation))
Package

fset.

Source

file-type.lisp.

Method: compare ((a relation) (b root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((x root-target) (y root-target))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b null))
Package

fset.

Source

file-type.lisp.

Method: compare ((a null) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b real))
Package

fset.

Source

file-type.lisp.

Method: compare ((a real) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b complex))
Package

fset.

Source

file-type.lisp.

Method: compare ((a complex) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b character))
Package

fset.

Source

file-type.lisp.

Method: compare ((a character) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b symbol))
Package

fset.

Source

file-type.lisp.

Method: compare ((a symbol) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b string))
Package

fset.

Source

file-type.lisp.

Method: compare ((a string) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b vector))
Package

fset.

Source

file-type.lisp.

Method: compare ((a vector) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b list))
Package

fset.

Source

file-type.lisp.

Method: compare ((a list) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b package))
Package

fset.

Source

file-type.lisp.

Method: compare ((a package) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b pathname))
Package

fset.

Source

file-type.lisp.

Method: compare ((a pathname) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b set))
Package

fset.

Source

file-type.lisp.

Method: compare ((a set) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b bag))
Package

fset.

Source

file-type.lisp.

Method: compare ((a bag) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b map))
Package

fset.

Source

file-type.lisp.

Method: compare ((a map) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b seq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a seq) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b tuple))
Package

fset.

Source

file-type.lisp.

Method: compare ((a tuple) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b identity-ordering-mixin))
Package

fset.

Source

file-type.lisp.

Method: compare ((a identity-ordering-mixin) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b relation))
Package

fset.

Source

file-type.lisp.

Method: compare ((a relation) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a trivial-prereq) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((x trivial-prereq) (y trivial-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b null))
Package

fset.

Source

file-type.lisp.

Method: compare ((a null) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b real))
Package

fset.

Source

file-type.lisp.

Method: compare ((a real) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b complex))
Package

fset.

Source

file-type.lisp.

Method: compare ((a complex) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b character))
Package

fset.

Source

file-type.lisp.

Method: compare ((a character) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b symbol))
Package

fset.

Source

file-type.lisp.

Method: compare ((a symbol) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b string))
Package

fset.

Source

file-type.lisp.

Method: compare ((a string) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b vector))
Package

fset.

Source

file-type.lisp.

Method: compare ((a vector) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b list))
Package

fset.

Source

file-type.lisp.

Method: compare ((a list) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b package))
Package

fset.

Source

file-type.lisp.

Method: compare ((a package) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b pathname))
Package

fset.

Source

file-type.lisp.

Method: compare ((a pathname) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b set))
Package

fset.

Source

file-type.lisp.

Method: compare ((a set) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b bag))
Package

fset.

Source

file-type.lisp.

Method: compare ((a bag) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b map))
Package

fset.

Source

file-type.lisp.

Method: compare ((a map) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b seq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a seq) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b tuple))
Package

fset.

Source

file-type.lisp.

Method: compare ((a tuple) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b identity-ordering-mixin))
Package

fset.

Source

file-type.lisp.

Method: compare ((a identity-ordering-mixin) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((a impossible-prereq) (b relation))
Package

fset.

Source

file-type.lisp.

Method: compare ((a relation) (b impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: compare ((x impossible-prereq) (y impossible-prereq))
Package

fset.

Source

file-type.lisp.

Method: initialize-instance :after ((self var-oracle) &key var)
Source

file-type.lisp.

Method: initialize-instance :after ((self cl-var-oracle) &key)
Source

file-type.lisp.

Method: initialize-instance :after ((self pattern) &key)
Source

file-type.lisp.

Method: initialize-instance :after ((self pattern-ref) &key merge)
Source

file-type.lisp.

Method: initialize-instance :after ((self ref) &key &allow-other-keys)
Source

file-type.lisp.

Method: initialize-instance :after ((self threaded-build-env) &key)
Source

file-type.lisp.

Method: make-load-form ((self delayed-symbol) &optional env)
Source

file-type.lisp.

Method: make-load-form ((self task) &optional env)
Source

file-type.lisp.

Method: make-load-form ((self oracle) &optional env)
Source

file-type.lisp.

Method: make-load-form ((self task) &optional env)
Source

file-type.lisp.

Method: make-load-form ((self externalizable) &optional env)
Source

file-type.lisp.

Method: make-load-form ((self resolved-file) &optional env)
Source

file-type.lisp.

Method: make-load-form ((x far-future) &optional env)
Source

file-type.lisp.

Method: make-load-form ((self file-hash) &optional env)
Source

file-type.lisp.

Method: make-load-form ((self file-meta) &optional env)
Source

file-type.lisp.

Method: make-load-form ((x never) &optional env)
Source

file-type.lisp.

Method: make-load-form ((x root-target) &optional env)
Source

file-type.lisp.

Method: make-load-form ((x trivial-prereq) &optional env)
Source

file-type.lisp.

Method: make-load-form ((x impossible-prereq) &optional env)
Source

file-type.lisp.

Method: make-load-form ((x tombstone) &optional env)
Source

file-type.lisp.

Reader Method: monitor ((build-env build-env))

automatically generated reader method

Package

serapeum.

Source

file-type.lisp.

Target Slot

lock.

Method: operate :after ((op build-op) (system overlord-project-system) &key)
Package

asdf/operate.

Source

file-type.lisp.

Method: print-object :after ((x overlord-condition) stream)
Source

file-type.lisp.

Method: print-object ((object delayed-symbol) stream)
Source

file-type.lisp.

Method: print-object ((object task) stream)
Source

file-type.lisp.

Method: print-object ((self function-oracle) stream)
Source

file-type.lisp.

Method: print-object ((self oracle) stream)
Source

file-type.lisp.

Method: print-object ((self target-table) stream)
Source

file-type.lisp.

Method: print-object ((object task) stream)
Source

file-type.lisp.

Method: print-object ((self pattern-ref) stream)
Source

file-type.lisp.

Method: print-object ((target directory-exists) stream)
Source

file-type.lisp.

Method: print-object ((self system-resource) stream)
Source

file-type.lisp.

Method: print-object ((target file-digest-ref) stream)
Source

file-type.lisp.

Method: print-object ((self ref) stream)
Source

file-type.lisp.

Method: print-object ((self unloaded-pattern) stream)
Source

file-type.lisp.

Method: print-object ((self build-env) stream)
Source

file-type.lisp.

Method: print-object ((object resolved-file) stream)
Source

file-type.lisp.

Method: print-object ((object far-future) stream)
Source

file-type.lisp.

Method: print-object ((object file-hash) stream)
Source

file-type.lisp.

Method: print-object ((object file-meta) stream)
Source

file-type.lisp.

Method: print-object ((object never) stream)
Source

file-type.lisp.

Method: print-object ((object root-target) stream)
Source

file-type.lisp.

Method: print-object ((object trivial-prereq) stream)
Source

file-type.lisp.

Method: print-object ((object impossible-prereq) stream)
Source

file-type.lisp.

Method: print-object ((db db) stream)
Source

file-type.lisp.

Method: print-object ((object tombstone) stream)
Source

file-type.lisp.

Method: slot-unbound (class (self var-oracle) (slot-name (eql overlord/oracle::sym)))
Source

file-type.lisp.


5.1.8 Conditions

Condition: missing-script
Package

overlord/redo.

Source

file-type.lisp.

Direct superclasses

target-error.

Condition: overlord-condition
Package

overlord/types.

Source

file-type.lisp.

Direct superclasses

condition.

Direct subclasses
Direct methods

print-object.

Condition: overlord-error
Package

overlord/types.

Source

file-type.lisp.

Direct superclasses
Direct subclasses
Condition: overlord-warning
Package

overlord/types.

Source

file-type.lisp.

Direct superclasses
Condition: recursive-dependency
Package

overlord/redo.

Source

file-type.lisp.

Direct superclasses

target-error.


Next: , Previous: , Up: Public Interface   [Contents][Index]

5.1.9 Structures

Structure: delayed-symbol
Package

overlord/types.

Source

file-type.lisp.

Direct superclasses

%read-only-struct.

Direct methods
Direct slots
Slot: package-name
Package

common-lisp.

Type

string

Initform

(alexandria:required-argument (quote package-name))

Readers

delayed-symbol-package-name.

Writers

This slot is read-only.

Slot: symbol-name
Package

common-lisp.

Type

string

Initform

(alexandria:required-argument (quote symbol-name))

Readers

delayed-symbol-symbol-name.

Writers

This slot is read-only.

Structure: far-future
Package

overlord/stamp.

Source

file-type.lisp.

Direct superclasses

%unit.

Direct methods
Structure: file-hash

The hash of a file.
We store both the size and the hash of the file to further reduce the already negligible possibility of a collision.

Package

overlord/stamp.

Source

file-type.lisp.

Direct superclasses

%read-only-struct.

Direct methods
Direct slots
Slot: size
Type

(integer 0 *)

Initform

(alexandria:required-argument (quote overlord/stamp::size))

Readers

file-hash-size.

Writers

This slot is read-only.

Slot: hash
Type

string

Initform

(alexandria:required-argument (quote overlord/stamp::hash))

Readers

file-hash-hash.

Writers

This slot is read-only.

Structure: file-meta

Metadata to track whether a file has changed.

Package

overlord/stamp.

Source

file-type.lisp.

Direct superclasses

%read-only-struct.

Direct methods
Direct slots
Slot: size
Type

(integer 0 *)

Initform

(alexandria:required-argument (quote overlord/stamp::size))

Readers

file-meta-size.

Writers

This slot is read-only.

Slot: timestamp
Package

local-time.

Type

overlord/stamp:target-timestamp

Initform

(alexandria:required-argument (quote local-time:timestamp))

Readers

file-meta-timestamp.

Writers

This slot is read-only.

Structure: impossible-prereq

The target that is always out of date.

Package

overlord/target-protocol.

Source

file-type.lisp.

Direct superclasses

%unit.

Direct methods
Structure: never
Package

overlord/stamp.

Source

file-type.lisp.

Direct superclasses

%unit.

Direct methods
Structure: resolved-file

A resolved file.

This enables a relative file as a target to register as changed if the file it resolves to changes.

This is intended for cases (like the ‘system-resource’ target class) where ‘redo-ifcreate’ isn’t enough to detect when a resource has been shadowed.

Package

overlord/stamp.

Source

file-type.lisp.

Direct superclasses

%read-only-struct.

Direct methods
Direct slots
Slot: path
Type

serapeum:file-pathname

Initform

(alexandria:required-argument (quote overlord/stamp::path))

Readers

resolved-file-path.

Writers

This slot is read-only.

Slot: meta
Type

(or overlord/stamp:file-meta overlord/stamp:file-hash)

Initform

(alexandria:required-argument (quote overlord/stamp::meta))

Readers

resolved-file-meta.

Writers

This slot is read-only.

Structure: root-target

The root target.
Building this builds all targets defined in this session (not all targets in the database).

Package

overlord/target-protocol.

Source

file-type.lisp.

Direct superclasses

%unit.

Direct methods
Structure: target-table

A table for storing targets.
This wraps an Fset map (for custom target types) and a hash table (for built-in types) and keeps them in sync.

Package

overlord/target-table.

Source

file-type.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: map
Package

common-lisp.

Type

fset:map

Initform

(fset:empty-map)

Readers

target-table.map.

Writers

(setf target-table.map).

Slot: hash-table
Package

common-lisp.

Type

hash-table

Initform

(make-hash-table :test (quote equal) :size 1024)

Readers

target-table.hash-table.

Writers

This slot is read-only.

Slot: lock
Initform

(bordeaux-threads:make-recursive-lock)

Readers

target-table.lock.

Writers

This slot is read-only.

Slot: synchronized
Package

serapeum.

Type

boolean

Readers

target-table.synchronized.

Writers

This slot is read-only.

Structure: task

A task.

Package

overlord/target.

Source

file-type.lisp.

Direct superclasses

%read-only-struct.

Direct methods
Direct slots
Slot: target
Type

overlord/target::target

Initform

(alexandria:required-argument (quote overlord/target::target))

Readers

task-target.

Writers

This slot is read-only.

Slot: thunk
Type

function

Initform

(alexandria:required-argument (quote overlord/target::thunk))

Readers

task-thunk.

Writers

This slot is read-only.

Slot: script
Type

overlord/target::target

Initform

(alexandria:required-argument (quote overlord/target::script))

Readers

task-script.

Writers

This slot is read-only.

Slot: base
Package

overlord/base.

Type

(or null serapeum:directory-pathname)

Initform

(alexandria:required-argument (quote overlord/base:base))

Readers

task-base.

Writers

This slot is read-only.

Structure: trivial-prereq

The target that is never out of date.

Package

overlord/target-protocol.

Source

file-type.lisp.

Direct superclasses

%unit.

Direct methods

Next: , Previous: , Up: Public Interface   [Contents][Index]

5.1.10 Classes

Class: directory-exists

A reference to a directory.

Package

overlord/target.

Source

file-type.lisp.

Direct superclasses

ref.

Direct methods
Direct slots
Slot: name
Type

(and serapeum:absolute-pathname serapeum:directory-pathname)

Initargs

:path

Readers

directory-exists.path.

Writers

This slot is read-only.

Class: dist-version-oracle

An oracle that reports the current version of a Quicklisp dist.

By default this is the Quicklisp dist itself.

Package

overlord/oracle.

Source

file-type.lisp.

Direct superclasses

oracle.

Direct methods
Direct Default Initargs
InitargValue
:namequicklisp
Direct slots
Slot: question
Type

string

Initargs

:name

Readers

dist-version-oracle.name.

Writers

This slot is read-only.

Class: env-oracle

Oracle that wraps an environment variable.

Package

overlord/oracle.

Source

file-type.lisp.

Direct superclasses

oracle.

Direct methods
Direct Default Initargs
InitargValue
:name(required-argument name)
Direct slots
Slot: question
Type

string

Initargs

:name

Readers

env-oracle.name.

Writers

This slot is read-only.

Class: feature-oracle

An oracle that wraps whether a particular keyword is present in ‘*features*’.

Package

overlord/oracle.

Source

file-type.lisp.

Direct superclasses

oracle.

Direct methods
Direct slots
Slot: question
Type

keyword

Initargs

:feature

Readers

feature-oracle.feature.

Writers

This slot is read-only.

Class: function-oracle

An oracle for a user-supplied function.

The function must be supplied as a symbol.

Package

overlord/oracle.

Source

file-type.lisp.

Direct superclasses

oracle.

Direct methods
Direct Default Initargs
InitargValue
:argsnil
Direct slots
Slot: question
Type

overlord/types:delayed-symbol

Initargs

:function

Readers

function-oracle.delayed-symbol.

Writers

This slot is read-only.

Slot: args
Type

list

Initargs

:args

Readers

function-oracle.args.

Writers

This slot is read-only.

Class: oracle

Oracles let you depend on aspects of the Lisp or OS
environment.

When you depend on an oracle, Overlord remembers the answer the oracle gave at the time of the dependency (or the lack of an answer, if the oracle was unbound). If that answer changes, then any targets that depend on the oracle are considered out of date.

Package

overlord/oracle.

Source

file-type.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: question
Initargs

:question

Readers

oracle-question.

Writers

This slot is read-only.

Class: overlord-project-system
Package

overlord/project-system.

Source

file-type.lisp.

Direct superclasses

system.

Direct methods
Direct slots
Slot: target-name
Initform

(string (quote overlord/project-system::all))

Initargs

:target-name

Readers

project-system-target-name.

Writers

This slot is read-only.

Class: pattern

A file-to-file build pattern.

Package

overlord/target.

Source

file-type.lisp.

Direct superclasses

externalizable.

Direct subclasses

unloaded-pattern.

Direct methods
Direct Default Initargs
InitargValue
:input-defaultsnil
:output-defaultsnil
:scripttrivial-prereq
Direct slots
Slot: input-defaults
Type

(overlord/types:list-of overlord/target::pathname)

Initargs

:input-defaults

Readers

pattern.input-defaults.

Writers

This slot is read-only.

Slot: output-defaults
Type

(overlord/types:list-of overlord/target::pathname)

Initargs

:output-defaults

Readers

pattern.output-defaults.

Writers

This slot is read-only.

Slot: script
Type

overlord/target::target

Initargs

:script

Readers

pattern.script.

Writers

This slot is read-only.

Class: pattern-ref
Package

overlord/target.

Source

file-type.lisp.

Direct superclasses

ref.

Direct methods
Direct Default Initargs
InitargValue
:inputs(quote nil)
:outputs(quote nil)
Direct slots
Slot: pattern
Type

(or symbol standard-object overlord/types:delayed-symbol)

Initargs

:pattern

Readers

pattern-ref-pattern.

Writers

This slot is read-only.

Slot: name
Type

(overlord/types:list-of overlord/target::pathname)

Initargs

:inputs

Readers
Writers

This slot is read-only.

Slot: outputs
Type

(overlord/types:list-of overlord/target::pathname)

Initargs

:outputs

Readers

pattern-ref-outputs.

Writers

This slot is read-only.

Slot: base
Package

overlord/base.

Type

overlord/target::pathname

Initform

(overlord/base:base)

Readers

pattern-ref-base.

Writers

This slot is read-only.

Class: system-version-oracle

Using a system version oracle, you can depend on
the major version of an ASDF system.

Note that if the system is not known to ASDF, then the version recorded is simply nil.

Package

overlord/oracle.

Source

file-type.lisp.

Direct superclasses

oracle.

Direct methods
Direct slots
Slot: question
Type

string

Initargs

:name

Readers

system-version-oracle.system-name.

Writers

This slot is read-only.

Class: var-oracle

Oracle that wraps a special variable.

Oracles for Lisp variables are intended to allow a target to record the fact that it depends on some aspect of the compile time or read time environment (e.g. ‘*read-base*’) and should be considered out of date if that changes.

Package

overlord/oracle.

Source

file-type.lisp.

Direct superclasses

oracle.

Direct methods
Direct Default Initargs
InitargValue
:var(required-argument var)
Direct slots
Slot: question
Type

overlord/types:delayed-symbol

Initargs

:var

Readers

var-oracle.var.

Writers

This slot is read-only.

Slot: sym

Cache for the resolved symbol.

Type

symbol


Previous: , Up: Public Interface   [Contents][Index]

5.1.11 Types

Type: asdf-system ()
Package

overlord/asdf.

Source

file-type.lisp.

Type: case-mode ()

Possible values for a readtable’s case mode.

Package

overlord/types.

Source

file-type.lisp.

Type: cl-symbol ()
Package

overlord/types.

Source

file-type.lisp.

Type: db-version ()
Package

overlord/types.

Source

file-type.lisp.

Type: freeze-policy ()
Package

overlord/freeze.

Source

file-type.lisp.

Type: hash-code ()
Package

overlord/types.

Source

file-type.lisp.

Type: list-of (a)
Package

overlord/types.

Source

file-type.lisp.

Type: oracle-answer ()
Package

overlord/oracle.

Source

file-type.lisp.

Type: package-designator ()
Package

overlord/types.

Source

file-type.lisp.

Type: pathname-designator ()
Package

overlord/types.

Source

file-type.lisp.

Type: plist ()
Package

overlord/types.

Source

file-type.lisp.

Type: stamp ()
Package

overlord/stamp.

Source

file-type.lisp.

Type: tame-pathname ()
Package

overlord/types.

Source

file-type.lisp.

Type: target-timestamp ()

Possible formats for the timestamp of a target.

Package

overlord/stamp.

Source

file-type.lisp.

Type: temporary-file ()
Package

overlord/types.

Source

file-type.lisp.

Type: universal-time ()
Package

overlord/types.

Source

file-type.lisp.


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Constants

Constant: +storage-for-deflex-var-build-time+
Package

overlord/target.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-far-future+
Package

overlord/stamp.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-impossible-prereq+
Package

overlord/target-protocol.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-never+
Package

overlord/stamp.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-nonexist+
Package

overlord/target.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-prereqs+
Package

overlord/target.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-prereqsne+
Package

overlord/target.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-quicklisp+
Package

overlord/oracle.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-root-target+
Package

overlord/target-protocol.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-stamp+
Package

overlord/target.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-thread-count-cap+
Package

overlord/kernel.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-tombstone+
Package

overlord/db.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-trivial-prereq+
Package

overlord/target-protocol.

Source

file-type.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.2 Special variables

Special Variable: *build-env*

Environment for the current build.

Package

overlord/build-env.

Source

file-type.lisp.

Special Variable: *build-id*
Package

overlord/build-env.

Source

file-type.lisp.

Special Variable: *db*

The database.

Package

overlord/db.

Source

file-type.lisp.

Special Variable: *freeze-fmakunbound-hit-list*
Package

overlord/freeze.

Source

file-type.lisp.

Special Variable: *freeze-policy*
Package

overlord/freeze.

Source

file-type.lisp.

Special Variable: *frozen*

Is the build system frozen?

Package

overlord/freeze.

Source

file-type.lisp.

Special Variable: *global-state*
Package

overlord/global-state.

Source

file-type.lisp.

Special Variable: *initial-pathname-defaults*
Package

overlord/global-state.

Source

file-type.lisp.

Special Variable: *initial-working-dir*
Package

overlord/global-state.

Source

file-type.lisp.

Special Variable: *meta-kernel*

Lparallel kernel for fetching target metadata.

Package

overlord/kernel.

Source

file-type.lisp.

Special Variable: *package-bases*
Package

overlord/base.

Source

file-type.lisp.

Special Variable: *prereq-packages*
Package

overlord/target.

Source

file-type.lisp.

Special Variable: *save-pending*

Is there a save pending?

Package

overlord/db.

Source

file-type.lisp.

Special Variable: *scripts*

Set of registered scripts.

Package

overlord/target.

Source

file-type.lisp.

Special Variable: *symbol-timestamps*
Package

overlord/target.

Source

file-type.lisp.

Special Variable: *tasks*
Package

overlord/target.

Source

file-type.lisp.

Special Variable: *top-level-targets*
Package

overlord/target.

Source

file-type.lisp.

Special Variable: *use-threads*

Whether to allow parallelism.

Package

overlord/specials.

Source

file-type.lisp.

Special Variable: *worker-specials*

List of special variables that should be propagated into worker threads.

Package

overlord/specials.

Source

file-type.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.3 Symbol macros

Symbol Macro: build-time
Package

overlord/target.

Source

file-type.lisp.

Symbol Macro: db-readtable
Package

overlord/db.

Source

file-type.lisp.

Symbol Macro: meta-kernel-size
Package

overlord/kernel.

Source

file-type.lisp.

Symbol Macro: no-log-data
Package

overlord/db.

Source

file-type.lisp.

Symbol Macro: nonexist
Package

overlord/target.

Source

file-type.lisp.

Symbol Macro: prereqs
Package

overlord/target.

Source

file-type.lisp.

Symbol Macro: prereqsne
Package

overlord/target.

Source

file-type.lisp.

Symbol Macro: quicklisp
Package

overlord/oracle.

Source

file-type.lisp.

Symbol Macro: template-directory
Package

overlord/project-system.

Source

file-type.lisp.

Symbol Macro: thread-count-cap
Package

overlord/kernel.

Source

file-type.lisp.

Symbol Macro: tombstone
Package

overlord/db.

Source

file-type.lisp.

Symbol Macro: top-level-target-lock
Package

overlord/target.

Source

file-type.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.4 Macros

Macro: cond (&body clauses)

Like ‘cl:cond’, but require a default clause.

Package

overlord/target.

Source

file-type.lisp.

Macro: defclass (name supers &body slots)

Like ‘cl:defclass’, but try to force slot types to be checked. Works for SBCL, at least.

Package

overlord/target.

Source

file-type.lisp.

Macro: define-script-for (name &body body)
Package

overlord/target.

Source

file-type.lisp.

Macro: define-target-config/aux (name &body script)
Package

overlord/target.

Source

file-type.lisp.

Macro: defmethod (name &body body)

Like ‘cl:defmethod’, but raise an error is NAME is not already bound as a generic function.

Package

overlord/target.

Source

file-type.lisp.

Macro: if (test then else)

Like ‘cl:if’, but require two branches.

Package

overlord/target.

Source

file-type.lisp.

Macro: if-let (bindings then else)

Like ‘alexandria:if-let’, but require two branches.

Package

overlord/target.

Source

file-type.lisp.

Macro: phony-task-target (name &body script)

Like ‘var-target’, but does not actually declare a variable.

Package

overlord/target.

Source

file-type.lisp.

Macro: with-procs-tracked ((env) &body body)
Package

overlord/build-env.

Source

file-type.lisp.

Macro: with-standard-io-syntax* (&body body)

Macro wrapper for ‘call/standard-io-syntax’.

Package

overlord/db.

Source

file-type.lisp.

Macro: with-target-meta-locked ((target &key) &body body)
Package

overlord/build-env.

Source

file-type.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.5 Compiler macros

Compiler Macro: db-error (control-str &rest args)
Package

overlord/db.

Source

file-type.lisp.


5.2.6 Ordinary functions

Function: %make-shadow-tree (&key prefix)
Package

overlord/cache.

Source

file-type.lisp.

Function: %make-target-table (&key map hash-table lock synchronized)
Package

overlord/target-table.

Source

file-type.lisp.

Function: absolute-directory-pathname? (x)

Is X an absolute directory pathname?

Package

overlord/base.

Source

file-type.lisp.

Function: absolute-path-shadow-tree-suffix (path)

Turn PATH, an absolute pathname, into a relative pathname whose directory components are the same as the directory components of PATH.

On Windows the suffix includes the device as a directory component.

Package

overlord/cache.

Source

file-type.lisp.

Function: alist-to-target-table (alist)
Package

overlord/target-table.

Source

file-type.lisp.

Function: append-to-log (log last-saved-map current-map)

Compute the difference between CURRENT-MAP and LAST-SAVED-MAP and write it into LOG.

If there is no difference, write nothing.

Package

overlord/db.

Source

file-type.lisp.

Function: ask-for-token (env)
Package

overlord/build-env.

Source

file-type.lisp.

Function: build-default-system-target (system)
Package

overlord/project-system.

Source

file-type.lisp.

Function: build-time-from-file (target file)

Get the build time for TARGET from the database, but if there is no recorded build time, fall back to using the size of FILE.

This heuristic ensures that, in the absence of other information, larger files will be built before smaller files.

Package

overlord/target.

Source

file-type.lisp.

Function: build-time-from-files (target files)

Like ‘build-time-from-file’, but the size is a sum over FILES.

Package

overlord/target.

Source

file-type.lisp.

Function: built-in-symbol? (symbol)
Package

overlord/types.

Source

file-type.lisp.

Function: call-with-target-meta-locked (target fn)
Package

overlord/build-env.

Source

file-type.lisp.

Function: call/build-env (fn &key jobs debug)
Package

overlord/build-env.

Source

file-type.lisp.

Function: call/current-dir (thunk dir)
Package

overlord/base.

Source

file-type.lisp.

Function: call/meta-kernel (thunk)
Package

overlord/kernel.

Source

file-type.lisp.

Function: call/saving-database (thunk)

Call THUNK, saving the database afterwards, unless a save is already pending.

Package

overlord/db.

Source

file-type.lisp.

Function: call/standard-io-syntax (fn)

Like ‘with-standard-io-syntax’, but if there is an error, unwind the stack so the error itself can be printed.

Package

overlord/db.

Source

file-type.lisp.

Function: check-generic-function (name)

Check that NAME is bound to a generic function.

Package

overlord/target.

Source

file-type.lisp.

Function: check-list-of* (list item-type)
Package

overlord/types.

Source

file-type.lisp.

Function: check-version ()

Check that the database version matches the Overlord system version.

Package

overlord/db.

Source

file-type.lisp.

Function: cl-sym? (sym)
Package

overlord/oracle.

Source

file-type.lisp.

Function: cl-symbol-p (x)
Package

overlord/types.

Source

file-type.lisp.

Function: clear-scripts ()

Nix all symbols registered as scripts.

Package

overlord/target.

Source

file-type.lisp.

Function: config-stamp (value &key name)

Compute a stamp for a config.
If VALUE is simple enough to hash, return a hash.

Otherwise nil.

Package

overlord/target.

Source

file-type.lisp.

Function: copy-db (instance)
Package

overlord/db.

Source

file-type.lisp.

Function: copy-dead-db (instance)
Package

overlord/db.

Source

file-type.lisp.

Function: copy-delayed-symbol (delayed-symbol1 &key package-name symbol-name)

Copy an instance of DELAYED-SYMBOL, optionally overriding some or all of its slots.

Package

overlord/types.

Source

file-type.lisp.

Function: copy-file-hash (file-hash1 &key size hash)

Copy an instance of FILE-HASH, optionally overriding some or all of its slots.

Package

overlord/stamp.

Source

file-type.lisp.

Function: copy-file-meta (file-meta1 &key size timestamp)

Copy an instance of FILE-META, optionally overriding some or all of its slots.

Package

overlord/stamp.

Source

file-type.lisp.

Function: copy-machine (instance)
Package

overlord/makespan.

Source

file-type.lisp.

Function: copy-resolved-file (resolved-file1 &key path meta)

Copy an instance of RESOLVED-FILE, optionally overriding some or all of its slots.

Package

overlord/stamp.

Source

file-type.lisp.

Function: copy-target-meta (instance)
Package

overlord/build-env.

Source

file-type.lisp.

Function: copy-target-table (instance)
Package

overlord/target-table.

Source

file-type.lisp.

Function: copy-task (task1 &key task time)

Copy an instance of TASK, optionally overriding some or all of its slots.

Package

overlord/makespan.

Source

file-type.lisp.

Function: copy-task (task1 &key target thunk script base)

Copy an instance of TASK, optionally overriding some or all of its slots.

Package

overlord/target.

Source

file-type.lisp.

Function: current-lisp-file ()
Package

overlord/base.

Source

file-type.lisp.

Function: current-parent ()

The current parent. If we are building, it is the target being built; otherwise it is the current package.

Package

overlord/target.

Source

file-type.lisp.

Function: db ()

Get the current database, loading it if necessary.

Package

overlord/db.

Source

file-type.lisp.

Function: db-alist (&optional db)

Return the database’s data as an alist. For debugging.

Package

overlord/db.

Source

file-type.lisp.

Function: db-error (control-str &rest args)
Package

overlord/db.

Source

file-type.lisp.

Function: db-p (object)
Package

overlord/db.

Source

file-type.lisp.

Function: db-ref* (key)

Access KEY in the current database.

Package

overlord/db.

Source

file-type.lisp.

Function: (setf db-ref*) (key)

Access KEY in the current database.

Package

overlord/db.

Source

file-type.lisp.

Function: db-write (obj stream)

Write OBJ to STREAM using the database syntax.

Package

overlord/db.

Source

file-type.lisp.

Reader: db.current-map (instance)
Writer: (setf db.current-map) (instance)
Package

overlord/db.

Source

file-type.lisp.

Target Slot

current-map.

Reader: db.last-saved-map (instance)
Writer: (setf db.last-saved-map) (instance)
Package

overlord/db.

Source

file-type.lisp.

Target Slot

last-saved-map.

Reader: db.log-file (instance)
Package

overlord/db.

Source

file-type.lisp.

Target Slot

log-file.

Reader: db.state (instance)
Package

overlord/db.

Source

file-type.lisp.

Target Slot

state.

Reader: db.version (instance)
Package

overlord/db.

Source

file-type.lisp.

Target Slot

version.

Function: dead-db-p (object)
Package

overlord/db.

Source

file-type.lisp.

Function: deduplicate-targets (targets &key key)
Package

overlord/target.

Source

file-type.lisp.

Reader: delayed-symbol-package-name (instance)
Package

overlord/types.

Source

file-type.lisp.

Target Slot

package-name.

Reader: delayed-symbol-symbol-name (instance)
Package

overlord/types.

Source

file-type.lisp.

Target Slot

symbol-name.

Function: delayed-symbol= (ds1 ds2)
Package

overlord/types.

Source

file-type.lisp.

Function: delete-file-or-directory (p)
Package

overlord/target.

Source

file-type.lisp.

Function: dist-exists? (dist)
Package

overlord/oracle.

Source

file-type.lisp.

Function: ensure-absolute-directory-pathname (x)

Resolve X as an absolute directory pathname.

Package

overlord/base.

Source

file-type.lisp.

Function: ensure-file-target-pathname (pathname)
Package

overlord/target.

Source

file-type.lisp.

Function: ensure-meta-kernel ()
Package

overlord/kernel.

Source

file-type.lisp.

Function: ensure-pathname* (x)
Package

overlord/util.

Source

file-type.lisp.

Function: existing-file-unchanged? (data file &key buffer-size)
Package

overlord/util.

Source

file-type.lisp.

Function: extract-directives (format-string)
Package

overlord/message.

Source

file-type.lisp.

Function: file-digest-ref (file)
Package

overlord/target.

Source

file-type.lisp.

Reader: file-hash-hash (instance)
Package

overlord/stamp.

Source

file-type.lisp.

Target Slot

hash.

Reader: file-hash-size (instance)
Package

overlord/stamp.

Source

file-type.lisp.

Target Slot

size.

Function: file-hash= (x y)
Package

overlord/stamp.

Source

file-type.lisp.

Reader: file-meta-size (instance)
Package

overlord/stamp.

Source

file-type.lisp.

Target Slot

size.

Reader: file-meta-timestamp (instance)
Package

overlord/stamp.

Source

file-type.lisp.

Target Slot

timestamp.

Function: file-meta= (x y)
Package

overlord/stamp.

Source

file-type.lisp.

Function: file-stamp (file)
Package

overlord/target.

Source

file-type.lisp.

Function: file-stamp/hash (file)
Package

overlord/target.

Source

file-type.lisp.

Function: file-target-name-file-name (name)
Package

overlord/target.

Source

file-type.lisp.

Function: file-task (task)
Package

overlord/target.

Source

file-type.lisp.

Function: get-version (command)
Package

overlord/oracle.

Source

file-type.lisp.

Function: getpid ()
Package

overlord/db.

Source

file-type.lisp.

Function: guess-arg-count (format-string)

When possible, Guess the number of arguments required by FORMAT-STRING.

Package

overlord/message.

Source

file-type.lisp.

Function: guess-system-from-package-name (name)
Package

overlord/base.

Source

file-type.lisp.

Function: hard-freeze-targets ()

Freeze targets.

Package

overlord/target.

Source

file-type.lisp.

Function: has-earmuffs? (sym)

Does SYM have earmuffs?
That is, does it begin and end with an asterisk?

Package

overlord/target.

Source

file-type.lisp.

Function: has-props? (obj prop &rest props)

Check if an object in the database has all of the supplied properties.

Package

overlord/db.

Source

file-type.lisp.

Function: impossible-task (target)
Package

overlord/target.

Source

file-type.lisp.

Function: in-worker? ()
Package

overlord/db.

Source

file-type.lisp.

Function: infer-system (package &key errorp)
Package

overlord/base.

Source

file-type.lisp.

Function: infer-system-from-package (&optional package)
Package

overlord/base.

Source

file-type.lisp.

Function: infer-system-from-package-affix (package)
Package

overlord/base.

Source

file-type.lisp.

Function: infer-system-from-package-names (package)
Package

overlord/base.

Source

file-type.lisp.

Function: list-without-nil? (list)
Package

overlord/types.

Source

file-type.lisp.

Function: load-log-data (log-file)

Load the data from LOG-FILE.

Package

overlord/db.

Source

file-type.lisp.

Function: log-data-p (object)
Package

overlord/db.

Source

file-type.lisp.

Reader: log-data.map (instance)
Package

overlord/db.

Source

file-type.lisp.

Target Slot

map.

Reader: log-data.map-count (instance)
Package

overlord/db.

Source

file-type.lisp.

Target Slot

map-count.

Function: log-file-path (&optional version)

Compute the path of the log file for the current database version.

Package

overlord/db.

Source

file-type.lisp.

Function: log-file-size (log-file)

Return the size on disk of LOG-FILE.

Package

overlord/db.

Source

file-type.lisp.

Function: log-record-p (object)
Package

overlord/db.

Source

file-type.lisp.

Reader: log-record.data (instance)
Package

overlord/db.

Source

file-type.lisp.

Target Slot

data.

Reader: log-record.timestamp (instance)
Package

overlord/db.

Source

file-type.lisp.

Target Slot

timestamp.

Function: look-for-asd ()

Look for the nearest .asd file and return its name.

Package

overlord/base.

Source

file-type.lisp.

Function: lpt-schedule (machine-count tasks)

Implement the Longest Processing Time algorithm. MACHINE-COUNT should be an integer.

Times should be given as integers.

Package

overlord/makespan.

Source

file-type.lisp.

Function: machine-add-task (machine task)
Package

overlord/makespan.

Source

file-type.lisp.

Function: machine-p (object)
Package

overlord/makespan.

Source

file-type.lisp.

Reader: machine-task-queue (instance)
Writer: (setf machine-task-queue) (instance)
Package

overlord/makespan.

Source

file-type.lisp.

Target Slot

task-queue.

Function: machine-tasks (machine)
Package

overlord/makespan.

Source

file-type.lisp.

Reader: machine-total-time (instance)
Writer: (setf machine-total-time) (instance)
Package

overlord/makespan.

Source

file-type.lisp.

Target Slot

total-time.

Function: make-build-env (&key jobs handler)
Package

overlord/build-env.

Source

file-type.lisp.

Function: make-db (&key version log-file current-map last-saved-map)
Package

overlord/db.

Source

file-type.lisp.

Function: make-dead-db (&key version log-file current-map last-saved-map state)
Package

overlord/db.

Source

file-type.lisp.

Function: make-log-data (&key map-count map)
Package

overlord/db.

Source

file-type.lisp.

Function: make-log-record (&key timestamp data)
Package

overlord/db.

Source

file-type.lisp.

Function: make-machine (&key total-time task-queue)
Package

overlord/makespan.

Source

file-type.lisp.

Function: make-target-meta (target)
Package

overlord/build-env.

Source

file-type.lisp.

Function: make-token-pool (n)
Package

overlord/build-env.

Source

file-type.lisp.

Function: multiple-file-stamp (files)
Package

overlord/target.

Source

file-type.lisp.

Function: nearest-asdf-file (file)
Package

overlord/base.

Source

file-type.lisp.

Function: next-build-id ()
Package

overlord/build-env.

Source

file-type.lisp.

Function: out-of-date? (target)

Return T if TARGET needs rebuilding.
Note that this rebuilds any previously saved dependencies of TARGET that are themselves out of date.

Package

overlord/redo.

Source

file-type.lisp.

Function: package-base-spec (package)
Package

overlord/base.

Source

file-type.lisp.

Function: (setf package-base-spec) (package)
Package

overlord/base.

Source

file-type.lisp.

Function: package-prereqs-table (package)
Package

overlord/target.

Source

file-type.lisp.

Function: pathname-exists? (path)
Package

overlord/target.

Source

file-type.lisp.

Function: plist? ()
Package

overlord/types.

Source

file-type.lisp.

Function: pmap* (type fn seq)

Like ‘map’, but possibly parallel.

Package

overlord/redo.

Source

file-type.lisp.

Function: prereq-changed? (saved-prereq)

Take SAVED-PREREQ, which has slots for a target and its last stamp, and return T if the stamp has changed.

Package

overlord/redo.

Source

file-type.lisp.

Function: print-current-dir (&optional stream)

Print the current directory to STREAM.
If the value of ‘*default-pathname-defaults*’ and a call to ‘uiop:getcwd’ differ, then print them both.

Package

overlord/types.

Source

file-type.lisp.

Function: prop-1 (obj prop)

Access the database record keyed by OBJ and PROP.

Package

overlord/db.

Source

file-type.lisp.

Function: (setf prop-1) (obj prop)

Access the database record keyed by OBJ and PROP.

Package

overlord/db.

Source

file-type.lisp.

Function: prop-key (obj prop)

Convert OBJ and PROP into a single key.

Package

overlord/db.

Source

file-type.lisp.

Function: psome* (fn seq)

Like ‘some’, but possibly parallel.

Package

overlord/redo.

Source

file-type.lisp.

Function: ql-dist-version (&optional dist-name)
Package

overlord/oracle.

Source

file-type.lisp.

Function: read-system-by-name ()
Package

overlord/base.

Source

file-type.lisp.

Function: rebuild-file (file thunk &optional base)
Package

overlord/target.

Source

file-type.lisp.

Function: rebuild-symbol (symbol value &key hash)
Package

overlord/target.

Source

file-type.lisp.

Function: record-package-prereq (package target)

Save TARGET as a prerequisite of PACKAGE. Return TARGET.

Package

overlord/target.

Source

file-type.lisp.

Function: record-package-prereq* (target)

Save TARGET as a prerequisite of the current PACKAGE. Return TARGET.

Package

overlord/target.

Source

file-type.lisp.

Function: record-parent-prereqne (parent target)
Package

overlord/target.

Source

file-type.lisp.

Function: redo-ifchange-target (target)

Rebuild TARGET if it is out of date.

Package

overlord/redo.

Source

file-type.lisp.

Function: redo-target (target)

Unconditionally build TARGET.

Package

overlord/redo.

Source

file-type.lisp.

Function: register-script (name)

Register NAME as a script.

Package

overlord/target.

Source

file-type.lisp.

Function: release-database ()
Package

overlord/db.

Source

file-type.lisp.

Function: reload-db ()

Reload the current version of the database from its log file.

Package

overlord/db.

Source

file-type.lisp.

Function: rename-by-copying (tmp dest)
Package

overlord/util.

Source

file-type.lisp.

Function: replace-file-atomically (data dest)

Write DATA into DEST

Package

overlord/util.

Source

file-type.lisp.

Function: resolve-build-script (target)

Find a build script for TARGET, and depend on it. If there is no script for TARGET, signal an error.

Package

overlord/redo.

Source

file-type.lisp.

Reader: resolved-file-meta (instance)
Package

overlord/stamp.

Source

file-type.lisp.

Target Slot

meta.

Reader: resolved-file-path (instance)
Package

overlord/stamp.

Source

file-type.lisp.

Target Slot

path.

Function: resolved-file= (x y)
Package

overlord/stamp.

Source

file-type.lisp.

Function: return-token (env token)
Package

overlord/build-env.

Source

file-type.lisp.

Function: sanity-check-message-args (format-control format-arguments)

Do some basic sanity-checking with format-control and format-arguments.

Package

overlord/message.

Source

file-type.lisp.

Function: save-file-task (task)
Package

overlord/target.

Source

file-type.lisp.

Function: save-task (task)
Package

overlord/target.

Source

file-type.lisp.

Function: saved-package-base (package)

If a base has been set for PACKAGE, return it.

Package

overlord/base.

Source

file-type.lisp.

Function: saved-package-system (package)

If a system has been set for PACKAGE, return it.

Package

overlord/base.

Source

file-type.lisp.

Function: saved-prereq (x &optional stamp)

Make a saved prereq object.

Package

overlord/target.

Source

file-type.lisp.

Function: script-for (name)
Package

overlord/target.

Source

file-type.lisp.

Function: set-package-base* (base &optional system)

Set the base and/or system, for the current package.

Package

overlord/base.

Source

file-type.lisp.

Function: set-package-base-1 (package base system)

Set the base and/or system of PACKAGE.

Package

overlord/base.

Source

file-type.lisp.

Function: set-package-system* (system)
Package

overlord/base.

Source

file-type.lisp.

Function: set-package-system-1 (package system)
Package

overlord/base.

Source

file-type.lisp.

Function: shadow-tree-p (object)
Package

overlord/cache.

Source

file-type.lisp.

Reader: shadow-tree-prefix (instance)
Package

overlord/cache.

Source

file-type.lisp.

Target Slot

prefix.

Function: shadow-tree-root (shadow-tree)

Get the root directory of SHADOW-TREE.

Package

overlord/cache.

Source

file-type.lisp.

Function: squash-data (log-data log-file)

If needed, write a compacted version of LOG-DATA into LOG-FILE.

Package

overlord/db.

Source

file-type.lisp.

Function: start-meta-kernel ()
Package

overlord/kernel.

Source

file-type.lisp.

Function: strip-tombstones (map)

Strip key-value pairs with tombstone values from MAP.

Package

overlord/db.

Source

file-type.lisp.

Function: system-resource (system path)
Package

overlord/target.

Source

file-type.lisp.

Function: target-build-script-target (target)
Package

overlord/redo.

Source

file-type.lisp.

Function: target-has-build-script? (target)
Package

overlord/redo.

Source

file-type.lisp.

Function: target-meta (target)
Package

overlord/build-env.

Source

file-type.lisp.

Function: target-meta-p (object)
Package

overlord/build-env.

Source

file-type.lisp.

Reader: target-meta.lock (instance)
Writer: (setf target-meta.lock) (instance)
Package

overlord/build-env.

Source

file-type.lisp.

Target Slot

lock.

Reader: target-meta.lockedp (instance)
Writer: (setf target-meta.lockedp) (instance)
Package

overlord/build-env.

Source

file-type.lisp.

Target Slot

lockedp.

Reader: target-meta.stamp (instance)
Writer: (setf target-meta.stamp) (instance)
Package

overlord/build-env.

Source

file-type.lisp.

Target Slot

stamp.

Reader: target-meta.target (instance)
Package

overlord/build-env.

Source

file-type.lisp.

Target Slot

target.

Reader: target-meta.temp-prereqs (instance)
Writer: (setf target-meta.temp-prereqs) (instance)
Package

overlord/build-env.

Source

file-type.lisp.

Target Slot

temp-prereqs.

Reader: target-meta.temp-prereqsne (instance)
Writer: (setf target-meta.temp-prereqsne) (instance)
Package

overlord/build-env.

Source

file-type.lisp.

Target Slot

temp-prereqsne.

Function: target-package (target)
Package

overlord/target.

Source

file-type.lisp.

Function: (setf target-package) (target)
Package

overlord/target.

Source

file-type.lisp.

Function: target-table-p (object)
Package

overlord/target-table.

Source

file-type.lisp.

Function: target-table-to-alist (table)
Package

overlord/target-table.

Source

file-type.lisp.

Reader: target-table.hash-table (instance)
Package

overlord/target-table.

Source

file-type.lisp.

Target Slot

hash-table.

Reader: target-table.lock (instance)
Package

overlord/target-table.

Source

file-type.lisp.

Target Slot

lock.

Reader: target-table.map (instance)
Writer: (setf target-table.map) (instance)
Package

overlord/target-table.

Source

file-type.lisp.

Target Slot

map.

Reader: target-table.synchronized (instance)
Package

overlord/target-table.

Source

file-type.lisp.

Target Slot

synchronized.

Function: target? (target)

Is TARGET actually a target (not a source file)?

Package

overlord/redo.

Source

file-type.lisp.

Function: task (task time)
Package

overlord/makespan.

Source

file-type.lisp.

Reader: task-base (instance)
Package

overlord/target.

Source

file-type.lisp.

Target Slot

base.

Reader: task-script (instance)
Package

overlord/target.

Source

file-type.lisp.

Target Slot

script.

Reader: task-target (instance)
Package

overlord/target.

Source

file-type.lisp.

Target Slot

target.

Reader: task-task (instance)
Package

overlord/makespan.

Source

file-type.lisp.

Target Slot

task.

Reader: task-thunk (instance)
Package

overlord/target.

Source

file-type.lisp.

Target Slot

thunk.

Reader: task-time (instance)
Package

overlord/makespan.

Source

file-type.lisp.

Target Slot

time.

Function: temporary-file? (file)
Package

overlord/types.

Source

file-type.lisp.

Function: todays-date-string ()
Package

overlord/oracle.

Source

file-type.lisp.

Function: touch-target (target &optional date)
Package

overlord/target.

Source

file-type.lisp.

Function: trivial-task (target)
Package

overlord/target.

Source

file-type.lisp.

Function: try-force-symbol (delay)

Try to force delayed symbol DELAY.

If forcing was successful, return the symbol and, as a second value, T.

If forcing failed, returned nil and, as a second value, T.

If DELAY is not a delayed symbol, return it (second value T).

Package

overlord/types.

Source

file-type.lisp.

Function: unglobify (targets)

Look for globs in TARGETS, and replace them with the expansion of the glob, and an oracle that recomputes the expansion of the glob.

Package

overlord/target.

Source

file-type.lisp.

Function: update-config-stamp (name val hash-fun)

Update the stamp for NAME with VAL.

Package

overlord/target.

Source

file-type.lisp.

Function: use* (&rest targets)

Like ‘use’, but ordered.

Package

overlord/target.

Source

file-type.lisp.

Function: use-all* (targets)

Depend on each target in TARGET – as a normal prereq if TARGET exists, and as a non-existent prereq if TARGET does not exist.

Package

overlord/target.

Source

file-type.lisp.

Function: use-build-cache? ()
Package

overlord/build-env.

Source

file-type.lisp.

Function: walk-targets (fn targets &key jobs)

Call FN on each targets in TARGETS, in some order, and possibly in parallel.

Package

overlord/redo.

Source

file-type.lisp.

Function: warn* (message &rest args)
Package

overlord/types.

Source

file-type.lisp.

Function: wildcard-hash (wildcard)
Package

overlord/oracle.

Source

file-type.lisp.

Function: wrap-rebuild-symbol (symbol thunk &key hash)
Package

overlord/target.

Source

file-type.lisp.

Function: wrap-save-base (form)
Package

overlord/target.

Source

file-type.lisp.


5.2.7 Generic functions

Generic Function: await-procs (env)
Package

overlord/build-env.

Methods
Method: await-procs ((env build-env))

Wait for processes tracked by ENV to exit.

Source

file-type.lisp.

Generic Reader: build-env-procs (object)
Generic Writer: (setf build-env-procs) (object)
Package

overlord/build-env.

Methods
Reader Method: build-env-procs ((build-env build-env))
Writer Method: (setf build-env-procs) ((build-env build-env))

Processes being run asynchronously.

Source

file-type.lisp.

Target Slot

procs.

Generic Reader: build-env-tokens (object)
Package

overlord/build-env.

Methods
Reader Method: build-env-tokens ((threaded-build-env threaded-build-env))

automatically generated reader method

Source

file-type.lisp.

Target Slot

tokens.

Generic Reader: build-env.file-owners (object)
Package

overlord/build-env.

Methods
Reader Method: build-env.file-owners ((build-env build-env))

automatically generated reader method

Source

file-type.lisp.

Target Slot

file-owners.

Generic Reader: build-env.table (object)
Package

overlord/build-env.

Methods
Reader Method: build-env.table ((build-env build-env))

automatically generated reader method

Source

file-type.lisp.

Target Slot

table.

Generic Function: call-in-build-env (env fn)
Package

overlord/build-env.

Source

file-type.lisp.

Methods
Method: call-in-build-env ((env threaded-build-env) fn)
Method: call-in-build-env (env fn)
Generic Function: call-with-locked-target (self fn)
Package

overlord/target.

Methods
Method: call-with-locked-target ((self relative-file-target) fn)
Source

file-type.lisp.

Generic Function: call-with-procs-tracked (env fn)
Package

overlord/build-env.

Methods
Method: call-with-procs-tracked ((env build-env) (fn function))
Source

file-type.lisp.

Generic Function: claim-file (self target file)
Package

overlord/build-env.

Methods
Method: claim-file ((self build-env) target (file pathname))
Source

file-type.lisp.

Generic Function: claim-files (self target files)
Package

overlord/build-env.

Methods
Method: claim-files ((self build-env) target (files sequence))
Source

file-type.lisp.

Generic Function: db-protect (x)

Try to avoid writing symbols or package objects into the database. This allows the database to be reloaded without those packages being required.

Package

overlord/db.

Source

file-type.lisp.

Methods
Method: db-protect ((x symbol))
Method: db-protect ((x package))
Method: db-protect (x)
Generic Function: db.del (db key)

Delete a key in the database.

Package

overlord/db.

Source

file-type.lisp.

Methods
Method: db.del ((self dead-db) key)
Method: db.del ((db db) key)
Generic Function: db.lock-file (db)
Package

overlord/db.

Methods
Method: db.lock-file ((db db))
Source

file-type.lisp.

Generic Function: db.ref (db key)

Lookup KEY in DB.

Package

overlord/db.

Source

file-type.lisp.

Methods
Method: db.ref ((self dead-db) key)
Method: db.ref ((db db) key)
Generic Function: (setf db.ref) (db key)

Set the value of KEY in DB.

Package

overlord/db.

Source

file-type.lisp.

Methods
Method: (setf db.ref) ((self dead-db) key)
Method: (setf db.ref) ((db db) key)
Generic Function: db.sync (db)

Sync the database to disk.

Package

overlord/db.

Source

file-type.lisp.

Methods
Method: db.sync ((self dead-db))
Method: db.sync ((db db))
Generic Reader: directory-exists.path (object)
Package

overlord/target.

Methods
Reader Method: directory-exists.path ((directory-exists directory-exists))

automatically generated reader method

Source

file-type.lisp.

Target Slot

name.

Generic Reader: dist-version-oracle.name (object)
Package

overlord/oracle.

Methods
Reader Method: dist-version-oracle.name ((dist-version-oracle dist-version-oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

question.

Generic Reader: env-oracle.name (object)
Package

overlord/oracle.

Methods
Reader Method: env-oracle.name ((env-oracle env-oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

question.

Generic Reader: feature-oracle.feature (object)
Package

overlord/oracle.

Methods
Reader Method: feature-oracle.feature ((feature-oracle feature-oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

question.

Generic Reader: file-digest-ref.file (object)
Package

overlord/target.

Methods
Reader Method: file-digest-ref.file ((file-digest-ref file-digest-ref))

automatically generated reader method

Source

file-type.lisp.

Target Slot

name.

Generic Reader: fixed-question-oracle.name (object)
Package

overlord/oracle.

Methods
Reader Method: fixed-question-oracle.name ((fixed-question-oracle fixed-question-oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

question.

Generic Reader: function-oracle.args (object)
Package

overlord/oracle.

Methods
Reader Method: function-oracle.args ((function-oracle function-oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

args.

Generic Reader: function-oracle.delayed-symbol (object)
Package

overlord/oracle.

Methods
Reader Method: function-oracle.delayed-symbol ((function-oracle function-oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

question.

Generic Function: kill-procs (env &key urgent)
Package

overlord/build-env.

Methods
Method: kill-procs ((env build-env) &key urgent)

Kill all live processes tracked by ENV.

Source

file-type.lisp.

Generic Function: load-form-slot-names (self)
Package

overlord/target.

Source

file-type.lisp.

Method Combination

append.

Options

:most-specific-first

Methods
Method: load-form-slot-names append ((self unloaded-pattern))
Method: load-form-slot-names append ((self pattern))
Method: load-form-slot-names append ((self relative-file-target))
Method: load-form-slot-names append ((self pattern-ref))
Method: load-form-slot-names append ((self ref))
Method: load-form-slot-names append ((self externalizable))
Generic Function: lock-db (db)

Create a lockfile for the DB.

Package

overlord/db.

Source

file-type.lisp.

Methods
Method: lock-db ((db db))
Method: lock-db (db)
Generic Function: make-env-kernel (env thread-count)
Package

overlord/build-env.

Methods
Method: make-env-kernel ((env threaded-build-env) thread-count)
Source

file-type.lisp.

Generic Reader: package-oracle.name (object)
Package

overlord/oracle.

Methods
Reader Method: package-oracle.name ((package-oracle package-oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

question.

Generic Reader: pattern-ref-base (object)
Package

overlord/target.

Methods
Reader Method: pattern-ref-base ((pattern-ref pattern-ref))

automatically generated reader method

Source

file-type.lisp.

Target Slot

base.

Generic Reader: pattern-ref-pattern (object)
Package

overlord/target.

Methods
Reader Method: pattern-ref-pattern ((pattern-ref pattern-ref))

automatically generated reader method

Source

file-type.lisp.

Target Slot

pattern.

Generic Reader: pattern.script (object)
Package

overlord/target.

Methods
Reader Method: pattern.script ((pattern pattern))

automatically generated reader method

Source

file-type.lisp.

Target Slot

script.

Generic Function: print-target-being-built (target)

Print some information about the target being built.

Package

overlord/target.

Source

file-type.lisp.

Methods
Method: print-target-being-built ((target impossible-prereq))
Method: print-target-being-built ((target trivial-prereq))
Method: print-target-being-built (target)
Generic Reader: project-system-target-name (object)
Package

overlord/project-system.

Methods
Reader Method: project-system-target-name ((overlord-project-system overlord-project-system))

automatically generated reader method

Source

file-type.lisp.

Target Slot

target-name.

Generic Function: record-parent-prereq (parent target)

Record TARGET as a prerequisite of PARENT.

Package

overlord/target.

Source

file-type.lisp.

Methods
Method: record-parent-prereq ((target root-target) child)
Method: record-parent-prereq ((parent package) target)
Method: record-parent-prereq (parent target)
Generic Reader: ref.name (object)
Package

overlord/target.

Methods
Reader Method: ref.name ((ref ref))

automatically generated reader method

Source

file-type.lisp.

Target Slot

name.

Generic Function: register-proc (env proc)
Package

overlord/build-env.

Methods
Method: register-proc ((env build-env) proc)

Remember PROC in ENV. Return PROC.

Source

file-type.lisp.

Generic Function: relative-file-truename (target)
Package

overlord/target.

Source

file-type.lisp.

Methods
Method: relative-file-truename ((self system-resource))
Generic Reader: system-resource.system (object)
Package

overlord/target.

Methods
Reader Method: system-resource.system ((system-resource system-resource))

automatically generated reader method

Source

file-type.lisp.

Target Slot

system.

Generic Reader: system-version-oracle.system-name (object)
Package

overlord/oracle.

Methods
Reader Method: system-version-oracle.system-name ((system-version-oracle system-version-oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

question.

Generic Function: track-jobs-used (env)
Package

overlord/build-env.

Methods
Method: track-jobs-used ((env threaded-build-env))

This should be used after a token is obtained to track how many threads are being used.

The idea is to be able to tell how many of the allocated threads are actually being used, so we know how many to allocate for the next run.

Source

file-type.lisp.

Generic Function: unlock-db (db)

Remove the lockfile for the DB.

Package

overlord/db.

Source

file-type.lisp.

Methods
Method: unlock-db ((db db))
Method: unlock-db (db)
Generic Reader: var-oracle.var (object)
Package

overlord/oracle.

Methods
Reader Method: var-oracle.var ((var-oracle var-oracle))

automatically generated reader method

Source

file-type.lisp.

Target Slot

question.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.8 Standalone methods

Method: %constructor= ((o1 delayed-symbol) (o2 delayed-symbol))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((o1 task) (o2 task))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((o1 task) (o2 task))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((o1 resolved-file) (o2 resolved-file))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((x far-future) (y far-future))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((o1 file-hash) (o2 file-hash))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((o1 file-meta) (o2 file-meta))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((x never) (y never))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((x root-target) (y root-target))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((x trivial-prereq) (y trivial-prereq))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((x impossible-prereq) (y impossible-prereq))
Package

serapeum.

Source

file-type.lisp.

Method: %constructor= ((x tombstone) (y tombstone))
Package

serapeum.

Source

file-type.lisp.

Method: constructor-values/generic ((x delayed-symbol))
Package

serapeum.

Source

file-type.lisp.

Method: constructor-values/generic ((x task))
Package

serapeum.

Source

file-type.lisp.

Method: constructor-values/generic ((x task))
Package

serapeum.

Source

file-type.lisp.

Method: constructor-values/generic ((x resolved-file))
Package

serapeum.

Source

file-type.lisp.

Method: constructor-values/generic ((x file-hash))
Package

serapeum.

Source

file-type.lisp.

Method: constructor-values/generic ((x file-meta))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self delayed-symbol))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self shadow-tree))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self task))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self task))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self resolved-file))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self file-hash))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self file-meta))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self log-record))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self log-data))
Package

serapeum.

Source

file-type.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.9 Conditions

Condition: db-error
Package

overlord/db.

Source

file-type.lisp.

Direct superclasses

overlord-error.

Direct subclasses
Condition: delayed-symbol-error
Package

overlord/types.

Source

file-type.lisp.

Direct superclasses

overlord-error.

Direct subclasses
Direct slots
Slot: package-name
Package

common-lisp.

Initargs

:package-name

Slot: symbol-name
Package

common-lisp.

Initargs

:symbol-name

Condition: delayed-symbol-name-error
Package

overlord/types.

Source

file-type.lisp.

Direct superclasses

delayed-symbol-error.

Condition: delayed-symbol-package-error
Package

overlord/types.

Source

file-type.lisp.

Direct superclasses

delayed-symbol-error.

Condition: locked-db
Package

overlord/db.

Source

file-type.lisp.

Direct superclasses

db-error.

Direct slots
Slot: saved-pid
Initargs

:saved-pid

Condition: non-existent-exists
Package

overlord/redo.

Source

file-type.lisp.

Direct superclasses

target-error.

Condition: not-a-target
Package

overlord/target.

Source

file-type.lisp.

Direct superclasses

overlord-error.

Direct slots
Slot: designator
Initargs

:designator

Condition: target-error
Package

overlord/redo.

Source

file-type.lisp.

Direct superclasses

overlord-error.

Direct subclasses
Direct methods

overlord-error-target.

Direct slots
Slot: target
Initargs

:target

Readers

overlord-error-target.

Writers

This slot is read-only.

Condition: version-mismatch
Package

overlord/db.

Source

file-type.lisp.

Direct superclasses

db-error.

Direct slots
Slot: new-version
Initargs

:new-version

Slot: old-version
Initargs

:old-version


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.10 Structures

Structure: db

The database.

Package

overlord/db.

Source

file-type.lisp.

Direct superclasses

structure-object.

Direct subclasses

dead-db.

Direct methods
Direct slots
Slot: version
Initform

(overlord/types:db-version)

Readers

db.version.

Writers

This slot is read-only.

Slot: log-file
Type

pathname

Initform

(overlord/db::log-file-path)

Readers

db.log-file.

Writers

This slot is read-only.

Slot: current-map
Type

fset:map

Initform

(fset:empty-map)

Readers

db.current-map.

Writers

(setf db.current-map).

Slot: last-saved-map
Type

fset:map

Initform

(fset:empty-map)

Readers

db.last-saved-map.

Writers

(setf db.last-saved-map).

Structure: dead-db
Package

overlord/db.

Source

file-type.lisp.

Direct superclasses

db.

Direct methods
Direct slots
Slot: state
Type

null

Readers

db.state.

Writers

This slot is read-only.

Structure: log-data

The data recovered from a log file.

Package

overlord/db.

Source

file-type.lisp.

Direct superclasses

%read-only-struct.

Direct methods

read-only-struct-slot-names.

Direct slots
Slot: map-count
Type

(integer 0 *)

Initform

0

Readers

log-data.map-count.

Writers

This slot is read-only.

Slot: map
Package

common-lisp.

Type

fset:map

Initform

(fset:empty-map)

Readers

log-data.map.

Writers

This slot is read-only.

Structure: log-record

A single record in a log file.

Package

overlord/db.

Source

file-type.lisp.

Direct superclasses

%read-only-struct.

Direct methods

read-only-struct-slot-names.

Direct slots
Slot: timestamp
Type

(integer 0 *)

Initform

(get-universal-time)

Readers

log-record.timestamp.

Writers

This slot is read-only.

Slot: data
Type

fset:map

Initform

(alexandria:required-argument (quote overlord/db::data))

Readers

log-record.data.

Writers

This slot is read-only.

Structure: machine
Package

overlord/makespan.

Source

file-type.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: total-time
Type

(integer 0 *)

Initform

0

Readers

machine-total-time.

Writers

(setf machine-total-time).

Slot: task-queue
Type

serapeum:queue

Initform

(serap