The overlord Reference Manual

Table of Contents

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

The overlord Reference Manual

This is the overlord Reference Manual, version 51, generated automatically by Declt version 3.0 "Montgomery Scott" on Wed Oct 13 12:02:44 2021 GMT+0.


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

1 Introduction

Overlord

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. Overlord is to Make what Lisp macros are to C macros.

Overlord is designed to be used from the Lisp REPL. A command line interface is available in a separate repository.

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.


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

2 Systems

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


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

2.1 overlord

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Description

Experimental build system.

Version

51

Dependency

overlord/all (system)

Source

overlord.asd (file)


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

2.2 overlord/all

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.3 overlord/project-system

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.4 overlord/target

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.5 overlord/base

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.6 overlord/freeze

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.7 overlord/oracle

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.8 overlord/redo

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.9 overlord/makespan

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.10 overlord/digest

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.11 overlord/build-env

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.12 overlord/target-table

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.13 overlord/target-protocol

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.14 overlord/stamp

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.15 overlord/kernel

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.16 overlord/db

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.17 overlord/message

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.18 overlord/global-state

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependency

serapeum

Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.19 overlord/cache

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.20 overlord/specials

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.21 overlord/asdf

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.22 overlord/util

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

2.23 overlord/types

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

file-type.lisp (file)


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

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


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 overlord.asd

Location

overlord.asd

Systems

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 overlord/all/file-type.lisp

Parent

overlord/all (system)

Location

all.lisp

Packages

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Parent

overlord/project-system (system)

Location

project-system.lisp

Packages

overlord/project-system

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 overlord/target/file-type.lisp

Parent

overlord/target (system)

Location

target.lisp

Packages

overlord/target

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 overlord/base/file-type.lisp

Parent

overlord/base (system)

Location

base.lisp

Packages

overlord/base

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.6 overlord/freeze/file-type.lisp

Parent

overlord/freeze (system)

Location

freeze.lisp

Packages

overlord/freeze

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.7 overlord/oracle/file-type.lisp

Parent

overlord/oracle (system)

Location

oracle.lisp

Packages

overlord/oracle

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.8 overlord/redo/file-type.lisp

Parent

overlord/redo (system)

Location

redo.lisp

Packages

overlord/redo

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.9 overlord/makespan/file-type.lisp

Parent

overlord/makespan (system)

Location

makespan.lisp

Packages

overlord/makespan

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.10 overlord/digest/file-type.lisp

Parent

overlord/digest (system)

Location

digest.lisp

Packages

overlord/digest

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Parent

overlord/build-env (system)

Location

build-env.lisp

Packages

overlord/build-env

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Parent

overlord/target-table (system)

Location

target-table.lisp

Packages

overlord/target-table

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Parent

overlord/target-protocol (system)

Location

target-protocol.lisp

Packages

overlord/target-protocol

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.14 overlord/stamp/file-type.lisp

Parent

overlord/stamp (system)

Location

stamp.lisp

Packages

overlord/stamp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.15 overlord/kernel/file-type.lisp

Parent

overlord/kernel (system)

Location

kernel.lisp

Packages

overlord/kernel

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.16 overlord/db/file-type.lisp

Parent

overlord/db (system)

Location

db.lisp

Packages

overlord/db

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.17 overlord/message/file-type.lisp

Parent

overlord/message (system)

Location

message.lisp

Packages

overlord/message

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

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

Parent

overlord/global-state (system)

Location

global-state.lisp

Packages

overlord/global-state

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.19 overlord/cache/file-type.lisp

Parent

overlord/cache (system)

Location

cache.lisp

Packages

overlord/cache

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.20 overlord/specials/file-type.lisp

Parent

overlord/specials (system)

Location

specials.lisp

Packages

overlord/specials

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.21 overlord/asdf/file-type.lisp

Parent

overlord/asdf (system)

Location

asdf.lisp

Packages

overlord/asdf

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.22 overlord/util/file-type.lisp

Parent

overlord/util (system)

Location

util.lisp

Packages

overlord/util

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.23 overlord/types/file-type.lisp

Parent

overlord/types (system)

Location

types.lisp

Packages

overlord/types

Exported Definitions
Internal Definitions

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

4 Packages

Packages are listed by definition order.


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

4.1 overlord/all

Source

file-type.lisp (file)

Nickname

overlord

Use List
Used By List

overlord-user


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

4.2 overlord-user

Source

file-type.lisp (file)

Use List

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 (file)

Use List
Used By List

overlord/all

Exported Definitions
Internal Definitions

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

4.4 overlord/target

Source

file-type.lisp (file)

Use List
Used By List

overlord/all

Exported Definitions
Internal Definitions

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

4.5 overlord/base

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.6 overlord/freeze

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.7 overlord/oracle

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.8 overlord/redo

Source

file-type.lisp (file)

Nickname

redo

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.9 overlord/makespan

Source

file-type.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

4.10 overlord/digest

Source

file-type.lisp (file)

Use List
Used By List

overlord/target

Exported Definitions

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

4.11 overlord/build-env

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

Source

file-type.lisp (file)

Use List
Used By List

overlord/redo

Exported Definitions
Internal Definitions

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

4.12 overlord/target-table

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.13 overlord/target-protocol

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.14 overlord/stamp

Source

file-type.lisp (file)

Use List
Used By List

overlord/target

Exported Definitions
Internal Definitions

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

4.15 overlord/kernel

Source

file-type.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

4.16 overlord/db

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.17 overlord/message

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.18 overlord/global-state

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.19 overlord/cache

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.20 overlord/specials

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.21 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 (file)

Use List
Used By List
Exported Definitions

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

4.22 overlord/util

Source

file-type.lisp (file)

Use List
Used By List

overlord/target

Exported Definitions
Internal Definitions

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

4.23 overlord/types

Source

file-type.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

5 Definitions

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


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

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Special variables

Special Variable: *base*

The current base.

Package

overlord/specials

Source

file-type.lisp (file)

Special Variable: *base-package*

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

Package

overlord/specials

Source

file-type.lisp (file)

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

overlord/freeze

Source

file-type.lisp (file)

Special Variable: *cli*

Are we running on a CLI?

Package

overlord/specials

Source

file-type.lisp (file)

Special Variable: *db-version*

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

Package

overlord/specials

Source

file-type.lisp (file)

Special Variable: *force*

Whether to force rebuilding.

Package

overlord/specials

Source

file-type.lisp (file)

Special Variable: *jobs*
Package

overlord/specials

Source

file-type.lisp (file)

Special Variable: *message-stream*

The stream printed to by the default message handler.

Package

overlord/message

Source

file-type.lisp (file)

Special Variable: *parents*

The chain of parents being built.

Package

overlord/redo

Source

file-type.lisp (file)

Special Variable: *suppress-phonies*
Package

overlord/specials

Source

