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 Tue Apr 28 12:37:17 2020 GMT+0.


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

1 Introduction

Overlord

Overlord is a build system written in Common Lisp.

It has the features you would expect of any reasonably modern build system: rules with multiple outputs, parallel builds, immunity to clock issues, and dynamic dependencies.

It also solves certain problems specific to Lisp programming (namely, it lets you you reproducibly specify the desired state of a Lisp system which is to be saved as an image).

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

lisp.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

lisp.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

lisp.lisp (file)


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

2.5 overlord/freeze

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.6 overlord/oracle

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.7 overlord/redo

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.8 overlord/makespan

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.9 overlord/digest

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.10 overlord/cmd

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.11 overlord/base

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.12 overlord/build-env

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.13 overlord/target-table

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.14 overlord/target-protocol

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.15 overlord/stamp

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.16 overlord/kernel

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.17 overlord/db

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.18 overlord/message

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.19 overlord/global-state

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependency

serapeum

Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.20 overlord/cache

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.21 overlord/specials

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.22 overlord/asdf

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.23 overlord/util

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.lisp (file)


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

2.24 overlord/types

Author

Paul M. Rodriguez <pmr@ruricolist.com>

License

MIT

Dependencies
Source

overlord.asd (file)

Component

lisp.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/lisp.lisp

Parent

overlord/all (system)

Location

all.lisp

Packages

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

3.1.3 overlord/project-system/lisp.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/lisp.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/freeze/lisp.lisp

Parent

overlord/freeze (system)

Location

freeze.lisp

Packages

overlord/freeze

Exported Definitions
Internal Definitions

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

3.1.6 overlord/oracle/lisp.lisp

Parent

overlord/oracle (system)

Location

oracle.lisp

Packages

overlord/oracle

Exported Definitions
Internal Definitions

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

3.1.7 overlord/redo/lisp.lisp

Parent

overlord/redo (system)

Location

redo.lisp

Packages

overlord/redo

Exported Definitions
Internal Definitions

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

3.1.8 overlord/makespan/lisp.lisp

Parent

overlord/makespan (system)

Location

makespan.lisp

Packages

overlord/makespan

Exported Definitions
Internal Definitions

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

3.1.9 overlord/digest/lisp.lisp

Parent

overlord/digest (system)

Location

digest.lisp

Packages

overlord/digest

Exported Definitions

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

3.1.10 overlord/cmd/lisp.lisp

Parent

overlord/cmd (system)

Location

cmd.lisp

Packages

overlord/cmd

Exported Definitions
Internal Definitions

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

3.1.11 overlord/base/lisp.lisp

Parent

overlord/base (system)

Location

base.lisp

Packages

overlord/base

Exported Definitions
Internal Definitions

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

3.1.12 overlord/build-env/lisp.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.13 overlord/target-table/lisp.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.14 overlord/target-protocol/lisp.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.15 overlord/stamp/lisp.lisp

Parent

overlord/stamp (system)

Location

stamp.lisp

Packages

overlord/stamp

Exported Definitions
Internal Definitions

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

3.1.16 overlord/kernel/lisp.lisp

Parent

overlord/kernel (system)

Location

kernel.lisp

Packages

overlord/kernel

Exported Definitions
Internal Definitions

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

3.1.17 overlord/db/lisp.lisp

Parent

overlord/db (system)

Location

db.lisp

Packages

overlord/db

Exported Definitions
Internal Definitions

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

3.1.18 overlord/message/lisp.lisp

Parent

overlord/message (system)

Location

message.lisp

Packages

overlord/message

Exported Definitions
Internal Definitions

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

3.1.19 overlord/global-state/lisp.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.20 overlord/cache/lisp.lisp

Parent

overlord/cache (system)

Location

cache.lisp

Packages

overlord/cache

Exported Definitions
Internal Definitions

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

3.1.21 overlord/specials/lisp.lisp

Parent

overlord/specials (system)

Location

specials.lisp

Packages

overlord/specials

Exported Definitions
Internal Definitions

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

3.1.22 overlord/asdf/lisp.lisp

Parent

overlord/asdf (system)

Location

asdf.lisp

Packages

overlord/asdf

Exported Definitions

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

3.1.23 overlord/util/lisp.lisp

Parent

overlord/util (system)

Location

util.lisp

Packages

overlord/util

Exported Definitions
Internal Definitions

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

3.1.24 overlord/types/lisp.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

lisp.lisp (file)

Nickname

overlord

Use List
Used By List

overlord-user


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

4.2 overlord-user

Source

lisp.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

lisp.lisp (file)

Use List
Used By List

overlord/all

Exported Definitions
Internal Definitions

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

4.4 overlord/target

Source

lisp.lisp (file)

Use List
Used By List

overlord/all

Exported Definitions
Internal Definitions

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

4.5 overlord/freeze

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.6 overlord/oracle

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.7 overlord/redo

Source

lisp.lisp (file)

Nickname

redo

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.8 overlord/makespan

Source

lisp.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

4.9 overlord/digest

Source

lisp.lisp (file)

Use List
Used By List

overlord/target

Exported Definitions

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

4.10 overlord/cmd

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.11 overlord/base

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.12 overlord/build-env

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

Source

lisp.lisp (file)

Use List
Used By List

overlord/redo

Exported Definitions
Internal Definitions

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

4.13 overlord/target-table

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.14 overlord/target-protocol

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.15 overlord/stamp

Source

lisp.lisp (file)

Use List
Used By List

overlord/target

Exported Definitions
Internal Definitions

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

4.16 overlord/kernel

Source

lisp.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

4.17 overlord/db

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.18 overlord/message

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.19 overlord/global-state

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.20 overlord/cache

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.21 overlord/specials

Source

lisp.lisp (file)

Use List
Used By List
Exported Definitions
Internal Definitions

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

4.22 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

lisp.lisp (file)

Use List
Used By List
Exported Definitions

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

4.23 overlord/util

Source

lisp.lisp (file)

Use List
Used By List

overlord/target

Exported Definitions
Internal Definitions

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

4.24 overlord/types

Source

lisp.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

lisp.lisp (file)

Special Variable: *base-package*

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

Package

overlord/specials

Source

lisp.lisp (file)

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

overlord/freeze

Source

lisp.lisp (file)

Special Variable: *cli*

Are we running on a CLI?

Package

overlord/specials

Source

lisp.lisp (file)

Special Variable: *db-version*

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

Package

overlord/specials

Source

lisp.lisp (file)

Special Variable: *force*

Whether to force rebuilding.

Package

overlord/specials

Source

lisp.lisp (file)

Special Variable: *jobs*
Package

overlord/specials

Source

lisp.lisp (file)

Special Variable: *message-stream*

The stream printed to by the default message handler.

Package

overlord/message

Source

lisp.lisp (file)

Special Variable: *parents*

The chain of parents being built.

Package

overlord/redo

Source

lisp.lisp (file)

Special Variable: *suppress-phonies*
Package

overlord/specials

Source

lisp.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

