Glossary#

canonical sources

only meaningful in reference to a particular compiler database or compilation context. The set of sources from which the information in the database was derived.

compilation context

the in-memory representation of an open compiler database. Consists of a connection to a disk database, a reference to the owning project, and a collection of caches for pre-loaded/pre-computed information.

compiler database

a file or set of files containing information derived from compiling a project. A project can have multiple compiler databases, corresponding to different target machines, compiler settings, or even different versions of the project sources. The project manager is responsible for managing the collection of project databases and telling the compilation system which database to use.

component

a native DLL or EXE file.

DFMC

the Dylan Flow Machine Compiler, the intermediate representation on which type inference and optimization (dispatch, inline, dynamic extent, common subexpression elimination, constant folding, dead code removal) is done. Source of data and control flow elements is in dfmc/flow-graph.

execution context

the compiler-derived information about a process, such as the namespaces of known runtime components, installed definitions, etc. Initialized from the compilation contexts of the preloaded runtime components and subsequently updated by interactive execution.

HARP

Harlequin Abstract RISC Machine, the native back-end of Open Dylan. On this representation register allocation etc is done: input DFM, output: assembly. Source is in harp subdirectory.

interactive execution

a mechanism for exploratory programming by which the user can execute Dylan forms in an existing process. May allow “out of language” operations such as addition of new variables to existing modules, redefinition of classes, constants, overriding sealing restrictions, etc. Forms to be executed can come from a project or from an interactor.

project

a development environment object representing a Dylan program under development. It corresponds to a Dylan library, but it exists before the compiler is ever invoked. It is used by the compiler only to identify a library in interactions with the project manager.

project manager

the part of the development environment charged with managing projects. The project manager is a client of the compilation system, i.e. it is the project manager which is expected to invoke many of the functions in this API.

runtime component

a runtime manager object representing a component loaded into a tethered process.

interactor

a mechanism by which a user can type in source records for interactive execution without modifying project sources.

runtime manager

the part of the development environment charged with controlling the runtime. The compilation system is a client of the runtime manager, i.e. the compilation system will invoke runtime manager functions as needed to effect interactive execution.

source record

smallest unit of source suitable for compilation. Consists of a stream of characters and a module name. Contains complete top-level forms (i.e. top-level forms may not be split across source records).

tether

a runtime manager object representing a debuggable process on the runtime. Sometimes referred to as an “access-path”, but I’m staying away from that term because it seems to be used differently in different documents.