No side effects, no surprises.

Rule validator

Understanding the details of the rule validator is important because effective use of the V language is only possible when this step's work is understood.

The rule validator processes each prepared object (objects that are composed, evaluated, and substituted), in dependency order: here is where the real work of the VLI runtime occurs.

Note that in many common scenarios, a prepared object is unchanged from its original parsed form. (Furthermore, conceptually, the system administrator can view all objects from this simplistic point of view and use the V language without undue consideration to the detailed processing sketched out in the previous pages.)

Plug-in modules

The validator conducts its work through the use of plug-in modules. Plug-in modules are the executable components of the VLI that correspond to an object's type keyword. In the earlier examples the types glob, file, and resource were introduced.

Plug-in developers can extend the V language by defining new types.

Each object defined in the V language must include a type statement, which is used to instruct the VLI to load and execute a corresponding plug-in module.

All modules follow a general set of steps for processing each object, plus a specific set of steps defined by the module developer. The general steps include: checking for required keywords, checking for misspelled keywords, verifying the existence of the referent object(s), checking that user-defined assertions are true, tracing the object's timeline, and emitting success or failure.