lisp.lisp (file)


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

5.1.2 Symbol macros

Symbol Macro: far-future
Package

overlord/stamp

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: impossible-prereq
Package

overlord/target-protocol

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: never
Package

overlord/stamp

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: nproc
Package

overlord/kernel

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: root-target
Package

overlord/target-protocol

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: stamp
Package

overlord/stamp

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: trivial-prereq
Package

overlord/target-protocol

Source

lisp.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

lisp.lisp (file)

Macro: defconfig NAME &body INIT
Package

overlord/target

Source

lisp.lisp (file)

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

overlord/global-state

Source

lisp.lisp (file)

Macro: define-script NAME &body SCRIPT
Package

overlord/target

Source

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

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

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

Package

overlord/target

Source

lisp.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

lisp.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

lisp.lisp (file)

Macro: dx-sxhash EXPR

Like SXHASH, but try to stack-allocate EXPR.

Package

overlord/util

Source

lisp.lisp (file)

Macro: ensure-pathnamef PLACE
Package

overlord/util

Source

lisp.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

lisp.lisp (file)

Macro: lessf PLACE &rest ITEM-OR-TUPLE

Modify macro for removing from an Fset map or set.

Package

overlord/util

Source

lisp.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

lisp.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

lisp.lisp (file)

Macro: saving-database &body BODY

Macro wrapper for ‘call/saving-database’.

Package

overlord/db

Source

lisp.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

lisp.lisp (file)

Macro: set-package-system SYSTEM
Package

overlord/base

Source

lisp.lisp (file)

Macro: var-target NAME EXPR &body DEPS

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

Package

overlord/target

Source

lisp.lisp (file)

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

overlord/util

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

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

overlord/base

Source

lisp.lisp (file)

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

overlord/kernel

Source

lisp.lisp (file)

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

overlord/target-protocol

Source

lisp.lisp (file)

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

overlord/target-table

Source

lisp.lisp (file)

Macro: withf PLACE &rest ITEM-OR-TUPLE

Modify macro for augmenting an Fset map or set.

Package

overlord/util

Source

lisp.lisp (file)


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

5.1.4 Compiler macros

Compiler Macro: $cmd CMD &rest ARGS
Package

overlord/cmd

Source

lisp.lisp (file)

Compiler Macro: cmd CMD &rest ARGS

At compile time, make sure the keyword arguments are syntactically valid.

Package

overlord/cmd

Source

lisp.lisp (file)

Compiler Macro: file PATH
Package

overlord/target

Source

lisp.lisp (file)

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

overlord/message

Source

lisp.lisp (file)


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

5.1.5 Functions

Function: $cmd CMD &rest ARGS

Return the results of CMD as a string, stripping any trailing newlines, like $(cmd) would in a shell.

Package

overlord/cmd

Source

lisp.lisp (file)

Function: --version COMMAND

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

Package

overlord/oracle

Source

lisp.lisp (file)

Function: absolute-directory-pathname X

Resolve X as an absolute directory pathname.

Package

overlord/types

Source

lisp.lisp (file)

Function: asdf-system-base SYSTEM
Package

overlord/asdf

Source

lisp.lisp (file)

Function: asdf-system-loaded? SYSTEM
Package

overlord/asdf

Source

lisp.lisp (file)

Function: asdf-system-name SYSTEM
Package

overlord/asdf

Source

lisp.lisp (file)

Function: asdf-system-name-keyword SYSTEM
Package

overlord/asdf

Source

lisp.lisp (file)

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

overlord/asdf

Source

lisp.lisp (file)

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

overlord/asdf

Source

lisp.lisp (file)

Function: asdf-system? SYSTEM
Package

overlord/asdf

Source

lisp.lisp (file)

Function: ask-for-token* ()

Get a token from the current build environment.

Package

overlord/build-env

Source

lisp.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

lisp.lisp (file)

Function: base-package ()
Package

overlord/specials

Source

lisp.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

lisp.lisp (file)

Function: build-env-bound? ()
Package

overlord/build-env

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.lisp (file)

Function: building? ()

Return T if anything is being built.

Package

overlord/redo

Source

lisp.lisp (file)

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

overlord/util

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.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

lisp.lisp (file)

Function: call/temp-file-pathname DEST FN

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

Package

overlord/util

Source

lisp.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

lisp.lisp (file)

Function: cerror* CONT MESSAGE &rest ARGS
Package

overlord/types

Source

lisp.lisp (file)

Function: change-pathname-type FILE EXT
Package

overlord/target

Source

lisp.lisp (file)

Function: check-not-frozen ()
Package

overlord/freeze

Source

lisp.lisp (file)

Function: claim-file* TARGET FILE
Package

overlord/build-env

Source

lisp.lisp (file)

Function: claim-files* TARGET FILES
Package

overlord/build-env

Source

lisp.lisp (file)

Function: clear-package-prereqs PACKAGE

Clear the current prerequisites of PACKAGE. Return PACKAGE.

Package

overlord/target

Source

lisp.lisp (file)

Function: clear-target-table TABLE
Package

overlord/target-table

Source

lisp.lisp (file)

Function: cmd CMD &rest ARGS

Run a program.

CMD should be a string naming a program. This command will be run with its current directory set to the value of ‘overlord:current-dir!’ in a thread-safe manner.

A list of strings or pathnames is added to the list of arguments.

A string in ARGS is split into a list of tokens using shell-style tokenization rules. (To protect a string with spaces, either add quotation marks, or enclose it in a singleton list.)

A pathname in ARGS is translated to a native namestring and passed as an argument to the command. The native namestring is not permitted to start with a dash.

A property list is treated as a list of arguments to ‘uiop:run-program’.

By default, standard output is sent to ‘*standard-output*’, and error output is sent to ‘*message-stream*’.

On Windows, the .exe suffix may be omitted from the name of the executable.

Package

overlord/cmd

Source

lisp.lisp (file)

Function: coerce-case STRING &key READTABLE
Package

overlord/util

Source

lisp.lisp (file)

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

overlord/util

Source

lisp.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

lisp.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

lisp.lisp (file)

Writer

(setf current-dir!) (function)

Function: (setf current-dir!) DIR
Package

overlord/base

Source

lisp.lisp (file)

Reader

current-dir! (function)

Function: current-system ()

Retrieve or infer the system the current package comes from.

Package

overlord/base

Source

lisp.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

lisp.lisp (file)

Function: db-loaded? ()
Package

overlord/db

Source

lisp.lisp (file)

Function: db-version ()
Package

overlord/types

Source

lisp.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

lisp.lisp (file)

Function: delay-symbol SYMBOL
Package

overlord/types

Source

lisp.lisp (file)

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

overlord/types

Source

lisp.lisp (file)

Function: delete-prop OBJ PROP

Delete a property from OBJ.

Package

overlord/db

Source

lisp.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

lisp.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

lisp.lisp (file)

Function: depends-not &rest TARGETS

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

Package

overlord/target

Source

lisp.lisp (file)

