Synopsis
Represents a single job in the build, including the commands invoked by that job, timing information, etc.
Attributes
- end
-
State of the versioned file system when this job completed; used to determine which other jobs may access file versions created by this job.
- file
-
Makefile in which the rule used for the job is defined.
- id
-
An identifier for the job, guaranteed to be unique across the entire build. This is used to relate jobs to one another as well as to make it possible to unambiguously reference a job.
- inval
-
State of the versioned file system when this job was reverted; used to determine which other jobs may access file versions created by this job. If the job was not reverted or in conflict itself, this attribute will not be present.
- line
-
Line number on which the rule used for the job begins.
- name
-
Name of the target built by the job; only has meaning for rule jobs and external jobs.
- neededby
-
Job identifier of the job that caused emake to schedule this job.
- partof
-
For continuation jobs, the rule job that they continue.
- stale
-
Number of untriggered input events when this job started running; a value greater than zero indicates that the job was over-serialized.
- start
-
State of the versioned file system when this job started running; used to determine which file versions are accessible to this job.
- status
-
Indicates the final disposition of the job; one of the following:
-
conflict: based on filesystem access, the job was determined to have run too early, and so its output and filesystem modifications were discarded. The job will be rerun with the correct filesystem state.
-
rerun: the job is the second attempt at running a job that was previously found to be in conflict.
-
reverted: the job was run but its output and filesystem modifications were discarded, either due to a conflict in an earlier job, or due to a user interrupt or an error in a previous job which terminated the build such that the job would not have run had the build been run serially.
-
skipped: the job was scheduled but never run, either due to a conflict in an earlier job, or due to a user interrupt or an error in a previous job which terminated the build before the job could be run.
-
normal: none of the above; this is the default value.
-
- thread
-
A hexidecimal string identifying the thread within emake or electrify that executed the job.
- type
-
Indicates the type of the job. Internally emake uses several different types of jobs to represent the build:
-
parse: work done by emake to process makefiles to determine what work needs to be done to complete a single make instance. This is always the first job in any make instance.
-
exist: simple existence check, used for makefiles and command-line goals for which no rule was found.
-
remake: in gmake and ninja emulation modes, remake jobs are used to check if any makefiles were updated after parsing, and if so, to restart the make instance with the new makefiles.
-
mkdir: in ninja emulation mode, mkdir jobs are used to create the directory for output targets prior to running the rule jobs for those targets.
-
rule: the real work of the build: compiles, links, etc. Typically a rule job corresponds to one rule in a makefile.
-
follow: a bookkeeping job used to ensure proper sequencing of jobs in a parent make instance with jobs in a submake instance.
-
continuation: continuation of a previous rule job. These jobs are similar to rule jobs in that they also represent real work in the build. The difference is internal only.
-
end: the last job in a make instance, used to do final cleanup such as removing intermediate files.
-
In addition, there are some job types used exclusively by electrify:
-
alpha: a placeholder marker the start of list of jobs in the build.
-
external: commands invoked by the electrified build tool which are distributed to the cluster for execution. These are similar to emake’s rule jobs.
-
update: container for filesystem modifications made by commands invoked by the electrified build tool, but not distributed to the cluster.
-
omega: a placeholder marker the end of the list of jobs in the build.
- weight
-
Weight of the job, used by the schedule optimization feature to determine job runtime ordering. Jobs with greater weight are run earlier than jobs with lesser weight. If the attribute is not present, then emake did not have schedule optimization data for the job, and the job is treated as if it has the maximum possible weight.
Contents
-
<environment> (if annotation detail level includes env)
-
<depList> (if annotation detail level includes history)
-
<opList> (if annotation detail level includes file or lookup)
-
<registryOpList> (if annotation detail level includes registry and the build was run on a Windows system)