file-type.lisp (file)

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 (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Symbol macros

Symbol Macro: far-future
Package

overlord/stamp

Source

file-type.lisp (file)

Expansion

overlord/stamp::+storage-for-deflex-var-far-future+

Symbol Macro: impossible-prereq
Package

overlord/target-protocol

Source

file-type.lisp (file)

Expansion

overlord/target-protocol::+storage-for-deflex-var-impossible-prereq+

Symbol Macro: never
Package

overlord/stamp

Source

file-type.lisp (file)

Expansion

overlord/stamp::+storage-for-deflex-var-never+

Symbol Macro: nproc
Package

overlord/kernel

Source

file-type.lisp (file)

Expansion

overlord/kernel::*storage-for-deflex-var-nproc*

Symbol Macro: root-target
Package

overlord/target-protocol

Source

file-type.lisp (file)

Expansion

overlord/target-protocol::+storage-for-deflex-var-root-target+

Symbol Macro: stamp
Package

overlord/stamp

Source

file-type.lisp (file)

Expansion

overlord/target::+storage-for-deflex-var-stamp+

Symbol Macro: trivial-prereq
Package

overlord/target-protocol

Source

file-type.lisp (file)

Expansion

overlord/target-protocol::+storage-for-deflex-var-trivial-prereq+


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Macros

Macro: check-list-of LIST ITEM-TYPE
Package

overlord/types

Source

file-type.lisp (file)

Macro: defconfig NAME &body INIT
Package

overlord/target

Source

file-type.lisp (file)

Macro: define-global-state NAME INIT &body &optional
Package

overlord/global-state

Source

file-type.lisp (file)

Macro: define-script NAME &body SCRIPT
Package

overlord/target

Source

file-type.lisp (file)

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 (file)

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 (file)

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 (file)

Macro: define-var-once NAME EXPR &optional DOCSTRING

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

Package

overlord/target

Source

file-type.lisp (file)

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 (file)

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 (file)

Macro: dx-sxhash EXPR

Like SXHASH, but try to stack-allocate EXPR.

Package

overlord/util

Source

file-type.lisp (file)

Macro: ensure-pathnamef PLACE
Package

overlord/util

Source

file-type.lisp (file)

Macro: file-target NAME (&key (PATH PATHNAME) 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 (file)

Macro: lessf PLACE &rest ITEM-OR-TUPLE

Modify macro for removing from an Fset map or set.

Package

overlord/util

Source

file-type.lisp (file)

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 (file)

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 (file)

Macro: saving-database &body BODY

Macro wrapper for ‘call/saving-database’.

Package

overlord/db

Source

file-type.lisp (file)

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 (file)

Macro: set-package-system SYSTEM
Package

overlord/base

Source

file-type.lisp (file)

Macro: var-target NAME EXPR &body DEPS

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

Package

overlord/target

Source

file-type.lisp (file)

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

overlord/util

Source

file-type.lisp (file)

Macro: with-build-env (&key JOBS DEBUG) &body BODY
Package

overlord/build-env

Source

file-type.lisp (file)

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

overlord/base

Source

file-type.lisp (file)

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

overlord/kernel

Source

file-type.lisp (file)

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

overlord/target-protocol

Source

file-type.lisp (file)

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

overlord/target-table

Source

file-type.lisp (file)

Macro: withf PLACE &rest ITEM-OR-TUPLE

Modify macro for augmenting an Fset map or set.

Package

overlord/util

Source

file-type.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Compiler macros

Compiler Macro: file PATH
Package

overlord/target

Source

file-type.lisp (file)

Compiler Macro: message FORMAT-CONTROL &rest FORMAT-ARGUMENTS
Package

overlord/message

Source

file-type.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.5 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 (file)

Function: asdf-system-base SYSTEM
Package

overlord/asdf

Source

file-type.lisp (file)

Function: asdf-system-loaded? SYSTEM
Package

overlord/asdf

Source

file-type.lisp (file)

Function: asdf-system-name SYSTEM
Package

overlord/asdf

Source

file-type.lisp (file)

Function: asdf-system-name-keyword SYSTEM
Package

overlord/asdf

Source

file-type.lisp (file)

Function: asdf-system-relative-pathname SYSTEM PATHNAME
Package

overlord/asdf

Source

file-type.lisp (file)

Function: asdf-system-version SYSTEM &key ERROR
Package

overlord/asdf

Source

file-type.lisp (file)

Function: asdf-system? SYSTEM
Package

overlord/asdf

Source

file-type.lisp (file)

Function: ask-for-token* ()

Get a token from the current build environment.

Package

overlord/build-env

Source

file-type.lisp (file)

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 (file)

Function: base-package ()
Package

overlord/specials

Source

file-type.lisp (file)

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 (file)

Function: build-env-bound? ()
Package

overlord/build-env

Source

file-type.lisp (file)

Function: build-package PACKAGE &rest KWS &key &allow-other-keys
Package

overlord/target

Source

file-type.lisp (file)

Function: building? ()

Return T if anything is being built.

Package

overlord/redo

Source

file-type.lisp (file)

Function: byte-array-to-hex-string BA
Package

overlord/util

Source

file-type.lisp (file)

Function: cached-stamp TARGET
Function: (setf cached-stamp) VALUE TARGET
Package

overlord/build-env

Source

file-type.lisp (file)

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 (file)

Function: call/temp-file-pathname DEST FN

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

Package

overlord/util

Source

file-type.lisp (file)

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 (file)

Function: cerror* CONT MESSAGE &rest ARGS
Package

overlord/types

Source

file-type.lisp (file)

Function: change-pathname-type FILE EXT
Package

overlord/target

Source

file-type.lisp (file)

Function: check-not-frozen ()
Package

overlord/freeze

Source

file-type.lisp (file)

Function: claim-file* TARGET FILE
Package

overlord/build-env

Source

file-type.lisp (file)

Function: claim-files* TARGET FILES
Package

overlord/build-env

Source

file-type.lisp (file)

Function: clear-package-prereqs PACKAGE

Clear the current prerequisites of PACKAGE. Return PACKAGE.

Package

overlord/target

Source

file-type.lisp (file)

Function: clear-target-table TABLE
Package

overlord/target-table

Source

file-type.lisp (file)

Function: coerce-case STRING &key READTABLE
Package

overlord/util

Source

file-type.lisp (file)

Function: copy-file-if-changed FROM TO
Package

overlord/util

Source

file-type.lisp (file)

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 (file)

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 (file)

Writer

(setf current-dir!) (function)

Function: (setf current-dir!) DIR
Package

overlord/base

Source

file-type.lisp (file)

Reader

current-dir! (function)

Function: current-system ()

Retrieve or infer the system the current package comes from.

Package

overlord/base

Source

file-type.lisp (file)

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 (file)

Function: db-loaded? ()
Package

overlord/db

Source

file-type.lisp (file)

Function: db-version ()
Package

overlord/types

Source

file-type.lisp (file)

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 (file)

Function: delay-symbol SYMBOL
Package

overlord/types

Source

file-type.lisp (file)

Function: delayed-symbol PACKAGE-NAME SYMBOL-NAME
Package

overlord/types

Source

file-type.lisp (file)

Function: delete-prop OBJ PROP

Delete a property from OBJ.

Package

overlord/db

Source

file-type.lisp (file)

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 (file)

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 (file)

Function: depends-not &rest TARGETS

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

Package

overlord/target

Source

file-type.lisp (file)

Function: depends-not-all TARGETS
Package

overlord/target

Source

file-type.lisp (file)

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 (file)

Function: depends-on* &rest TARGETS

Like ‘depends-on’, but in order.

Package

overlord/target

Source

file-type.lisp (file)

Function: depends-on-all TARGETS
Package

overlord/target

Source

file-type.lisp (file)

Function: depends-on-all* TARGETS
Package

overlord/target

Source

file-type.lisp (file)

Function: digest-file PATHNAME
Package

overlord/digest

Source

file-type.lisp (file)

Function: digest-string STRING
Package

overlord/digest

Source

file-type.lisp (file)

Function: directory-exists NAME

Wrap NAME as a directory reference.

Package

overlord/target

Source

file-type.lisp (file)

Function: dist-version-oracle &optional DIST-NAME
Package

overlord/oracle

Source

file-type.lisp (file)

Function: end-meta-kernel ()

Terminate the Overlord kernel.

Package

overlord/kernel

Source

file-type.lisp (file)

Function: ensure-absolute PATHNAME &key BASE
Package

overlord/base

Source

file-type.lisp (file)

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 (file)

Function: env-oracle NAME
Package

overlord/oracle

Source

file-type.lisp (file)

Function: error* MESSAGE &rest ARGS
Package

overlord/types

Source

file-type.lisp (file)

Function: eval* EXPR

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

Package

overlord/util

Source

file-type.lisp (file)

Function: extension EXT
Package

overlord/target

Source

file-type.lisp (file)

Function: feature-oracle FEATURE
Package

overlord/oracle

Source

file-type.lisp (file)

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 (file)

Function: file-digest-string PATHNAME
Package

overlord/digest

Source

file-type.lisp (file)

Function: file-hash SIZE HASH
Package

overlord/stamp

Source

file-type.lisp (file)

Function: file-meta SIZE TIMESTAMP
Package

overlord/stamp

Source

file-type.lisp (file)

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 (file)

Function: find-asdf-system SYSTEM &key ERROR
Package

overlord/asdf

Source

file-type.lisp (file)

Function: find-pattern PATTERN &optional ERRORP
Package

overlord/target

Source

file-type.lisp (file)

Function: force-symbol DELAY
Package

overlord/types

Source

file-type.lisp (file)

Function: freeze ()
Package

overlord/freeze

Source

file-type.lisp (file)

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 (file)

Writer

(setf freeze-policy) (function)

Function: (setf freeze-policy) VALUE
Package

overlord/freeze

Source

file-type.lisp (file)

Reader

freeze-policy (function)

Function: frozen? ()
Package

overlord/freeze

Source

file-type.lisp (file)

Function: function-oracle FUNCTION-NAME &rest ARGS
Package

overlord/oracle

Source

file-type.lisp (file)

Function: glob-target WILDCARD
Package

overlord/oracle

Source

file-type.lisp (file)

Function: has-prop? OBJ PROP &rest PROPS

Test if an object has a property in the database.

Package

overlord/db

Source

file-type.lisp (file)

Function: list-package-prereqs PACKAGE

List the current prerequisites of PACKAGE.

Package

overlord/target

Source

file-type.lisp (file)

Function: load-asdf-system SYSTEM
Package

overlord/asdf

Source

file-type.lisp (file)

Function: locate-dominating-file FILE NAME
Package

overlord/util

Source

file-type.lisp (file)

Function: make-pattern PATTERN-NAME &key INPUTS OUTPUTS
Package

overlord/target

Source

file-type.lisp (file)

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 (file)

Function: make-target-table &key SIZE SYNCHRONIZED
Package

overlord/target-table

Source

file-type.lisp (file)

Function: maybe-delay-symbol SYMBOL
Package

overlord/types

Source

file-type.lisp (file)

Function: message CONTROL &rest ARGS
Package

overlord/message

Source

file-type.lisp (file)

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 (file)

Function: nproc ()
Package

overlord/kernel

Source

file-type.lisp (file)

Function: optimal-machine-count BUILD-TIMES
Package

overlord/makespan

Source

file-type.lisp (file)

Function: package-base PACKAGE &key ERRORP

Retrieve or infer the base of PACKAGE.

Package

overlord/base

Source

file-type.lisp (file)

Function: package-inferred-asdf-system? SYSTEM
Package

overlord/asdf

Source

file-type.lisp (file)

Function: package-name-asdf-system N
Package

overlord/asdf

Source

file-type.lisp (file)

Function: package-system PACKAGE &key ERRORP

Retrieve or infer the system PACKAGE comes from.

Package

overlord/base

Source

file-type.lisp (file)

Function: pattern INPUTS NAME
Package

overlord/target

Source

file-type.lisp (file)

Function: pattern-from INPUTS PATTERN
Package

overlord/target

Source

file-type.lisp (file)

Function: pattern-into OUTPUTS PATTERN
Package

overlord/target

Source

file-type.lisp (file)

Function: pattern-ref INPUTS PATTERN

Make a pattern reference.

Package

overlord/target

Source

file-type.lisp (file)

Function: primary-asdf-system-name SYSTEM
Package

overlord/asdf

Source

file-type.lisp (file)

Function: prop OBJ PROP &optional DEFAULT

Look up a property for an object in the database.

Package

overlord/db

Source

file-type.lisp (file)

Writer

(setf prop) (function)

Function: (setf prop) VALUE OBJ PROP &optional DEFAULT

Set an object’s property in the database.

Package

overlord/db

Source

file-type.lisp (file)

Reader

prop (function)

Function: quoted-symbol? X
Package

overlord/util

Source

file-type.lisp (file)

Function: read-file-form FILE
Package

overlord/util

Source

file-type.lisp (file)

Function: redo &rest TARGETS

Unconditionally build each target in TARGETS.

Package

overlord/redo

Source

file-type.lisp (file)

Function: redo-all TARGETS &key JOBS DEBUG

Unconditionally build each target in TARGETS.

Package

overlord/redo

Source

file-type.lisp (file)

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 (file)

Function: redo-ifchange &rest TARGETS

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

Package

overlord/redo

Source

file-type.lisp (file)

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 (file)

Function: redo-ifcreate &rest TARGETS

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

Package

overlord/redo

Source

file-type.lisp (file)

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 (file)

Function: register-proc* PROC
Package

overlord/build-env

Source

file-type.lisp (file)

Function: register-worker-special VAR

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

Package

overlord/specials

Source

file-type.lisp (file)

Function: register-worker-specials VARS

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

Package

overlord/specials

Source

file-type.lisp (file)

Function: require-asdf-system SYSTEM
Package

overlord/asdf

Source

file-type.lisp (file)

Function: require-db ()

Load the DB.

Package

overlord/db

Source

file-type.lisp (file)

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 (file)

Function: resolve-file FILE &key BASE
Package

overlord/base

Source

file-type.lisp (file)

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 (file)

Function: resolved-file PATH META
Package

overlord/stamp

Source

file-type.lisp (file)

Function: return-token* TOKEN

Return TOKEN to the current build environment.

Package

overlord/build-env

Source

file-type.lisp (file)

Function: round-down-to-nearest-second TS
Package

overlord/stamp

Source

file-type.lisp (file)

Function: run TARGET &optional SYSTEM-NAME

Entry point for scripts.

Package

overlord/target

Source

file-type.lisp (file)

Function: save-database ()

Save the current database.

Package

overlord/db

Source

file-type.lisp (file)

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 (file)

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 (file)

Function: stamp= S1 S2
Package

overlord/stamp

Source

file-type.lisp (file)

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 (file)

Function: string-digest-string STRING
Package

overlord/digest

Source

file-type.lisp (file)

Function: strip-directory PATHNAME

Return PATHNAME without its directory (or device).

Package

overlord/util

Source

file-type.lisp (file)

Function: system-version-oracle NAME
Package

overlord/oracle

Source

file-type.lisp (file)

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 (file)

Function: target-locked-p TARGET
Package

overlord/build-env

Source

file-type.lisp (file)

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

overlord/target-protocol

Source

file-type.lisp (file)

Reader

target-saved-prereqs (generic function)

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

overlord/target-protocol

Source

file-type.lisp (file)

Reader

target-saved-prereqsne (generic function)

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 (file)

Function: target-table-keys TABLE
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-table-len TABLE
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-table-member TABLE KEY
Function: (setf target-table-member) VALUE TABLE KEY
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-table-ref TABLE KEY
Function: (setf target-table-ref) VALUE TABLE KEY
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-table-rem TABLE KEY
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-timestamp= TS1 TS2

Is TS1 greater than TS2?

Package

overlord/stamp

Source

file-type.lisp (file)

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 (file)

Function: task TARGET THUNK SCRIPT BASE
Package

overlord/target

Source

file-type.lisp (file)

Function: temp-prereqs TARGET
Function: (setf temp-prereqs) VALUE0 TARGET
Package

overlord/build-env

Source

file-type.lisp (file)

Function: temp-prereqsne TARGET
Function: (setf temp-prereqsne) VALUE0 TARGET
Package

overlord/build-env

Source

file-type.lisp (file)

Function: timestamp-diff END START

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

Package

overlord/util

Source

file-type.lisp (file)

Function: timestamp-newer? TS1 TS2

Is TS1 greater than TS2?

Package

overlord/stamp

Source

file-type.lisp (file)

Function: unfreeze ()
Package

overlord/freeze

Source

file-type.lisp (file)

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 (file)

Function: unregister-worker-special VAR

Stop VAR from being propagated into worker threads.

Package

overlord/specials

Source

file-type.lisp (file)

Function: unregister-worker-specials VARS

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

Package

overlord/specials

Source

file-type.lisp (file)

Function: use &rest TARGETS

Like ‘use-all’, but variadic.

Package

overlord/target

Source

file-type.lisp (file)

Function: use-all TARGETS

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

Package

overlord/target

Source

file-type.lisp (file)

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

overlord/specials

Source

file-type.lisp (file)

Function: var-oracle VAR
Package

overlord/oracle

Source

file-type.lisp (file)

Function: version-major-version VERSION
Package

overlord/util

Source

file-type.lisp (file)

Function: worker-specials ()
Function: (setf worker-specials) VALUE
Package

overlord/specials

Source

file-type.lisp (file)

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 (file)

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 (file)

Function: write-form-as-file FORM FILE
Package

overlord/util

Source

file-type.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.6 Generic functions

Generic Function: build-script-target SCRIPT
Package

overlord/target-protocol

Source

file-type.lisp (file)

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

file-type.lisp (file)

Generic Function: call-with-target-locked TARGET FN

Call FN with TARGET locked.

Package

overlord/target-protocol

Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: call-with-target-locked (SELF pattern-ref) FN
Source

file-type.lisp (file)

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

file-type.lisp (file)

Method: call-with-target-locked (TARGET directory-exists) FN

Lock the directory (file), not target.

Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: call-with-target-locked (TARGET root-target) FN
Source

file-type.lisp (file)

Method: call-with-target-locked TARGET FN

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

Source

file-type.lisp (file)

Generic Function: clear-temp-prereqs TARGET
Package

overlord/target-protocol

Source

file-type.lisp (file)

Methods
Method: clear-temp-prereqs TARGET
Source

file-type.lisp (file)

Generic Function: clear-temp-prereqsne TARGET
Package

overlord/target-protocol

Source

file-type.lisp (file)

Methods
Method: clear-temp-prereqsne TARGET
Source

file-type.lisp (file)

Generic Function: delete-target TARGET

Delete TARGET, if it can be deleted.

Package

overlord/target-protocol

Source

file-type.lisp (file)

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

file-type.lisp (file)

Method: delete-target (TARGET symbol)
Source

file-type.lisp (file)

Method: delete-target (TARGET package)
Source

file-type.lisp (file)

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

file-type.lisp (file)

Method: delete-target (TARGET pathname)
Source

file-type.lisp (file)

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

file-type.lisp (file)

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 (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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 (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: hash-target (SELF ref)
Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: hash-target (SELF oracle)
Source

file-type.lisp (file)

Method: hash-target TARGET around
Method: hash-target TARGET
Generic Function: merge-input-defaults PATTERN INPUTS
Package

overlord/target

Source

file-type.lisp (file)

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 (file)

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 (file)

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 (SELF oracle) around
Generic Function: oracle-question OBJECT
Package

overlord/oracle

Methods
Method: oracle-question (ORACLE oracle)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: overlord-error-target ERROR
Package

overlord/types

Source

file-type.lisp (file)

Methods
Method: overlord-error-target (CONDITION target-error)
Source

file-type.lisp (file)

Generic Function: pattern-build PATTERN INPUTS OUTPUTS

Build OUTPUTS from INPUTS according to PATTERN.

Package

overlord/target

Source

file-type.lisp (file)

Methods
Method: pattern-build (SELF unloaded-pattern) INPUT OUTPUT
Generic Function: pattern-name PATTERN
Package

overlord/target

Source

file-type.lisp (file)

Methods
Method: pattern-name (UNLOADED-PATTERN unloaded-pattern)

automatically generated reader method

Method: pattern-name (SELF pattern)
Method: pattern-name (PATTERN symbol)
Method: pattern-name (PATTERN delayed-symbol)
Generic Function: pattern-ref-outputs OBJECT
Package

overlord/target

Methods
Method: pattern-ref-outputs (PATTERN-REF pattern-ref)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: pattern-ref-static-inputs OBJECT
Package

overlord/target

Methods
Method: pattern-ref-static-inputs (PATTERN-REF pattern-ref)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: pattern.input-defaults OBJECT
Package

overlord/target

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

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: pattern.output-defaults OBJECT
Package

overlord/target

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

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: record-prereq TARGET

Record TARGET as a prerequisite of the current parent.

Package

overlord/target-protocol

Source

file-type.lisp (file)

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

file-type.lisp (file)

Method: record-prereq (TARGET symbol)
Source

file-type.lisp (file)

Method: record-prereq (TARGET null)
Source

file-type.lisp (file)

Method: record-prereq TARGET &aux PARENT
Source

file-type.lisp (file)

Generic Function: record-prereqne TARGET
Package

overlord/target-protocol

Source

file-type.lisp (file)

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

file-type.lisp (file)

Method: record-prereqne (TARGET symbol)
Source

file-type.lisp (file)

Method: record-prereqne TARGET &aux PARENT
Source

file-type.lisp (file)

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 (file)

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

file-type.lisp (file)

Method: resolve-target (SELF pattern-ref) &optional BASE
Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: resolve-target TARGET &optional BASE
Generic Function: run-script TASK
Package

overlord/target-protocol

Source

file-type.lisp (file)

Methods
Method: run-script TASK &aux PARENT
Source

file-type.lisp (file)

Generic Function: save-temp-prereqs TARGET
Package

overlord/target-protocol

Source

file-type.lisp (file)

Methods
Method: save-temp-prereqs TARGET
Source

file-type.lisp (file)

Generic Function: save-temp-prereqsne TARGET
Package

overlord/target-protocol

Source

file-type.lisp (file)

Methods
Method: save-temp-prereqsne TARGET
Source

file-type.lisp (file)

Generic Function: saved-prereq-stamp PREREQ
Package

overlord/target-protocol

Source

file-type.lisp (file)

Methods
Method: saved-prereq-stamp P
Source

file-type.lisp (file)

Generic Function: saved-prereq-target PREREQ
Package

overlord/target-protocol

Source

file-type.lisp (file)

Methods
Method: saved-prereq-target P
Source

file-type.lisp (file)

Generic Function: target-build-script TARGET
Package

overlord/target-protocol

Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-build-script TARGET
Source

file-type.lisp (file)

Method: target-build-script TARGET around
Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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 (file)

Writer

(setf target-build-time) (generic function)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-build-time TARGET
Source

file-type.lisp (file)

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

overlord/target-protocol

Source

file-type.lisp (file)

Reader

target-build-time (generic function)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Generic Function: target-exists? TARGET

Does TARGET exists?

Package

overlord/target-protocol

Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-exists? (TARGET symbol)
Source

file-type.lisp (file)

Method: target-exists? (TARGET package)
Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-exists? TARGET around
Method: target-exists? TARGET
Generic Function: target-in-db? TARGET

Has TARGET been built before?

Package

overlord/target-protocol

Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-in-db? TARGET
Source

file-type.lisp (file)

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 (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

overlord/target-protocol

Source

file-type.lisp (file)

Writer

(setf target-saved-prereqs) (function)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-saved-prereqs TARGET
Source

file-type.lisp (file)

Generic Function: target-saved-prereqsne TARGET
Package

overlord/target-protocol

Source

file-type.lisp (file)

Writer

(setf target-saved-prereqsne) (function)

Methods
Method: target-saved-prereqsne TARGET
Source

file-type.lisp (file)

Generic Function: target-stamp TARGET

Return the stamp of TARGET.

Package

overlord/target-protocol

Source

file-type.lisp (file)

Methods
Method: target-stamp (TARGET pathname)
Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-stamp (SELF oracle)
Source

file-type.lisp (file)

Method: target-stamp TARGET
Generic Function: target-static-prereqs TARGET
Package

overlord/target-protocol

Source

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-static-prereqs (PATTERN-REF pattern-ref)

automatically generated reader method

Source

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-static-prereqs TARGET
Generic Function: target-timestamp TARGET

Return the timestamp of TARGET.

Package

overlord/stamp

Source

file-type.lisp (file)

Writer

(setf target-timestamp) (generic function)

Methods
Method: target-timestamp (TARGET pathname)
Source

file-type.lisp (file)

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

file-type.lisp (file)

Method: target-timestamp (TARGET symbol)
Source

file-type.lisp (file)

Method: target-timestamp (TARGET package)
Source

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

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

Package

overlord/stamp

Source

file-type.lisp (file)

Reader

target-timestamp (generic function)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

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

file-type.lisp (file)

Generic Function: target= TARGET1 TARGET2

Are TARGET1 and TARGET2 the same?

Package

overlord/target-protocol

Source

file-type.lisp (file)

Methods
Method: target= (X pathname) (Y pathname)
Source

file-type.lisp (file)

Method: target= (X delayed-symbol) (Y delayed-symbol)
Source

file-type.lisp (file)

Method: target= (X symbol) (Y delayed-symbol)
Source

file-type.lisp (file)

Method: target= (X delayed-symbol) (Y symbol)
Source

file-type.lisp (file)

Method: target= X (Y delayed-symbol)
Source

file-type.lisp (file)

Method: target= (X delayed-symbol) Y
Source

file-type.lisp (file)

Method: target= (SELF relative-file-target) (OTHER relative-file-target)
Source

file-type.lisp (file)

Method: target= (SELF pattern-ref) (OTHER pattern-ref)
Source

file-type.lisp (file)

Method: target= (TARGET file-digest-ref) (OTHER file-digest-ref)
Source

file-type.lisp (file)

Method: target= (TARGET directory-exists) (Y directory-exists)
Source

file-type.lisp (file)

Method: target= (SELF feature-oracle) (OTHER feature-oracle)
Source

file-type.lisp (file)

Method: target= (SELF dist-version-oracle) (OTHER dist-version-oracle)
Source

file-type.lisp (file)

Method: target= (SELF system-version-oracle) (OTHER system-version-oracle)
Source

file-type.lisp (file)

Method: target= (SELF env-oracle) (OTHER env-oracle)
Source

file-type.lisp (file)

Method: target= (SELF readtable-oracle) (OTHER readtable-oracle)
Source

file-type.lisp (file)

Method: target= (SELF package-oracle) (OTHER package-oracle)
Source

file-type.lisp (file)

Method: target= (SELF fixed-question-oracle) (OTHER fixed-question-oracle)
Source

file-type.lisp (file)

Method: target= (SELF cl-var-oracle) (OTHER cl-var-oracle)
Source

file-type.lisp (file)

Method: target= (SELF var-oracle) (OTHER var-oracle)
Source

file-type.lisp (file)

Method: target= (SELF oracle) (OTHER oracle)
Source

file-type.lisp (file)

Method: target= T1 T2
Method: target= T1 T2 around

Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.7 Conditions

Condition: missing-script ()
Package

overlord/redo

Source

file-type.lisp (file)

Direct superclasses

target-error (condition)

Condition: overlord-condition ()
Package

overlord/types

Source

file-type.lisp (file)

Direct superclasses

condition (condition)

Direct subclasses
Direct methods

print-object (method)

Condition: overlord-error ()
Package

overlord/types

Source

file-type.lisp (file)

Direct superclasses
Direct subclasses
Condition: overlord-warning ()
Package

overlord/types

Source

file-type.lisp (file)

Direct superclasses
Condition: recursive-dependency ()
Package

overlord/redo

Source

file-type.lisp (file)

Direct superclasses

target-error (condition)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.8 Structures

Structure: delayed-symbol ()
Package

overlord/types

Source

file-type.lisp (file)

Direct superclasses

%read-only-struct (structure)

Direct methods
Direct slots
Slot: package-name
Type

string

Initform

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

Readers

delayed-symbol-package-name (function)

Writers

(setf delayed-symbol-package-name) (function)

Slot: symbol-name
Type

string

Initform

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

Readers

delayed-symbol-symbol-name (function)

Writers

(setf delayed-symbol-symbol-name) (function)

Structure: far-future ()
Package

overlord/stamp

Source

file-type.lisp (file)

Direct superclasses

%unit (structure)

Direct methods
  • %constructor= (method)
  • make-load-form (method)
  • print-object (method)
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 (file)

Direct superclasses

%read-only-struct (structure)

Direct methods
  • compare (method)
  • constructor-values/generic (method)
  • %constructor= (method)
  • make-load-form (method)
  • read-only-struct-slot-names (method)
  • print-object (method)
Direct slots
Slot: size
Type

(integer 0 *)

Initform

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

Readers

file-hash-size (function)

Writers

(setf file-hash-size) (function)

Slot: hash
Type

string

Initform

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

Readers

file-hash-hash (function)

Writers

(setf file-hash-hash) (function)

Structure: file-meta ()

Metadata to track whether a file has changed.

Package

overlord/stamp

Source

file-type.lisp (file)

Direct superclasses

%read-only-struct (structure)

Direct methods
  • compare (method)
  • constructor-values/generic (method)
  • %constructor= (method)
  • make-load-form (method)
  • read-only-struct-slot-names (method)
  • print-object (method)
Direct slots
Slot: size
Type

(integer 0 *)

Initform

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

Readers

file-meta-size (function)

Writers

(setf file-meta-size) (function)

Slot: timestamp
Type

overlord/stamp:target-timestamp

Initform

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

Readers

file-meta-timestamp (function)

Writers

(setf file-meta-timestamp) (function)

Structure: impossible-prereq ()

The target that is always out of date.

Package

overlord/target-protocol

Source

file-type.lisp (file)

Direct superclasses

%unit (structure)

Direct methods
  • print-target-being-built (method)
  • compare (method)
  • compare (method)
  • target-node-label (method)
  • target-build-script (method)
  • target-build-time (method)
  • target-build-time (method)
  • call-with-target-locked (method)
  • hash-friendly? (method)
  • hash-target (method)
  • target-timestamp (method)
  • target-exists? (method)
  • target-in-db? (method)
  • record-prereqne (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • %constructor= (method)
  • make-load-form (method)
  • print-object (method)
Structure: never ()
Package

overlord/stamp

Source

file-type.lisp (file)

Direct superclasses

%unit (structure)

Direct methods
  • %constructor= (method)
  • make-load-form (method)
  • print-object (method)
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 (file)

Direct superclasses

%read-only-struct (structure)

Direct methods
  • compare (method)
  • constructor-values/generic (method)
  • %constructor= (method)
  • make-load-form (method)
  • read-only-struct-slot-names (method)
  • print-object (method)
Direct slots
Slot: path
Type

serapeum:file-pathname

Initform

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

Readers

resolved-file-path (function)

Writers

(setf resolved-file-path) (function)

Slot: meta
Type

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

Initform

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

Readers

resolved-file-meta (function)

Writers

(setf resolved-file-meta) (function)

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 (file)

Direct superclasses

%unit (structure)

Direct methods
  • compare (method)
  • compare (method)
  • target-node-label (method)
  • target-static-prereqs (method)
  • target-build-script (method)
  • target-saved-prereqs (method)
  • call-with-target-locked (method)
  • hash-friendly? (method)
  • hash-target (method)
  • target-timestamp (method)
  • target-in-db? (method)
  • record-parent-prereq (method)
  • target-exists? (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • %constructor= (method)
  • make-load-form (method)
  • print-object (method)
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 (file)

Direct superclasses

structure-object (structure)

Direct methods

print-object (method)

Direct slots
Slot: map
Type

fset:map

Initform

(fset:empty-map)

Readers

target-table.map (function)

Writers

(setf target-table.map) (function)

Slot: hash-table
Type

hash-table

Initform

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

Readers

target-table.hash-table (function)

Writers

(setf target-table.hash-table) (function)

Slot: lock
Initform

(bordeaux-threads:make-recursive-lock)

Readers

target-table.lock (function)

Writers

(setf target-table.lock) (function)

Slot: synchronized
Type

boolean

Readers

target-table.synchronized (function)

Writers

(setf target-table.synchronized) (function)

Structure: task ()

A task.

Package

overlord/target

Source

file-type.lisp (file)

Direct superclasses

%read-only-struct (structure)

Direct methods
  • build-script-target (method)
  • constructor-values/generic (method)
  • %constructor= (method)
  • make-load-form (method)
  • read-only-struct-slot-names (method)
  • print-object (method)
Direct slots
Slot: target
Type

overlord/target::target

Initform

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

Readers

task-target (function)

Writers

(setf task-target) (function)

Slot: thunk
Type

function

Initform

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

Readers

task-thunk (function)

Writers

(setf task-thunk) (function)

Slot: script
Type

overlord/target::target

Initform

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

Readers

task-script (function)

Writers

(setf task-script) (function)

Slot: base
Type

(or null serapeum:directory-pathname)

Initform

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

Readers

task-base (function)

Writers

(setf task-base) (function)

Structure: trivial-prereq ()

The target that is never out of date.

Package

overlord/target-protocol

Source

file-type.lisp (file)

Direct superclasses

%unit (structure)

Direct methods
  • print-target-being-built (method)
  • compare (method)
  • compare (method)
  • target-node-label (method)
  • target-build-script (method)
  • target-build-time (method)
  • target-build-time (method)
  • call-with-target-locked (method)
  • hash-friendly? (method)
  • hash-target (method)
  • target-timestamp (method)
  • target-exists? (method)
  • target-in-db? (method)
  • record-prereq (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • compare (method)
  • %constructor= (method)
  • make-load-form (method)
  • print-object (method)

Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.9 Classes

Class: directory-exists ()

A reference to a directory.

Package

overlord/target

Source

file-type.lisp (file)

Direct superclasses

ref (class)

Direct methods
Direct slots
Slot: name
Type

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

Initargs

:path

Readers

directory-exists.path (generic function)

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 (file)

Direct superclasses

oracle (class)

Direct methods
Direct slots
Slot: question
Type

string

Initargs

:name

Readers

dist-version-oracle.name (generic function)

Direct Default Initargs
InitargValue
:nameoverlord/oracle::quicklisp
Class: env-oracle ()

Oracle that wraps an environment variable.

Package

overlord/oracle

Source

file-type.lisp (file)

Direct superclasses

oracle (class)

Direct methods
Direct slots
Slot: question
Type

string

Initargs

:name

Readers

env-oracle.name (generic function)

Direct Default Initargs
InitargValue
:name(alexandria:required-argument :name)
Class: feature-oracle ()

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

Package

overlord/oracle

Source

file-type.lisp (file)

Direct superclasses

oracle (class)

Direct methods
Direct slots
Slot: question
Type

keyword

Initargs

:feature

Readers

feature-oracle.feature (generic function)

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 (file)

Direct superclasses

oracle (class)

Direct methods
Direct slots
Slot: question
Type

overlord/types:delayed-symbol

Initargs

:function

Readers

function-oracle.delayed-symbol (generic function)

Slot: args
Type

list

Initargs

:args

Readers

function-oracle.args (generic function)

Direct Default Initargs
InitargValue
:argsnil
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 (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: question
Initargs

:question

Readers

oracle-question (generic function)

Class: overlord-project-system ()
Package

overlord/project-system

Source

file-type.lisp (file)

Direct superclasses

system (class)

Direct methods
Direct slots
Slot: target-name
Initargs

:target-name

Initform

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

Readers

project-system-target-name (generic function)

Class: pattern ()

A file-to-file build pattern.

Package

overlord/target

Source

file-type.lisp (file)

Direct superclasses

externalizable (class)

Direct subclasses

unloaded-pattern (class)

Direct methods
Direct slots
Slot: input-defaults
Type

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

Initargs

:input-defaults

Readers

pattern.input-defaults (generic function)

Slot: output-defaults
Type

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

Initargs

:output-defaults

Readers

pattern.output-defaults (generic function)

Slot: script
Type

overlord/target::target

Initargs

:script

Readers

pattern.script (generic function)

Direct Default Initargs
InitargValue
:input-defaultsnil
:output-defaultsnil
:scriptoverlord/target-protocol:trivial-prereq
Class: pattern-ref ()
Package

overlord/target

Source

file-type.lisp (file)

Direct superclasses

ref (class)

Direct methods
Direct slots
Slot: pattern
Type

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

Initargs

:pattern

Readers

pattern-ref-pattern (generic function)

Slot: name
Type

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

Initargs

:inputs

Readers
Slot: outputs
Type

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

Initargs

:outputs

Readers

pattern-ref-outputs (generic function)

Slot: base
Type

overlord/target::pathname

Initform

(overlord/base:base)

Readers

pattern-ref-base (generic function)

Direct Default Initargs
InitargValue
:inputs(quote nil)
:outputs(quote nil)
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 (file)

Direct superclasses

oracle (class)

Direct methods
Direct slots
Slot: question
Type

string

Initargs

:name

Readers

system-version-oracle.system-name (generic function)

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 (file)

Direct superclasses

oracle (class)

Direct methods
Direct slots
Slot: question
Type

overlord/types:delayed-symbol

Initargs

:var

Readers

var-oracle.var (generic function)

Slot: sym

Cache for the resolved symbol.

Type

symbol

Direct Default Initargs
InitargValue
:var(alexandria:required-argument :var)

Previous: , Up: Exported definitions   [Contents][Index]

5.1.10 Types

Type: asdf-system ()
Package

overlord/asdf

Source

file-type.lisp (file)

Type: case-mode ()

Possible values for a readtable’s case mode.

Package

overlord/types

Source

file-type.lisp (file)

Type: cl-symbol ()
Package

overlord/types

Source

file-type.lisp (file)

Type: db-version ()
Package

overlord/types

Source

file-type.lisp (file)

Type: freeze-policy ()
Package

overlord/freeze

Source

file-type.lisp (file)

Type: hash-code ()
Package

overlord/types

Source

file-type.lisp (file)

Type: list-of A
Package

overlord/types

Source

file-type.lisp (file)

Type: oracle-answer ()
Package

overlord/oracle

Source

file-type.lisp (file)

Type: package-designator ()
Package

overlord/types

Source

file-type.lisp (file)

Type: pathname-designator ()
Package

overlord/types

Source

file-type.lisp (file)

Type: plist ()
Package

overlord/types

Source

file-type.lisp (file)

Type: stamp ()
Package

overlord/stamp

Source

file-type.lisp (file)

Type: tame-pathname ()
Package

overlord/types

Source

file-type.lisp (file)

Type: target-timestamp ()

Possible formats for the timestamp of a target.

Package

overlord/stamp

Source

file-type.lisp (file)

Type: temporary-file ()
Package

overlord/types

Source

file-type.lisp (file)

Type: universal-time ()
Package

overlord/types

Source

file-type.lisp (file)


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

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Constants

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

overlord/target

Source

file-type.lisp (file)

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

overlord/stamp

Source

file-type.lisp (file)

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

overlord/target-protocol

Source

file-type.lisp (file)

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

overlord/stamp

Source

file-type.lisp (file)

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

overlord/target

Source

file-type.lisp (file)

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

overlord/target

Source

file-type.lisp (file)

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

overlord/target

Source

file-type.lisp (file)

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

overlord/oracle

Source

file-type.lisp (file)

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

overlord/target-protocol

Source

file-type.lisp (file)

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

overlord/target

Source

file-type.lisp (file)

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

overlord/kernel

Source

file-type.lisp (file)

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

overlord/db

Source

file-type.lisp (file)

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

overlord/target-protocol

Source

file-type.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Special variables

Special Variable: *build-env*

Environment for the current build.

Package

overlord/build-env

Source

file-type.lisp (file)

Special Variable: *build-id*
Package

overlord/build-env

Source

file-type.lisp (file)

Special Variable: *db*

The database.

Package

overlord/db

Source

file-type.lisp (file)

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

overlord/freeze

Source

file-type.lisp (file)

Special Variable: *freeze-policy*
Package

overlord/freeze

Source

file-type.lisp (file)

Special Variable: *frozen*

Is the build system frozen?

Package

overlord/freeze

Source

file-type.lisp (file)

Special Variable: *global-state*
Package

overlord/global-state

Source

file-type.lisp (file)

Special Variable: *initial-pathname-defaults*
Package

overlord/global-state

Source

file-type.lisp (file)

Special Variable: *initial-working-dir*
Package

overlord/global-state

Source

file-type.lisp (file)

Special Variable: *meta-kernel*

Lparallel kernel for fetching target metadata.

Package

overlord/kernel

Source

file-type.lisp (file)

Special Variable: *package-bases*
Package

overlord/base

Source

file-type.lisp (file)

Special Variable: *prereq-packages*
Package

overlord/target

Source

file-type.lisp (file)

Special Variable: *save-pending*

Is there a save pending?

Package

overlord/db

Source

file-type.lisp (file)

Special Variable: *scripts*

Set of registered scripts.

Package

overlord/target

Source

file-type.lisp (file)

Special Variable: *symbol-timestamps*
Package

overlord/target

Source

file-type.lisp (file)

Special Variable: *tasks*
Package

overlord/target

Source

file-type.lisp (file)

Special Variable: *top-level-targets*
Package

overlord/target

Source

file-type.lisp (file)

Special Variable: *use-threads*

Whether to allow parallelism.

Package

overlord/specials

Source

file-type.lisp (file)

Special Variable: *worker-specials*

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

Package

overlord/specials

Source

file-type.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Symbol macros

Symbol Macro: build-time
Package

overlord/target

Source

file-type.lisp (file)

Expansion

overlord/target::+storage-for-deflex-var-build-time+

Symbol Macro: db-readtable
Package

overlord/db

Source

file-type.lisp (file)

Expansion

overlord/db::*storage-for-deflex-var-db-readtable*

Symbol Macro: meta-kernel-size
Package

overlord/kernel

Source

file-type.lisp (file)

Expansion

overlord/kernel::*storage-for-deflex-var-meta-kernel-size*

Symbol Macro: no-log-data
Package

overlord/db

Source

file-type.lisp (file)

Expansion

overlord/db::*storage-for-deflex-var-no-log-data*

Symbol Macro: nonexist
Package

overlord/target

Source

file-type.lisp (file)

Expansion

overlord/target::+storage-for-deflex-var-nonexist+

Symbol Macro: prereqs
Package

overlord/target

Source

file-type.lisp (file)

Expansion

overlord/target::+storage-for-deflex-var-prereqs+

Symbol Macro: prereqsne
Package

overlord/target

Source

file-type.lisp (file)

Expansion

overlord/target::+storage-for-deflex-var-prereqsne+

Symbol Macro: quicklisp
Package

overlord/oracle

Source

file-type.lisp (file)

Expansion

overlord/oracle::+storage-for-deflex-var-quicklisp+

Symbol Macro: template-directory
Package

overlord/project-system

Source

file-type.lisp (file)

Expansion

overlord/project-system::*storage-for-deflex-var-template-directory*

Symbol Macro: thread-count-cap
Package

overlord/kernel

Source

file-type.lisp (file)

Expansion

overlord/kernel::+storage-for-deflex-var-thread-count-cap+

Symbol Macro: tombstone
Package

overlord/db

Source

file-type.lisp (file)

Expansion

overlord/db::+storage-for-deflex-var-tombstone+

Symbol Macro: top-level-target-lock
Package

overlord/target

Source

file-type.lisp (file)

Expansion

overlord/target::*storage-for-deflex-var-top-level-target-lock*


Next: , Previous: , Up: Internal definitions   [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 (file)

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 (file)

Macro: define-script-for NAME &body BODY
Package

overlord/target

Source

file-type.lisp (file)

Macro: define-target-config/aux NAME &body SCRIPT
Package

overlord/target

Source

file-type.lisp (file)

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 (file)

Macro: if TEST THEN ELSE

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

Package

overlord/target

Source

file-type.lisp (file)

Macro: if-let BINDINGS THEN ELSE

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

Package

overlord/target

Source

file-type.lisp (file)

Macro: phony-task-target NAME &body SCRIPT

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

Package

overlord/target

Source

file-type.lisp (file)

Macro: with-procs-tracked (ENV) &body BODY
Package

overlord/build-env

Source

file-type.lisp (file)

Macro: with-standard-io-syntax* &body BODY

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

Package

overlord/db

Source

file-type.lisp (file)

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

overlord/build-env

Source

file-type.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.5 Compiler macros

Compiler Macro: db-error CONTROL-STR &rest ARGS
Package

overlord/db

Source

file-type.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.6 Functions

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

overlord/cache

Source

file-type.lisp (file)

Function: %make-target-table &key (MAP MAP) (HASH-TABLE HASH-TABLE) (LOCK LOCK) (SYNCHRONIZED SYNCHRONIZED)
Package

overlord/target-table

Source

file-type.lisp (file)

Function: absolute-directory-pathname? X

Is X an absolute directory pathname?

Package

overlord/base

Source

file-type.lisp (file)

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 (file)

Function: alist-to-target-table ALIST
Package

overlord/target-table

Source

file-type.lisp (file)

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 (file)

Function: ask-for-token ENV
Package

overlord/build-env

Source

file-type.lisp (file)

Function: build-default-system-target SYSTEM
Package

overlord/project-system

Source

file-type.lisp (file)

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 (file)

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 (file)

Function: built-in-symbol? SYMBOL
Package

overlord/types

Source

file-type.lisp (file)

Function: call-with-target-meta-locked TARGET FN
Package

overlord/build-env

Source

file-type.lisp (file)

Function: call/build-env FN &key JOBS DEBUG
Package

overlord/build-env

Source

file-type.lisp (file)

Function: call/current-dir THUNK DIR
Package

overlord/base

Source

file-type.lisp (file)

Function: call/meta-kernel THUNK
Package

overlord/kernel

Source

file-type.lisp (file)

Function: call/saving-database THUNK

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

Package

overlord/db

Source

file-type.lisp (file)

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 (file)

Function: check-generic-function NAME

Check that NAME is bound to a generic function.

Package

overlord/target

Source

file-type.lisp (file)

Function: check-list-of* LIST ITEM-TYPE
Package

overlord/types

Source

file-type.lisp (file)

Function: check-version ()

Check that the database version matches the Overlord system version.

Package

overlord/db

Source

file-type.lisp (file)

Function: cl-sym? SYM
Package

overlord/oracle

Source

file-type.lisp (file)

Function: cl-symbol-p X
Package

overlord/types

Source

file-type.lisp (file)

Function: clear-scripts ()

Nix all symbols registered as scripts.

Package

overlord/target

Source

file-type.lisp (file)

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 (file)

Function: copy-db INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

Function: copy-dead-db INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

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 (file)

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 (file)

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 (file)

Function: copy-machine INSTANCE
Package

overlord/makespan

Source

file-type.lisp (file)

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 (file)

Function: copy-target-meta INSTANCE
Package

overlord/build-env

Source

file-type.lisp (file)

Function: copy-target-table INSTANCE
Package

overlord/target-table

Source

file-type.lisp (file)

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 (file)

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 (file)

Function: current-lisp-file ()
Package

overlord/base

Source

file-type.lisp (file)

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 (file)

Function: db ()

Get the current database, loading it if necessary.

Package

overlord/db

Source

file-type.lisp (file)

Function: db-alist &optional DB

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

Package

overlord/db

Source

file-type.lisp (file)

Function: db-error CONTROL-STR &rest ARGS
Package

overlord/db

Source

file-type.lisp (file)

Function: db-p OBJECT
Package

overlord/db

Source

file-type.lisp (file)

Function: db-ref* KEY
Function: (setf db-ref*) VALUE0 KEY

Access KEY in the current database.

Package

overlord/db

Source

file-type.lisp (file)

Function: db-write OBJ STREAM

Write OBJ to STREAM using the database syntax.

Package

overlord/db

Source

file-type.lisp (file)

Function: db.current-map INSTANCE
Function: (setf db.current-map) VALUE INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

Function: db.last-saved-map INSTANCE
Function: (setf db.last-saved-map) VALUE INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

Function: db.log-file INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

Function: db.state INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

Function: db.version INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

Function: dead-db-p OBJECT
Package

overlord/db

Source

file-type.lisp (file)

Function: deduplicate-targets TARGETS &key KEY
Package

overlord/target

Source

file-type.lisp (file)

Function: delayed-symbol-package-name INSTANCE
Package

overlord/types

Source

file-type.lisp (file)

Function: delayed-symbol-symbol-name INSTANCE
Package

overlord/types

Source

file-type.lisp (file)

Function: delayed-symbol= DS1 DS2
Package

overlord/types

Source

file-type.lisp (file)

Function: delete-file-or-directory P
Package

overlord/target

Source

file-type.lisp (file)

Function: dist-exists? DIST
Package

overlord/oracle

Source

file-type.lisp (file)

Function: ensure-absolute-directory-pathname X

Resolve X as an absolute directory pathname.

Package

overlord/base

Source

file-type.lisp (file)

Function: ensure-file-target-pathname PATHNAME
Package

overlord/target

Source

file-type.lisp (file)

Function: ensure-meta-kernel ()
Package

overlord/kernel

Source

file-type.lisp (file)

Function: ensure-pathname* X
Package

overlord/util

Source

file-type.lisp (file)

Function: existing-file-unchanged? DATA FILE &key BUFFER-SIZE
Package

overlord/util

Source

file-type.lisp (file)

Function: extract-directives FORMAT-STRING
Package

overlord/message

Source

file-type.lisp (file)

Function: file-digest-ref FILE
Package

overlord/target

Source

file-type.lisp (file)

Function: file-hash-hash INSTANCE
Package

overlord/stamp

Source

file-type.lisp (file)

Function: file-hash-size INSTANCE
Package

overlord/stamp

Source

file-type.lisp (file)

Function: file-hash= X Y
Package

overlord/stamp

Source

file-type.lisp (file)

Function: file-meta-size INSTANCE
Package

overlord/stamp

Source

file-type.lisp (file)

Function: file-meta-timestamp INSTANCE
Package

overlord/stamp

Source

file-type.lisp (file)

Function: file-meta= X Y
Package

overlord/stamp

Source

file-type.lisp (file)

Function: file-stamp FILE
Package

overlord/target

Source

file-type.lisp (file)

Function: file-stamp/hash FILE
Package

overlord/target

Source

file-type.lisp (file)

Function: file-target-name-file-name NAME
Package

overlord/target

Source

file-type.lisp (file)

Function: file-task TASK
Package

overlord/target

Source

file-type.lisp (file)

Function: get-version COMMAND
Package

overlord/oracle

Source

file-type.lisp (file)

Function: getpid ()
Package

overlord/db

Source

file-type.lisp (file)

Function: guess-arg-count FORMAT-STRING

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

Package

overlord/message

Source

file-type.lisp (file)

Function: guess-system-from-package-name NAME
Package

overlord/base

Source

file-type.lisp (file)

Function: hard-freeze-targets ()

Freeze targets.

Package

overlord/target

Source

file-type.lisp (file)

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 (file)

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 (file)

Function: impossible-task TARGET
Package

overlord/target

Source

file-type.lisp (file)

Function: in-worker? ()
Package

overlord/db

Source

file-type.lisp (file)

Function: infer-system PACKAGE &key ERRORP
Package

overlord/base

Source

file-type.lisp (file)

Function: infer-system-from-package &optional PACKAGE
Package

overlord/base

Source

file-type.lisp (file)

Function: infer-system-from-package-affix PACKAGE
Package

overlord/base

Source

file-type.lisp (file)

Function: infer-system-from-package-names PACKAGE
Package

overlord/base

Source

file-type.lisp (file)

Function: list-without-nil? LIST
Package

overlord/types

Source

file-type.lisp (file)

Function: load-log-data LOG-FILE

Load the data from LOG-FILE.

Package

overlord/db

Source

file-type.lisp (file)

Function: log-data-p OBJECT
Package

overlord/db

Source

file-type.lisp (file)

Function: log-data.map INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

Function: log-data.map-count INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

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 (file)

Function: log-file-size LOG-FILE

Return the size on disk of LOG-FILE.

Package

overlord/db

Source

file-type.lisp (file)

Function: log-record-p OBJECT
Package

overlord/db

Source

file-type.lisp (file)

Function: log-record.data INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

Function: log-record.timestamp INSTANCE
Package

overlord/db

Source

file-type.lisp (file)

Function: look-for-asd ()

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

Package

overlord/base

Source

file-type.lisp (file)

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 (file)

Function: machine-add-task MACHINE TASK
Package

overlord/makespan

Source

file-type.lisp (file)

Function: machine-p OBJECT
Package

overlord/makespan

Source

file-type.lisp (file)

Function: machine-task-queue INSTANCE
Function: (setf machine-task-queue) VALUE INSTANCE
Package

overlord/makespan

Source

file-type.lisp (file)

Function: machine-tasks MACHINE
Package

overlord/makespan

Source

file-type.lisp (file)

Function: machine-total-time INSTANCE
Function: (setf machine-total-time) VALUE INSTANCE
Package

overlord/makespan

Source

file-type.lisp (file)

Function: make-build-env &key JOBS HANDLER
Package

overlord/build-env

Source

file-type.lisp (file)

Function: make-db &key (VERSION VERSION) (LOG-FILE LOG-FILE) (CURRENT-MAP CURRENT-MAP) (LAST-SAVED-MAP LAST-SAVED-MAP)
Package

overlord/db

Source

file-type.lisp (file)

Function: make-dead-db &key (VERSION VERSION) (LOG-FILE LOG-FILE) (CURRENT-MAP CURRENT-MAP) (LAST-SAVED-MAP LAST-SAVED-MAP) (STATE STATE)
Package

overlord/db

Source

file-type.lisp (file)

Function: make-log-data &key (MAP-COUNT MAP-COUNT) (MAP MAP)
Package

overlord/db

Source

file-type.lisp (file)

Function: make-log-record &key (TIMESTAMP TIMESTAMP) (DATA DATA)
Package

overlord/db

Source

file-type.lisp (file)

Function: make-machine &key (TOTAL-TIME TOTAL-TIME) (TASK-QUEUE TASK-QUEUE)
Package

overlord/makespan

Source

file-type.lisp (file)

Function: make-target-meta TARGET
Package

overlord/build-env

Source

file-type.lisp (file)

Function: make-token-pool N
Package

overlord/build-env

Source

file-type.lisp (file)

Function: multiple-file-stamp FILES
Package

overlord/target

Source

file-type.lisp (file)

Function: nearest-asdf-file FILE
Package

overlord/base

Source

file-type.lisp (file)

Function: next-build-id ()
Package

overlord/build-env

Source

file-type.lisp (file)

Function: nproc-string ()
Package

overlord/kernel

Source

file-type.lisp (file)

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 (file)

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

overlord/base

Source

file-type.lisp (file)

Function: package-prereqs-table PACKAGE
Package

overlord/target

Source

file-type.lisp (file)

Function: pathname-exists? PATH
Package

overlord/target

Source

file-type.lisp (file)

Function: plist? ()
Package

overlord/types

Source

file-type.lisp (file)

Function: pmap* TYPE FN SEQ

Like ‘map’, but possibly parallel.

Package

overlord/redo

Source

file-type.lisp (file)

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 (file)

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 (file)

Function: prop-1 OBJ PROP
Function: (setf prop-1) VALUE0 OBJ PROP

Access the database record keyed by OBJ and PROP.

Package

overlord/db

Source

file-type.lisp (file)

Function: prop-key OBJ PROP

Convert OBJ and PROP into a single key.

Package

overlord/db

Source

file-type.lisp (file)

Function: psome* FN SEQ

Like ‘some’, but possibly parallel.

Package

overlord/redo

Source

file-type.lisp (file)

Function: ql-dist-version &optional DIST-NAME
Package

overlord/oracle

Source

file-type.lisp (file)

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

overlord/base

Source

file-type.lisp (file)

Function: rebuild-file FILE THUNK &optional BASE
Package

overlord/target

Source

file-type.lisp (file)

Function: rebuild-symbol SYMBOL VALUE &key HASH
Package

overlord/target

Source

file-type.lisp (file)

Function: record-package-prereq PACKAGE TARGET

Save TARGET as a prerequisite of PACKAGE. Return TARGET.

Package

overlord/target

Source

file-type.lisp (file)

Function: record-package-prereq* TARGET

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

Package

overlord/target

Source

file-type.lisp (file)

Function: record-parent-prereqne PARENT TARGET
Package

overlord/target

Source

file-type.lisp (file)

Function: redo-ifchange-target TARGET

Rebuild TARGET if it is out of date.

Package

overlord/redo

Source

file-type.lisp (file)

Function: redo-target TARGET

Unconditionally build TARGET.

Package

overlord/redo

Source

file-type.lisp (file)

Function: register-script NAME

Register NAME as a script.

Package

overlord/target

Source

file-type.lisp (file)

Function: release-database ()
Package

overlord/db

Source

file-type.lisp (file)

Function: reload-db ()

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

Package

overlord/db

Source

file-type.lisp (file)

Function: rename-by-copying TMP DEST
Package

overlord/util

Source

file-type.lisp (file)

Function: replace-file-atomically DATA DEST

Write DATA into DEST

Package

overlord/util

Source

file-type.lisp (file)

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 (file)

Function: resolved-file-meta INSTANCE
Package

overlord/stamp

Source

file-type.lisp (file)

Function: resolved-file-path INSTANCE
Package

overlord/stamp

Source

file-type.lisp (file)

Function: resolved-file= X Y
Package

overlord/stamp

Source

file-type.lisp (file)

Function: return-token ENV TOKEN
Package

overlord/build-env

Source

file-type.lisp (file)

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 (file)

Function: save-file-task TASK
Package

overlord/target

Source

file-type.lisp (file)

Function: save-task TASK
Package

overlord/target

Source

file-type.lisp (file)

Function: saved-package-base PACKAGE

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

Package

overlord/base

Source

file-type.lisp (file)

Function: saved-package-system PACKAGE

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

Package

overlord/base

Source

file-type.lisp (file)

Function: saved-prereq X &optional STAMP

Make a saved prereq object.

Package

overlord/target

Source

file-type.lisp (file)

Function: script-for NAME
Package

overlord/target

Source

file-type.lisp (file)

Function: set-package-base* BASE &optional SYSTEM

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

Package

overlord/base

Source

file-type.lisp (file)

Function: set-package-base-1 PACKAGE BASE SYSTEM

Set the base and/or system of PACKAGE.

Package

overlord/base

Source

file-type.lisp (file)

Function: set-package-system* SYSTEM
Package

overlord/base

Source

file-type.lisp (file)

Function: set-package-system-1 PACKAGE SYSTEM
Package

overlord/base

Source

file-type.lisp (file)

Function: shadow-tree-p OBJECT
Package

overlord/cache

Source

file-type.lisp (file)

Function: shadow-tree-prefix INSTANCE
Package

overlord/cache

Source

file-type.lisp (file)

Function: shadow-tree-root SHADOW-TREE

Get the root directory of SHADOW-TREE.

Package

overlord/cache

Source

file-type.lisp (file)

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 (file)

Function: start-meta-kernel ()
Package

overlord/kernel

Source

file-type.lisp (file)

Function: strip-tombstones MAP

Strip key-value pairs with tombstone values from MAP.

Package

overlord/db

Source

file-type.lisp (file)

Function: system-resource SYSTEM PATH
Package

overlord/target

Source

file-type.lisp (file)

Function: target-build-script-target TARGET
Package

overlord/redo

Source

file-type.lisp (file)

Function: target-has-build-script? TARGET
Package

overlord/redo

Source

file-type.lisp (file)

Function: target-meta TARGET
Package

overlord/build-env

Source

file-type.lisp (file)

Function: target-meta-p OBJECT
Package

overlord/build-env

Source

file-type.lisp (file)

Function: target-meta.lock INSTANCE
Function: (setf target-meta.lock) VALUE INSTANCE
Package

overlord/build-env

Source

file-type.lisp (file)

Function: target-meta.lockedp INSTANCE
Function: (setf target-meta.lockedp) VALUE INSTANCE
Package

overlord/build-env

Source

file-type.lisp (file)

Function: target-meta.stamp INSTANCE
Function: (setf target-meta.stamp) VALUE INSTANCE
Package

overlord/build-env

Source

file-type.lisp (file)

Function: target-meta.target INSTANCE
Package

overlord/build-env

Source

file-type.lisp (file)

Function: target-meta.temp-prereqs INSTANCE
Function: (setf target-meta.temp-prereqs) VALUE INSTANCE
Package

overlord/build-env

Source

file-type.lisp (file)

Function: target-meta.temp-prereqsne INSTANCE
Function: (setf target-meta.temp-prereqsne) VALUE INSTANCE
Package

overlord/build-env

Source

file-type.lisp (file)

Function: target-package TARGET
Function: (setf target-package) PACKAGE TARGET
Package

overlord/target

Source

file-type.lisp (file)

Function: target-table-p OBJECT
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-table-to-alist TABLE
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-table.hash-table INSTANCE
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-table.lock INSTANCE
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-table.map INSTANCE
Function: (setf target-table.map) VALUE INSTANCE
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target-table.synchronized INSTANCE
Package

overlord/target-table

Source

file-type.lisp (file)

Function: target? TARGET

Is TARGET actually a target (not a source file)?

Package

overlord/redo

Source

file-type.lisp (file)

Function: task TASK TIME
Package

overlord/makespan

Source

file-type.lisp (file)

Function: task-base INSTANCE
Package

overlord/target

Source

file-type.lisp (file)

Function: task-script INSTANCE
Package

overlord/target

Source

file-type.lisp (file)

Function: task-target INSTANCE
Package

overlord/target

Source

file-type.lisp (file)

Function: task-task INSTANCE
Package

overlord/makespan

Source

file-type.lisp (file)

Function: task-thunk INSTANCE
Package

overlord/target

Source

file-type.lisp (file)

Function: task-time INSTANCE
Package

overlord/makespan

Source

file-type.lisp (file)

Function: temporary-file? FILE
Package

overlord/types

Source

file-type.lisp (file)

Function: todays-date-string ()
Package

overlord/oracle

Source

file-type.lisp (file)

Function: touch-target TARGET &optional DATE
Package

overlord/target

Source

file-type.lisp (file)

Function: trivial-task TARGET
Package

overlord/target

Source

file-type.lisp (file)

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 (file)

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 (file)

Function: update-config-stamp NAME VAL HASH-FUN

Update the stamp for NAME with VAL.

Package

overlord/target

Source

file-type.lisp (file)

Function: use* &rest TARGETS

Like ‘use’, but ordered.

Package

overlord/target

Source

file-type.lisp (file)

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 (file)

Function: use-build-cache? ()
Package

overlord/build-env

Source

file-type.lisp (file)

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 (file)

Function: warn* MESSAGE &rest ARGS
Package

overlord/types

Source

file-type.lisp (file)

Function: wildcard-hash WILDCARD
Package

overlord/oracle

Source

file-type.lisp (file)

Function: wrap-rebuild-symbol SYMBOL THUNK &key HASH
Package

overlord/target

Source

file-type.lisp (file)

Function: wrap-save-base FORM
Package

overlord/target

Source

file-type.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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 (file)

Generic Function: build-env-procs OBJECT
Generic Function: (setf build-env-procs) NEW-VALUE OBJECT
Package

overlord/build-env

Methods
Method: build-env-procs (BUILD-ENV build-env)
Method: (setf build-env-procs) NEW-VALUE (BUILD-ENV build-env)

Processes being run asynchronously.

Source

file-type.lisp (file)

Generic Function: build-env-tokens OBJECT
Package

overlord/build-env

Methods
Method: build-env-tokens (THREADED-BUILD-ENV threaded-build-env)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: build-env.file-owners OBJECT
Package

overlord/build-env

Methods
Method: build-env.file-owners (BUILD-ENV build-env)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: build-env.table OBJECT
Package

overlord/build-env

Methods
Method: build-env.table (BUILD-ENV build-env)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: call-in-build-env ENV FN
Package

overlord/build-env

Source

file-type.lisp (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

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 (file)

Generic Function: db.ref DB KEY

Lookup KEY in DB.

Package

overlord/db

Source

file-type.lisp (file)

Writer

(setf db.ref) (generic function)

Methods
Method: db.ref (SELF dead-db) KEY
Method: db.ref (DB db) KEY
Generic Function: (setf db.ref) VALUE DB KEY

Set the value of KEY in DB.

Package

overlord/db

Source

file-type.lisp (file)

Reader

db.ref (generic function)

Methods
Method: (setf db.ref) VALUE (SELF dead-db) KEY
Method: (setf db.ref) VALUE (DB db) KEY
Generic Function: db.sync DB

Sync the database to disk.

Package

overlord/db

Source

file-type.lisp (file)

Methods
Method: db.sync (SELF dead-db)
Method: db.sync (DB db)
Generic Function: directory-exists.path OBJECT
Package

overlord/target

Methods
Method: directory-exists.path (DIRECTORY-EXISTS directory-exists)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: dist-version-oracle.name OBJECT
Package

overlord/oracle

Methods
Method: dist-version-oracle.name (DIST-VERSION-ORACLE dist-version-oracle)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: env-oracle.name OBJECT
Package

overlord/oracle

Methods
Method: env-oracle.name (ENV-ORACLE env-oracle)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: feature-oracle.feature OBJECT
Package

overlord/oracle

Methods
Method: feature-oracle.feature (FEATURE-ORACLE feature-oracle)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: file-digest-ref.file OBJECT
Package

overlord/target

Methods
Method: file-digest-ref.file (FILE-DIGEST-REF file-digest-ref)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: fixed-question-oracle.name OBJECT
Package

overlord/oracle

Methods
Method: fixed-question-oracle.name (FIXED-QUESTION-ORACLE fixed-question-oracle)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: function-oracle.args OBJECT
Package

overlord/oracle

Methods
Method: function-oracle.args (FUNCTION-ORACLE function-oracle)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: function-oracle.delayed-symbol OBJECT
Package

overlord/oracle

Methods
Method: function-oracle.delayed-symbol (FUNCTION-ORACLE function-oracle)

automatically generated reader method

Source

file-type.lisp (file)

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 (file)

Generic Function: load-form-slot-names SELF
Package

overlord/target

Source

file-type.lisp (file)

Method Combination

append (short method combination)

Options: :most-specific-first

Methods
Method: load-form-slot-names (SELF unloaded-pattern) append
Method: load-form-slot-names (SELF pattern) append
Method: load-form-slot-names (SELF relative-file-target) append
Method: load-form-slot-names (SELF pattern-ref) append
Method: load-form-slot-names (SELF ref) append
Method: load-form-slot-names (SELF externalizable) append
Generic Function: lock-db DB

Create a lockfile for the DB.

Package

overlord/db

Source

file-type.lisp (file)

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 (file)

Generic Function: package-oracle.name OBJECT
Package

overlord/oracle

Methods
Method: package-oracle.name (PACKAGE-ORACLE package-oracle)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: pattern-ref-base OBJECT
Package

overlord/target

Methods
Method: pattern-ref-base (PATTERN-REF pattern-ref)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: pattern-ref-pattern OBJECT
Package

overlord/target

Methods
Method: pattern-ref-pattern (PATTERN-REF pattern-ref)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: pattern.script OBJECT
Package

overlord/target

Methods
Method: pattern.script (PATTERN pattern)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: print-target-being-built TARGET

Print some information about the target being built.

Package

overlord/target

Source

file-type.lisp (file)

Methods
Method: print-target-being-built (TARGET impossible-prereq)
Method: print-target-being-built (TARGET trivial-prereq)
Method: print-target-being-built TARGET
Generic Function: project-system-target-name OBJECT
Package

overlord/project-system

Methods
Method: project-system-target-name (OVERLORD-PROJECT-SYSTEM overlord-project-system)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: record-parent-prereq PARENT TARGET

Record TARGET as a prerequisite of PARENT.

Package

overlord/target

Source

file-type.lisp (file)

Methods
Method: record-parent-prereq (TARGET root-target) CHILD
Method: record-parent-prereq (PARENT package) TARGET
Method: record-parent-prereq PARENT TARGET
Generic Function: ref.name OBJECT
Package

overlord/target

Methods
Method: ref.name (REF ref)

automatically generated reader method

Source

file-type.lisp (file)

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 (file)

Generic Function: relative-file-truename TARGET
Package

overlord/target

Source

file-type.lisp (file)

Methods
Method: relative-file-truename (SELF system-resource)
Generic Function: system-resource.system OBJECT
Package

overlord/target

Methods
Method: system-resource.system (SYSTEM-RESOURCE system-resource)

automatically generated reader method

Source

file-type.lisp (file)

Generic Function: system-version-oracle.system-name OBJECT
Package

overlord/oracle

Methods
Method: system-version-oracle.system-name (SYSTEM-VERSION-ORACLE system-version-oracle)

automatically generated reader method

Source

file-type.lisp (file)

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 (file)

Generic Function: unlock-db DB

Remove the lockfile for the DB.

Package

overlord/db

Source

file-type.lisp (file)

Methods
Method: unlock-db (DB db)
Method: unlock-db DB
Generic Function: var-oracle.var OBJECT
Package

overlord/oracle

Methods
Method: var-oracle.var (VAR-ORACLE var-oracle)

automatically generated reader method

Source

file-type.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.8 Conditions

Condition: db-error ()
Package

overlord/db

Source

file-type.lisp (file)

Direct superclasses

overlord-error (condition)

Direct subclasses
Condition: delayed-symbol-error ()
Package

overlord/types

Source

file-type.lisp (file)

Direct superclasses

overlord-error (condition)

Direct subclasses
Direct slots
Slot: package-name
Initargs

:package-name

Slot: symbol-name
Initargs

:symbol-name

Condition: delayed-symbol-name-error ()
Package

overlord/types

Source

file-type.lisp (file)

Direct superclasses

delayed-symbol-error (condition)

Condition: delayed-symbol-package-error ()
Package

overlord/types

Source

file-type.lisp (file)

Direct superclasses

delayed-symbol-error (condition)

Condition: locked-db ()
Package

overlord/db

Source

file-type.lisp (file)

Direct superclasses

db-error (condition)

Direct slots
Slot: saved-pid
Initargs

:saved-pid

Condition: non-existent-exists ()
Package

overlord/redo

Source

file-type.lisp (file)

Direct superclasses

target-error (condition)

Condition: not-a-target ()
Package

overlord/target

Source

file-type.lisp (file)

Direct superclasses

overlord-error (condition)

Direct slots
Slot: designator
Initargs

:designator

Condition: target-error ()
Package

overlord/redo

Source

file-type.lisp (file)

Direct superclasses

overlord-error (condition)

Direct subclasses
Direct methods

overlord-error-target (method)

Direct slots
Slot: target
Initargs

:target

Readers

overlord-error-target (generic function)

Condition: version-mismatch ()
Package

overlord/db

Source

file-type.lisp (file)

Direct superclasses

db-error (condition)

Direct slots
Slot: new-version
Initargs

:new-version

Slot: old-version
Initargs

:old-version


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.9 Structures

Structure: db ()

The database.

Package

overlord/db

Source

file-type.lisp (file)

Direct superclasses

structure-object (structure)

Direct subclasses

dead-db (structure)

Direct methods
Direct slots
Slot: version
Initform

(overlord/types:db-version)

Readers

db.version (function)

Writers

(setf db.version) (function)

Slot: log-file
Type

pathname

Initform

(overlord/db::log-file-path)

Readers

db.log-file (function)

Writers

(setf db.log-file) (function)

Slot: current-map
Type

fset:map

Initform

(fset:empty-map)

Readers

db.current-map (function)

Writers

(setf db.current-map) (function)

Slot: last-saved-map
Type

fset:map

Initform

(fset:empty-map)

Readers

db.last-saved-map (function)

Writers

(setf db.last-saved-map) (function)

Structure: dead-db ()
Package

overlord/db

Source

file-type.lisp (file)

Direct superclasses

db (structure)

Direct methods
Direct slots
Slot: state
Type

null

Readers

db.state (function)

Writers

(setf db.state) (function)

Structure: log-data ()

The data recovered from a log file.

Package

overlord/db

Source

file-type.lisp (file)

Direct superclasses

%read-only-struct (structure)

Direct methods

read-only-struct-slot-names (method)

Direct slots
Slot: map-count
Type

(integer 0 *)

Initform

0

Readers

log-data.map-count (function)

Writers

(setf log-data.map-count) (function)

Slot: map
Type

fset:map

Initform

(fset:empty-map)

Readers

log-data.map (function)

Writers

(setf log-data.map) (function)

Structure: log-record ()

A single record in a log file.

Package

overlord/db

Source

file-type.lisp (file)

Direct superclasses

%read-only-struct (structure)

Direct methods

read-only-struct-slot-names (method)

Direct slots
Slot: timestamp
Type

(integer 0 *)

Initform

(get-universal-time)

Readers

log-record.timestamp (function)

Writers

(setf log-record.timestamp) (function)

Slot: data
Type

fset:map

Initform

(alexandria:required-argument (quote overlord/db::data))

Readers

log-record.data (function)

Writers

(setf log-record.data) (function)

Structure: machine ()
Package

overlord/makespan

Source

file-type.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: total-time
Type

(integer 0 *)

Initform

0

Readers

machine-total-time (function)

Writers

(setf machine-total-time) (function)

Slot: task-queue
Type

serapeum:queue

Initform

(serapeum:queue)

Readers

machine-task-queue (function)

Writers

(setf machine-task-queue) (function)

Structure: shadow-tree ()

First-class shadow trees.

A shadow tree is a hidden directory structure (like that used by ASDF to store fasls) whose subdirectories recapitulate the filesystem hierarchy from the top level.

Shadow trees are useful for caching files that depend in some deterministic way on top-level files.

Package

overlord/cache

Source

file-type.lisp (file)

Direct superclasses

%read-only-struct (structure)

Direct methods

read-only-struct-slot-names (method)

Direct slots
Slot: prefix
Type

list

Initform

(alexandria:required-argument (quote overlord/cache::prefix))

Readers

shadow-tree-prefix (function)

Writers

(setf shadow-tree-prefix) (function)

Structure: target-meta ()
Package

overlord/build-env

Source

file-type.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: target
Initform

(error "no target")

Readers

target-meta.target (function)

Writers

(setf target-meta.target) (function)

Slot: stamp
Readers

target-meta.stamp (function)

Writers

(setf target-meta.stamp) (function)

Slot: lock
Initform

(bordeaux-threads:make-lock)

Readers

target-meta.lock (function)

Writers

(setf target-meta.lock) (function)

Slot: lockedp
Type

boolean

Readers

target-meta.lockedp (function)

Writers

(setf target-meta.lockedp) (function)

Slot: temp-prereqs
Type

fset:map

Initform

(fset:empty-map)

Readers

target-meta.temp-prereqs (function)

Writers

(setf target-meta.temp-prereqs) (function)

Slot: temp-prereqsne
Type

fset:set

Initform

(fset:empty-set)

Readers

target-meta.temp-prereqsne (function)

Writers

(setf target-meta.temp-prereqsne) (function)

Structure: task ()
Package

overlord/makespan

Source

file-type.lisp (file)

Direct superclasses

%read-only-struct (structure)

Direct methods
  • constructor-values/generic (method)
  • %constructor= (method)
  • make-load-form (method)
  • read-only-struct-slot-names (method)
  • print-object (method)
Direct slots
Slot: task
Initform

(alexandria:required-argument (quote overlord/makespan::task))

Readers

task-task (function)

Writers

(setf task-task) (function)

Slot: time
Type

(integer 0 *)

Initform

(alexandria:required-argument (quote time))

Readers

task-time (function)

Writers

(setf task-time) (function)

Structure: tombstone ()

A tombstone value.

Package

overlord/db

Source

file-type.lisp (file)

Direct superclasses

%unit (structure)

Direct methods
  • %constructor= (method)
  • make-load-form (method)
  • print-object (method)

Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.10 Classes

Class: build-env ()

Metadata for the build run.

Package

overlord/build-env

Source

file-type.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

threaded-build-env (class)

Direct methods