Function: depends-not-all TARGETS
Package

overlord/target

Source

lisp.lisp (file)

Function: depends-on &rest TARGETS

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

Package

overlord/target

Source

lisp.lisp (file)

Function: depends-on* &rest TARGETS

Like ‘depends-on’, but in order.

Package

overlord/target

Source

lisp.lisp (file)

Function: depends-on-all TARGETS
Package

overlord/target

Source

lisp.lisp (file)

Function: depends-on-all* TARGETS
Package

overlord/target

Source

lisp.lisp (file)

Function: digest-file PATHNAME
Package

overlord/digest

Source

lisp.lisp (file)

Function: digest-string STRING
Package

overlord/digest

Source

lisp.lisp (file)

Function: directory-exists NAME

Wrap NAME as a directory reference.

Package

overlord/target

Source

lisp.lisp (file)

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

overlord/oracle

Source

lisp.lisp (file)

Function: end-meta-kernel ()

Terminate the Overlord kernel.

Package

overlord/kernel

Source

lisp.lisp (file)

Function: ensure-absolute PATHNAME &key BASE
Package

overlord/base

Source

lisp.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

lisp.lisp (file)

Function: env-oracle NAME
Package

overlord/oracle

Source

lisp.lisp (file)

Function: error* MESSAGE &rest ARGS
Package

overlord/types

Source

lisp.lisp (file)

Function: eval* EXPR

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

Package

overlord/util

Source

lisp.lisp (file)

Function: extension EXT
Package

overlord/target

Source

lisp.lisp (file)

Function: feature-oracle FEATURE
Package

overlord/oracle

Source

lisp.lisp (file)

Function: file PATH

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

Package

overlord/target

Source

lisp.lisp (file)

Function: file-digest-string PATHNAME
Package

overlord/digest

Source

lisp.lisp (file)

Function: file-hash SIZE HASH
Package

overlord/stamp

Source

lisp.lisp (file)

Function: file-meta SIZE TIMESTAMP
Package

overlord/stamp

Source

lisp.lisp (file)

Function: file-mtime PATHNAME

Same as ‘file-write-date’.
This is provided in case we ever want to offer more precise timestamps on Lisp/OS/filesystem combinations that support it.

Package

overlord/util

Source

lisp.lisp (file)

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

overlord/asdf

Source

lisp.lisp (file)

Function: find-pattern PATTERN &optional ERRORP
Package

overlord/target

Source

lisp.lisp (file)

Function: force-symbol DELAY
Package

overlord/types

Source

lisp.lisp (file)

Function: freeze ()
Package

overlord/freeze

Source

lisp.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

lisp.lisp (file)

Writer

(setf freeze-policy) (function)

Function: (setf freeze-policy) VALUE
Package

overlord/freeze

Source

lisp.lisp (file)

Reader

freeze-policy (function)

Function: frozen? ()
Package

overlord/freeze

Source

lisp.lisp (file)

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

overlord/oracle

Source

lisp.lisp (file)

Function: glob-target WILDCARD
Package

overlord/oracle

Source

lisp.lisp (file)

Function: has-prop? OBJ PROP &rest PROPS

Test if an object has a property in the database.

Package

overlord/db

Source

lisp.lisp (file)

Function: list-package-prereqs PACKAGE

List the current prerequisites of PACKAGE.

Package

overlord/target

Source

lisp.lisp (file)

Function: load-asdf-system SYSTEM
Package

overlord/asdf

Source

lisp.lisp (file)

Function: locate-dominating-file FILE NAME
Package

overlord/util

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.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

lisp.lisp (file)

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

overlord/target-table

Source

lisp.lisp (file)

Function: maybe-delay-symbol SYMBOL
Package

overlord/types

Source

lisp.lisp (file)

Function: message CONTROL &rest ARGS
Package

overlord/message

Source

lisp.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

lisp.lisp (file)

Function: nproc ()
Package

overlord/kernel

Source

lisp.lisp (file)

Function: optimal-machine-count BUILD-TIMES
Package

overlord/makespan

Source

lisp.lisp (file)

Function: package-base PACKAGE &key ERRORP

Retrieve or infer the base of PACKAGE.

Package

overlord/base

Source

lisp.lisp (file)

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

overlord/asdf

Source

lisp.lisp (file)

Function: package-name-asdf-system N
Package

overlord/asdf

Source

lisp.lisp (file)

Function: package-system PACKAGE &key ERRORP

Retrieve or infer the system PACKAGE comes from.

Package

overlord/base

Source

lisp.lisp (file)

Function: pattern INPUTS NAME
Package

overlord/target

Source

lisp.lisp (file)

Function: pattern-from INPUTS PATTERN
Package

overlord/target

Source

lisp.lisp (file)

Function: pattern-into OUTPUTS PATTERN
Package

overlord/target

Source

lisp.lisp (file)

Function: pattern-ref INPUTS PATTERN

Make a pattern reference.

Package

overlord/target

Source

lisp.lisp (file)

Function: primary-asdf-system-name SYSTEM
Package

overlord/asdf

Source

lisp.lisp (file)

Function: prop OBJ PROP &optional DEFAULT

Look up a property for an object in the database.

Package

overlord/db

Source

lisp.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

lisp.lisp (file)

Reader

prop (function)

Function: quoted-symbol? X
Package

overlord/util

Source

lisp.lisp (file)

Function: read-file-form FILE
Package

overlord/util

Source

lisp.lisp (file)

Function: redo &rest TARGETS

Unconditionally build each target in TARGETS.

Package

overlord/redo

Source

lisp.lisp (file)

Function: redo-all TARGETS &key JOBS DEBUG

Unconditionally build each target in TARGETS.

Package

overlord/redo

Source

lisp.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

lisp.lisp (file)

Function: redo-ifchange &rest TARGETS

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

Package

overlord/redo

Source

lisp.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

lisp.lisp (file)

Function: redo-ifcreate &rest TARGETS

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

Package

overlord/redo

Source

lisp.lisp (file)

Function: redo-ifcreate-all TARGETS &key JOBS DEBUG

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

Package

overlord/redo

Source

lisp.lisp (file)

Function: register-proc* PROC
Package

overlord/build-env

Source

lisp.lisp (file)

Function: register-worker-special VAR

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

Package

overlord/specials

Source

lisp.lisp (file)

Function: register-worker-specials VARS

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

Package

overlord/specials

Source

lisp.lisp (file)

Function: require-asdf-system SYSTEM
Package

overlord/asdf

Source

lisp.lisp (file)

Function: require-db ()

Load the DB.

Package

overlord/db

Source

lisp.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

lisp.lisp (file)

Function: resolve-file FILE &key BASE
Package

overlord/base

Source

lisp.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

lisp.lisp (file)

Function: resolved-file PATH META
Package

overlord/stamp

Source

lisp.lisp (file)

Function: return-token* TOKEN

Return TOKEN to the current build environment.

Package

overlord/build-env

Source

lisp.lisp (file)

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

overlord/stamp

Source

lisp.lisp (file)

Function: run TARGET &optional SYSTEM-NAME

Entry point for scripts.

Package

overlord/target

Source

lisp.lisp (file)

Function: run-program-in-dir DIR TOKENS &rest ARGS &key IGNORE-ERROR-STATUS OUTPUT ERROR-OUTPUT &allow-other-keys

Run a program (with ‘uiop:run-program‘) with DIR as its working directory.

Package

overlord/cmd

Source

lisp.lisp (file)

Function: run-program-in-dir* TOKENS &rest ARGS

Run a program (with uiop:run-program) in the current base directory.

Package

overlord/cmd

Source

lisp.lisp (file)

Function: save-database ()

Save the current database.

Package

overlord/db

Source

lisp.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

lisp.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

lisp.lisp (file)

Function: stamp= S1 S2
Package

overlord/stamp

Source

lisp.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

lisp.lisp (file)

Function: string-digest-string STRING
Package

overlord/digest

Source

lisp.lisp (file)

Function: strip-directory PATHNAME

Return PATHNAME without its directory (or device).

Package

overlord/util

Source

lisp.lisp (file)

Function: system-version-oracle NAME
Package

overlord/oracle

Source

lisp.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

lisp.lisp (file)

Function: target-locked-p TARGET
Package

overlord/build-env

Source

lisp.lisp (file)

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

overlord/target-protocol

Source

lisp.lisp (file)

Reader

target-saved-prereqs (generic function)

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

overlord/target-protocol

Source

lisp.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

lisp.lisp (file)

Function: target-table-keys TABLE
Package

overlord/target-table

Source

lisp.lisp (file)

Function: target-table-len TABLE
Package

overlord/target-table

Source

lisp.lisp (file)

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

overlord/target-table

Source

lisp.lisp (file)

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

overlord/target-table

Source

lisp.lisp (file)

Function: target-table-rem TABLE KEY
Package

overlord/target-table

Source

lisp.lisp (file)

Function: target-timestamp= TS1 TS2

Is TS1 greater than TS2?

Package

overlord/stamp

Source

lisp.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

lisp.lisp (file)

Function: task TARGET THUNK SCRIPT BASE
Package

overlord/target

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

Function: timestamp-diff END START

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

Package

overlord/util

Source

lisp.lisp (file)

Function: timestamp-newer? TS1 TS2

Is TS1 greater than TS2?

Package

overlord/stamp

Source

lisp.lisp (file)

Function: unfreeze ()
Package

overlord/freeze

Source

lisp.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

lisp.lisp (file)

Function: unregister-worker-special VAR

Stop VAR from being propagated into worker threads.

Package

overlord/specials

Source

lisp.lisp (file)

Function: unregister-worker-specials VARS

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

Package

overlord/specials

Source

lisp.lisp (file)

Function: use &rest TARGETS

Like ‘use-all’, but variadic.

Package

overlord/target

Source

lisp.lisp (file)

Function: use-all TARGETS

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

Package

overlord/target

Source

lisp.lisp (file)

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

overlord/specials

Source

lisp.lisp (file)

Function: var-oracle VAR
Package

overlord/oracle

Source

lisp.lisp (file)

Function: version-major-version VERSION
Package

overlord/util

Source

lisp.lisp (file)

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

overlord/specials

Source

lisp.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

lisp.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

lisp.lisp (file)

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

overlord/util

Source

lisp.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

lisp.lisp (file)

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

lisp.lisp (file)

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

Call FN with TARGET locked.

Package

overlord/target-protocol

Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

Lock the directory (file), not target.

Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Method: call-with-target-locked TARGET FN

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

Source

lisp.lisp (file)

Generic Function: clear-temp-prereqs TARGET
Package

overlord/target-protocol

Source

lisp.lisp (file)

Methods
Method: clear-temp-prereqs TARGET
Source

lisp.lisp (file)

Generic Function: clear-temp-prereqsne TARGET
Package

overlord/target-protocol

Source

lisp.lisp (file)

Methods
Method: clear-temp-prereqsne TARGET
Source

lisp.lisp (file)

Generic Function: delete-target TARGET

Delete TARGET, if it can be deleted.

Package

overlord/target-protocol

Source

lisp.lisp (file)

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

lisp.lisp (file)

Method: delete-target (TARGET symbol)
Source

lisp.lisp (file)

Method: delete-target (TARGET package)
Source

lisp.lisp (file)

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

lisp.lisp (file)

Method: delete-target (TARGET pathname)
Source

lisp.lisp (file)

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

lisp.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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Method: hash-target (SELF ref)
Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Method: hash-target (SELF oracle)
Source

lisp.lisp (file)

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

overlord/target

Source

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

Generic Function: overlord-error-target ERROR
Package

overlord/types

Source

lisp.lisp (file)

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

lisp.lisp (file)

Generic Function: pattern-build PATTERN INPUTS OUTPUTS

Build OUTPUTS from INPUTS according to PATTERN.

Package

overlord/target

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.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

lisp.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

lisp.lisp (file)

Generic Function: pattern.input-defaults OBJECT
Package

overlord/target

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

automatically generated reader method

Source

lisp.lisp (file)

Generic Function: pattern.output-defaults OBJECT
Package

overlord/target

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

automatically generated reader method

Source

lisp.lisp (file)

Generic Function: record-prereq TARGET

Record TARGET as a prerequisite of the current parent.

Package

overlord/target-protocol

Source

lisp.lisp (file)

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

lisp.lisp (file)

Method: record-prereq (TARGET symbol)
Source

lisp.lisp (file)

Method: record-prereq (TARGET null)
Source

lisp.lisp (file)

Method: record-prereq TARGET &aux PARENT
Source

lisp.lisp (file)

Generic Function: record-prereqne TARGET
Package

overlord/target-protocol

Source

lisp.lisp (file)

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

lisp.lisp (file)

Method: record-prereqne (TARGET symbol)
Source

lisp.lisp (file)

Method: record-prereqne TARGET &aux PARENT
Source

lisp.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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

overlord/target-protocol

Source

lisp.lisp (file)

Methods
Method: run-script TASK &aux PARENT
Source

lisp.lisp (file)

Generic Function: save-temp-prereqs TARGET
Package

overlord/target-protocol

Source

lisp.lisp (file)

Methods
Method: save-temp-prereqs TARGET
Source

lisp.lisp (file)

Generic Function: save-temp-prereqsne TARGET
Package

overlord/target-protocol

Source

lisp.lisp (file)

Methods
Method: save-temp-prereqsne TARGET
Source

lisp.lisp (file)

Generic Function: saved-prereq-stamp PREREQ
Package

overlord/target-protocol

Source

lisp.lisp (file)

Methods
Method: saved-prereq-stamp P
Source

lisp.lisp (file)

Generic Function: saved-prereq-target PREREQ
Package

overlord/target-protocol

Source

lisp.lisp (file)

Methods
Method: saved-prereq-target P
Source

lisp.lisp (file)

Generic Function: target-build-script TARGET
Package

overlord/target-protocol

Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Method: target-build-script TARGET
Source

lisp.lisp (file)

Method: target-build-script TARGET around
Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Generic Function: target-build-time TARGET

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

Package

overlord/target-protocol

Source

lisp.lisp (file)

Writer

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

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Method: target-build-time TARGET
Source

lisp.lisp (file)

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

overlord/target-protocol

Source

lisp.lisp (file)

Reader

target-build-time (generic function)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Generic Function: target-exists? TARGET

Does TARGET exists?

Package

overlord/target-protocol

Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Method: target-exists? (TARGET symbol)
Source

lisp.lisp (file)

Method: target-exists? (TARGET package)
Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Method: target-in-db? TARGET
Source

lisp.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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

overlord/target-protocol

Source

lisp.lisp (file)

Writer

(setf target-saved-prereqs) (function)

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

lisp.lisp (file)

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

lisp.lisp (file)

Method: target-saved-prereqs TARGET
Source

lisp.lisp (file)

Generic Function: target-saved-prereqsne TARGET
Package

overlord/target-protocol

Source

lisp.lisp (file)

Writer

(setf target-saved-prereqsne) (function)

Methods
Method: target-saved-prereqsne TARGET
Source

lisp.lisp (file)

Generic Function: target-stamp TARGET

Return the stamp of TARGET.

Package

overlord/target-protocol

Source

lisp.lisp (file)

Methods
Method: target-stamp (TARGET pathname)
Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Method: target-stamp (SELF oracle)
Source

lisp.lisp (file)

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

overlord/target-protocol

Source

lisp.lisp (file)

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

lisp.lisp (file)

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

automatically generated reader method

Source

lisp.lisp (file)

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

lisp.lisp (file)

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

Return the timestamp of TARGET.

Package

overlord/stamp

Source

lisp.lisp (file)

Writer

(setf target-timestamp) (generic function)

Methods
Method: target-timestamp (TARGET pathname)
Source

lisp.lisp (file)

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

lisp.lisp (file)

Method: target-timestamp (TARGET symbol)
Source

lisp.lisp (file)

Method: target-timestamp (TARGET package)
Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.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

lisp.lisp (file)

Reader

target-timestamp (generic function)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

Generic Function: target= TARGET1 TARGET2

Are TARGET1 and TARGET2 the same?

Package

overlord/target-protocol

Source

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.lisp (file)

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

lisp.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

lisp.lisp (file)

Direct superclasses

target-error (condition)

Condition: overlord-condition ()
Package

overlord/types

Source

lisp.lisp (file)

Direct superclasses

condition (condition)

Direct subclasses
Direct methods

print-object (method)

Condition: overlord-error ()
Package

overlord/types

Source

lisp.lisp (file)

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

overlord/types

Source

lisp.lisp (file)

Direct superclasses
Condition: recursive-dependency ()
Package

overlord/redo

Source

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

overlord/types: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

lisp.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

lisp.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

lisp.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 overlord/types: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

lisp.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

lisp.lisp (file)

Direct superclasses

ref (class)

Direct methods
Direct slots
Slot: name
Type

(and overlord/types:absolute-pathname overlord/types: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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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: absolute-directory-pathname ()
Package

overlord/types

Source

lisp.lisp (file)

Type: absolute-pathname ()
Package

overlord/types

Source

lisp.lisp (file)

Type: asdf-system ()
Package

overlord/asdf

Source

lisp.lisp (file)

Type: case-mode ()

Possible values for a readtable’s case mode.

Package

overlord/types

Source

lisp.lisp (file)

Type: cl-symbol ()
Package

overlord/types

Source

lisp.lisp (file)

Type: db-version ()
Package

overlord/types

Source

lisp.lisp (file)

Type: directory-pathname ()
Package

overlord/types

Source

lisp.lisp (file)

Type: file-pathname ()
Package

overlord/types

Source

lisp.lisp (file)

Type: freeze-policy ()
Package

overlord/freeze

Source

lisp.lisp (file)

Type: hash-code ()
Package

overlord/types

Source

lisp.lisp (file)

Type: list-of A
Package

overlord/types

Source

lisp.lisp (file)

Type: oracle-answer ()
Package

overlord/oracle

Source

lisp.lisp (file)

Type: package-designator ()
Package

overlord/types

Source

lisp.lisp (file)

Type: pathname-designator ()
Package

overlord/types

Source

lisp.lisp (file)

Type: physical-pathname ()
Package

overlord/types

Source

lisp.lisp (file)

Type: plist ()
Package

overlord/types

Source

lisp.lisp (file)

Type: relative-pathname ()
Package

overlord/types

Source

lisp.lisp (file)

Type: stamp ()
Package

overlord/stamp

Source

lisp.lisp (file)

Type: tame-pathname ()

A pathname without wild components.

Package

overlord/types

Source

lisp.lisp (file)

Type: target-timestamp ()

Possible formats for the timestamp of a target.

Package

overlord/stamp

Source

lisp.lisp (file)

Type: temporary-file ()
Package

overlord/types

Source

lisp.lisp (file)

Type: universal-time ()
Package

overlord/types

Source

lisp.lisp (file)

Type: wild-pathname ()

A pathname with wild components.

Package

overlord/types

Source

lisp.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

lisp.lisp (file)

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

overlord/stamp

Source

lisp.lisp (file)

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

overlord/target-protocol

Source

lisp.lisp (file)

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

overlord/stamp

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.lisp (file)

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

overlord/oracle

Source

lisp.lisp (file)

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

overlord/target-protocol

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.lisp (file)

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

overlord/kernel

Source

lisp.lisp (file)

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

overlord/db

Source

lisp.lisp (file)

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

overlord/target-protocol

Source

lisp.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

lisp.lisp (file)

Special Variable: *build-id*
Package

overlord/build-env

Source

lisp.lisp (file)

Special Variable: *can-use-env-c*
Package

overlord/cmd

Source

lisp.lisp (file)

Special Variable: *db*

The database.

Package

overlord/db

Source

lisp.lisp (file)

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

overlord/freeze

Source

lisp.lisp (file)

Special Variable: *freeze-policy*
Package

overlord/freeze

Source

lisp.lisp (file)

Special Variable: *frozen*

Is the build system frozen?

Package

overlord/freeze

Source

lisp.lisp (file)

Special Variable: *global-state*
Package

overlord/global-state

Source

lisp.lisp (file)

Special Variable: *initial-pathname-defaults*
Package

overlord/global-state

Source

lisp.lisp (file)

Special Variable: *initial-working-dir*
Package

overlord/global-state

Source

lisp.lisp (file)

Special Variable: *meta-kernel*

Lparallel kernel for fetching target metadata.

Package

overlord/kernel

Source

lisp.lisp (file)

Special Variable: *package-bases*
Package

overlord/base

Source

lisp.lisp (file)

Special Variable: *prereq-packages*
Package

overlord/target

Source

lisp.lisp (file)

Special Variable: *save-pending*

Is there a save pending?

Package

overlord/db

Source

lisp.lisp (file)

Special Variable: *scripts*

Set of registered scripts.

Package

overlord/target

Source

lisp.lisp (file)

Special Variable: *symbol-timestamps*
Package

overlord/target

Source

lisp.lisp (file)

Special Variable: *tasks*
Package

overlord/target

Source

lisp.lisp (file)

Special Variable: *top-level-targets*
Package

overlord/target

Source

lisp.lisp (file)

Special Variable: *use-threads*

Whether to allow parallelism.

Package

overlord/specials

Source

lisp.lisp (file)

Special Variable: *worker-specials*

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

Package

overlord/specials

Source

lisp.lisp (file)


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

5.2.3 Symbol macros

Symbol Macro: build-time
Package

overlord/target

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: db-readtable
Package

overlord/db

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: meta-kernel-size
Package

overlord/kernel

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: no-log-data
Package

overlord/db

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: nonexist
Package

overlord/target

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: prereqs
Package

overlord/target

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: prereqsne
Package

overlord/target

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: quicklisp
Package

overlord/oracle

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: template-directory
Package

overlord/project-system

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: thread-count-cap
Package

overlord/kernel

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: tombstone
Package

overlord/db

Source

lisp.lisp (file)

Expansion

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

Symbol Macro: top-level-target-lock
Package

overlord/target

Source

lisp.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

lisp.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

lisp.lisp (file)

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

overlord/target

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.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

lisp.lisp (file)

Macro: if TEST THEN ELSE

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

Package

overlord/target

Source

lisp.lisp (file)

Macro: if-let BINDINGS THEN ELSE

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

Package

overlord/target

Source

lisp.lisp (file)

Macro: phony-task-target NAME &body SCRIPT

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

Package

overlord/target

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

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

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

Package

overlord/db

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.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

lisp.lisp (file)


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

5.2.6 Functions

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

overlord/cache

Source

lisp.lisp (file)

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

overlord/target-table

Source

lisp.lisp (file)

Function: absolute-directory-pathname? X

Is X an absolute directory pathname?

Package

overlord/base

Source

lisp.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

lisp.lisp (file)

Function: alist-to-target-table ALIST
Package

overlord/target-table

Source

lisp.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

lisp.lisp (file)

Function: ask-for-token ENV
Package

overlord/build-env

Source

lisp.lisp (file)

Function: build-default-system-target SYSTEM
Package

overlord/project-system

Source

lisp.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

lisp.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

lisp.lisp (file)

Function: built-in-symbol? SYMBOL
Package

overlord/types

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

Function: call/current-dir THUNK DIR
Package

overlord/base

Source

lisp.lisp (file)

Function: call/meta-kernel THUNK
Package

overlord/kernel

Source

lisp.lisp (file)

Function: call/saving-database THUNK

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

Package

overlord/db

Source

lisp.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

lisp.lisp (file)

Function: check-generic-function NAME

Check that NAME is bound to a generic function.

Package

overlord/target

Source

lisp.lisp (file)

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

overlord/types

Source

lisp.lisp (file)

Function: check-version ()

Check that the database version matches the Overlord system version.

Package

overlord/db

Source

lisp.lisp (file)

Function: cl-sym? SYM
Package

overlord/oracle

Source

lisp.lisp (file)

Function: cl-symbol-p X
Package

overlord/types

Source

lisp.lisp (file)

Function: clear-scripts ()

Nix all symbols registered as scripts.

Package

overlord/target

Source

lisp.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

lisp.lisp (file)

Function: copy-db INSTANCE
Package

overlord/db

Source

lisp.lisp (file)

Function: copy-dead-db INSTANCE
Package

overlord/db

Source

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

Function: copy-machine INSTANCE
Package

overlord/makespan

Source

lisp.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

lisp.lisp (file)

Function: copy-target-meta INSTANCE
Package

overlord/build-env

Source

lisp.lisp (file)

Function: copy-target-table INSTANCE
Package

overlord/target-table

Source

lisp.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

lisp.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

lisp.lisp (file)

Function: current-lisp-file ()
Package

overlord/base

Source

lisp.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

lisp.lisp (file)

Function: db ()

Get the current database, loading it if necessary.

Package

overlord/db

Source

lisp.lisp (file)

Function: db-alist &optional DB

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

Package

overlord/db

Source

lisp.lisp (file)

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

overlord/db

Source

lisp.lisp (file)

Function: db-p OBJECT
Package

overlord/db

Source

lisp.lisp (file)

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

Access KEY in the current database.

Package

overlord/db

Source

lisp.lisp (file)

Function: db-write OBJ STREAM

Write OBJ to STREAM using the database syntax.

Package

overlord/db

Source

lisp.lisp (file)

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

overlord/db

Source

lisp.lisp (file)

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

overlord/db

Source

lisp.lisp (file)

Function: db.log-file INSTANCE
Package

overlord/db

Source

lisp.lisp (file)

Function: db.state INSTANCE
Package

overlord/db

Source

lisp.lisp (file)

Function: db.version INSTANCE
Package

overlord/db

Source

lisp.lisp (file)

Function: dead-db-p OBJECT
Package

overlord/db

Source

lisp.lisp (file)

Function: deduplicate-targets TARGETS &key KEY
Package

overlord/target

Source

lisp.lisp (file)

Function: delayed-symbol-package-name INSTANCE
Package

overlord/types

Source

lisp.lisp (file)

Function: delayed-symbol-symbol-name INSTANCE
Package

overlord/types

Source

lisp.lisp (file)

Function: delayed-symbol= DS1 DS2
Package

overlord/types

Source

lisp.lisp (file)

Function: delete-file-or-directory P
Package

overlord/target

Source

lisp.lisp (file)

Function: dist-exists? DIST
Package

overlord/oracle

Source

lisp.lisp (file)

Function: ensure-file-target-pathname PATHNAME
Package

overlord/target

Source

lisp.lisp (file)

Function: ensure-meta-kernel ()
Package

overlord/kernel

Source

lisp.lisp (file)

Function: ensure-pathname* X
Package

overlord/util

Source

lisp.lisp (file)

Function: exe-string P
Package

overlord/cmd

Source

lisp.lisp (file)

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

overlord/util

Source

lisp.lisp (file)

Function: extract-directives FORMAT-STRING
Package

overlord/message

Source

lisp.lisp (file)

Function: file-digest-ref FILE
Package

overlord/target

Source

lisp.lisp (file)

Function: file-hash-hash INSTANCE
Package

overlord/stamp

Source

lisp.lisp (file)

Function: file-hash-size INSTANCE
Package

overlord/stamp

Source

lisp.lisp (file)

Function: file-hash= X Y
Package

overlord/stamp

Source

lisp.lisp (file)

Function: file-meta-size INSTANCE
Package

overlord/stamp

Source

lisp.lisp (file)

Function: file-meta-timestamp INSTANCE
Package

overlord/stamp

Source

lisp.lisp (file)

Function: file-meta= X Y
Package

overlord/stamp

Source

lisp.lisp (file)

Function: file-stamp FILE
Package

overlord/target

Source

lisp.lisp (file)

Function: file-stamp/hash FILE
Package

overlord/target

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.lisp (file)

Function: file-task TASK
Package

overlord/target

Source

lisp.lisp (file)

Function: get-version COMMAND
Package

overlord/oracle

Source

lisp.lisp (file)

Function: getpid ()
Package

overlord/db

Source

lisp.lisp (file)

Function: guess-arg-count FORMAT-STRING

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

Package

overlord/message

Source

lisp.lisp (file)

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

overlord/base

Source

lisp.lisp (file)

Function: hard-freeze-targets ()

Freeze targets.

Package

overlord/target

Source

lisp.lisp (file)

Function: has-earmuffs? SYM

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

Package

overlord/target

Source

lisp.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

lisp.lisp (file)

Function: impossible-task TARGET
Package

overlord/target

Source

lisp.lisp (file)

Function: in-worker? ()
Package

overlord/db

Source

lisp.lisp (file)

Function: infer-system PACKAGE &key ERRORP
Package

overlord/base

Source

lisp.lisp (file)

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

overlord/base

Source

lisp.lisp (file)

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

overlord/base

Source

lisp.lisp (file)

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

overlord/base

Source

lisp.lisp (file)

Function: list-without-nil? LIST
Package

overlord/types

Source

lisp.lisp (file)

Function: load-log-data LOG-FILE

Load the data from LOG-FILE.

Package

overlord/db

Source

lisp.lisp (file)

Function: log-data-p OBJECT
Package

overlord/db

Source

lisp.lisp (file)

Function: log-data.map INSTANCE
Package

overlord/db

Source

lisp.lisp (file)

Function: log-data.map-count INSTANCE
Package

overlord/db

Source

lisp.lisp (file)

Function: log-file-path &optional VERSION

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

Package

overlord/db

Source

lisp.lisp (file)

Function: log-file-size LOG-FILE

Return the size on disk of LOG-FILE.

Package

overlord/db

Source

lisp.lisp (file)

Function: log-record-p OBJECT
Package

overlord/db

Source

lisp.lisp (file)

Function: log-record.data INSTANCE
Package

overlord/db

Source

lisp.lisp (file)

Function: log-record.timestamp INSTANCE
Package

overlord/db

Source

lisp.lisp (file)

Function: look-for-asd ()

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

Package

overlord/base

Source

lisp.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

lisp.lisp (file)

Function: machine-add-task MACHINE TASK
Package

overlord/makespan

Source

lisp.lisp (file)

Function: machine-p OBJECT
Package

overlord/makespan

Source

lisp.lisp (file)

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

overlord/makespan

Source

lisp.lisp (file)

Function: machine-tasks MACHINE
Package

overlord/makespan

Source

lisp.lisp (file)

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

overlord/makespan

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.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

lisp.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

lisp.lisp (file)

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

overlord/db

Source

lisp.lisp (file)

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

overlord/db

Source

lisp.lisp (file)

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

overlord/makespan

Source

lisp.lisp (file)

Function: make-target-meta TARGET
Package

overlord/build-env

Source

lisp.lisp (file)

Function: make-token-pool N
Package

overlord/build-env

Source

lisp.lisp (file)

Function: multiple-file-stamp FILES
Package

overlord/target

Source

lisp.lisp (file)

Function: nearest-asdf-file FILE
Package

overlord/base

Source

lisp.lisp (file)

Function: next-build-id ()
Package

overlord/build-env

Source

lisp.lisp (file)

Function: nproc-string ()
Package

overlord/kernel

Source

lisp.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

lisp.lisp (file)

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

overlord/base

Source

lisp.lisp (file)

Function: package-prereqs-table PACKAGE
Package

overlord/target

Source

lisp.lisp (file)

Function: parse-cmd-args ARGS
Package

overlord/cmd

Source

lisp.lisp (file)

Function: pathname-exists? PATH
Package

overlord/target

Source

lisp.lisp (file)

Function: plist? ()
Package

overlord/types

Source

lisp.lisp (file)

Function: pmap* TYPE FN SEQ

Like ‘map’, but possibly parallel.

Package

overlord/redo

Source

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

Function: prop-key OBJ PROP

Convert OBJ and PROP into a single key.

Package

overlord/db

Source

lisp.lisp (file)

Function: psome* FN SEQ

Like ‘some’, but possibly parallel.

Package

overlord/redo

Source

lisp.lisp (file)

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

overlord/oracle

Source

lisp.lisp (file)

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

overlord/base

Source

lisp.lisp (file)

Function: rebuild-file FILE THUNK &optional BASE
Package

overlord/target

Source

lisp.lisp (file)

Function: rebuild-symbol SYMBOL VALUE &key HASH
Package

overlord/target

Source

lisp.lisp (file)

Function: record-package-prereq PACKAGE TARGET

Save TARGET as a prerequisite of PACKAGE. Return TARGET.

Package

overlord/target

Source

lisp.lisp (file)

Function: record-package-prereq* TARGET

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

Package

overlord/target

Source

lisp.lisp (file)

Function: record-parent-prereqne PARENT TARGET
Package

overlord/target

Source

lisp.lisp (file)

Function: redo-ifchange-target TARGET

Rebuild TARGET if it is out of date.

Package

overlord/redo

Source

lisp.lisp (file)

Function: redo-target TARGET

Unconditionally build TARGET.

Package

overlord/redo

Source

lisp.lisp (file)

Function: register-script NAME

Register NAME as a script.

Package

overlord/target

Source

lisp.lisp (file)

Function: release-database ()
Package

overlord/db

Source

lisp.lisp (file)

Function: reload-db ()

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

Package

overlord/db

Source

lisp.lisp (file)

Function: rename-by-copying TMP DEST
Package

overlord/util

Source

lisp.lisp (file)

Function: replace-file-atomically DATA DEST

Write DATA into DEST

Package

overlord/util

Source

lisp.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

lisp.lisp (file)

Function: resolved-file-meta INSTANCE
Package

overlord/stamp

Source

lisp.lisp (file)

Function: resolved-file-path INSTANCE
Package

overlord/stamp

Source

lisp.lisp (file)

Function: resolved-file= X Y
Package

overlord/stamp

Source

lisp.lisp (file)

Function: return-token ENV TOKEN
Package

overlord/build-env

Source

lisp.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

lisp.lisp (file)

Function: save-file-task TASK
Package

overlord/target

Source

lisp.lisp (file)

Function: save-task TASK
Package

overlord/target

Source

lisp.lisp (file)

Function: saved-package-base PACKAGE

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

Package

overlord/base

Source

lisp.lisp (file)

Function: saved-package-system PACKAGE

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

Package

overlord/base

Source

lisp.lisp (file)

Function: saved-prereq X &optional STAMP

Make a saved prereq object.

Package

overlord/target

Source

lisp.lisp (file)

Function: script-for NAME
Package

overlord/target

Source

lisp.lisp (file)

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

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

Package

overlord/base

Source

lisp.lisp (file)

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

Set the base and/or system of PACKAGE.

Package

overlord/base

Source

lisp.lisp (file)

Function: set-package-system* SYSTEM
Package

overlord/base

Source

lisp.lisp (file)

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

overlord/base

Source

lisp.lisp (file)

Function: shadow-tree-p OBJECT
Package

overlord/cache

Source

lisp.lisp (file)

Function: shadow-tree-prefix INSTANCE
Package

overlord/cache

Source

lisp.lisp (file)

Function: shadow-tree-root SHADOW-TREE

Get the root directory of SHADOW-TREE.

Package

overlord/cache

Source

lisp.lisp (file)

Function: simplify-cmd-args ARGS
Package

overlord/cmd

Source

lisp.lisp (file)

Function: split-cmd CMD
Package

overlord/cmd

Source

lisp.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

lisp.lisp (file)

Function: start-meta-kernel ()
Package

overlord/kernel

Source

lisp.lisp (file)

Function: stringify-pathname ARG
Package

overlord/cmd

Source

lisp.lisp (file)

Function: strip-tombstones MAP

Strip key-value pairs with tombstone values from MAP.

Package

overlord/db

Source

lisp.lisp (file)

Function: system-resource SYSTEM PATH
Package

overlord/target

Source

lisp.lisp (file)

Function: target-build-script-target TARGET
Package

overlord/redo

Source

lisp.lisp (file)

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

overlord/redo

Source

lisp.lisp (file)

Function: target-meta TARGET
Package

overlord/build-env

Source

lisp.lisp (file)

Function: target-meta-p OBJECT
Package

overlord/build-env

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

Function: target-meta.target INSTANCE
Package

overlord/build-env

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

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

overlord/build-env

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.lisp (file)

Function: target-table-p OBJECT
Package

overlord/target-table

Source

lisp.lisp (file)

Function: target-table-to-alist TABLE
Package

overlord/target-table

Source

lisp.lisp (file)

Function: target-table.hash-table INSTANCE
Package

overlord/target-table

Source

lisp.lisp (file)

Function: target-table.lock INSTANCE
Package

overlord/target-table

Source

lisp.lisp (file)

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

overlord/target-table

Source

lisp.lisp (file)

Function: target-table.synchronized INSTANCE
Package

overlord/target-table

Source

lisp.lisp (file)

Function: target? TARGET

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

Package

overlord/redo

Source

lisp.lisp (file)

Function: task TASK TIME
Package

overlord/makespan

Source

lisp.lisp (file)

Function: task-base INSTANCE
Package

overlord/target

Source

lisp.lisp (file)

Function: task-script INSTANCE
Package

overlord/target

Source

lisp.lisp (file)

Function: task-target INSTANCE
Package

overlord/target

Source

lisp.lisp (file)

Function: task-task INSTANCE
Package

overlord/makespan

Source

lisp.lisp (file)

Function: task-thunk INSTANCE
Package

overlord/target

Source

lisp.lisp (file)

Function: task-time INSTANCE
Package

overlord/makespan

Source

lisp.lisp (file)

Function: temporary-file? FILE
Package

overlord/types

Source

lisp.lisp (file)

Function: todays-date-string ()
Package

overlord/oracle

Source

lisp.lisp (file)

Function: touch-target TARGET &optional DATE
Package

overlord/target

Source

lisp.lisp (file)

Function: trivial-task TARGET
Package

overlord/target

Source

lisp.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

lisp.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

lisp.lisp (file)

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

Update the stamp for NAME with VAL.

Package

overlord/target

Source

lisp.lisp (file)

Function: use* &rest TARGETS

Like ‘use’, but ordered.

Package

overlord/target

Source

lisp.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

lisp.lisp (file)

Function: use-build-cache? ()
Package

overlord/build-env

Source

lisp.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

lisp.lisp (file)

Function: warn* MESSAGE &rest ARGS
Package

overlord/types

Source

lisp.lisp (file)

Function: wildcard-hash WILDCARD
Package

overlord/oracle

Source

lisp.lisp (file)

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

overlord/target

Source

lisp.lisp (file)

Function: wrap-save-base FORM
Package

overlord/target

Source

lisp.lisp (file)

Function: wrap-with-dir DIR TOKENS

Wrap TOKENS with the necessary code to run the process in DIR.

The OS-level current directory is per-process, not per thread. Using ‘chdir’ could lead to race conditions. Instead, we arrange for the new process to change its own working directory.

Package

overlord/cmd

Source

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

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

overlord/build-env

Source

lisp.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

lisp.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

lisp.lisp (file)

Generic Function: claim-file SELF TARGET FILE
Package

overlord/build-env

Methods
Method: claim-file (SELF build-env) TARGET (FILE pathname)
Source

lisp.lisp (file)

Generic Function: claim-files SELF TARGET FILES
Package

overlord/build-env

Methods
Method: claim-files (SELF build-env) TARGET (FILES sequence)
Source

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

Generic Function: db.ref DB KEY

Lookup KEY in DB.

Package

overlord/db

Source

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

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

overlord/target

Source

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

Generic Function: pattern.script OBJECT
Package

overlord/target

Methods
Method: pattern.script (PATTERN pattern)

automatically generated reader method

Source

lisp.lisp (file)

Generic Function: print-target-being-built TARGET

Print some information about the target being built.

Package

overlord/target

Source

lisp.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

lisp.lisp (file)

Generic Function: record-parent-prereq PARENT TARGET

Record TARGET as a prerequisite of PARENT.

Package

overlord/target

Source

lisp.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

lisp.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

lisp.lisp (file)

Generic Function: relative-file-truename TARGET
Package

overlord/target

Source

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

Generic Function: unlock-db DB

Remove the lockfile for the DB.

Package

overlord/db

Source

lisp.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

lisp.lisp (file)


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

5.2.8 Conditions

Condition: db-error ()
Package

overlord/db

Source

lisp.lisp (file)

Direct superclasses

overlord-error (condition)

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

overlord/types

Source

lisp.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

lisp.lisp (file)

Direct superclasses

delayed-symbol-error (condition)

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

overlord/types

Source

lisp.lisp (file)

Direct superclasses

delayed-symbol-error (condition)

Condition: locked-db ()
Package

overlord/db

Source

lisp.lisp (file)

Direct superclasses

db-error (condition)

Direct slots
Slot: saved-pid
Initargs

:saved-pid

Condition: non-existent-exists ()
Package

overlord/redo

Source

lisp.lisp (file)

Direct superclasses

target-error (condition)

Condition: not-a-target ()
Package

overlord/target

Source

lisp.lisp (file)

Direct superclasses

overlord-error (condition)

Direct slots
Slot: designator
Initargs

:designator

Condition: target-error ()
Package

overlord/redo

Source

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.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

lisp.lisp (file)

Direct superclasses

%read-only-struct (structure)

Direct methods

read-only-str