wiki:Doc/compiler

Version 1 (modified by /O=GRID-FR/C=FR/O=CNRS/OU=LAL/CN=Charles Loomis, 17 years ago) (diff)

--

The pan "compiler" interprets machine configurations written in the pan configuration language and produces "machine profiles" that describe each machine's configuration. A client machine then retrieves its machine profile and uses the information in it to update its configuration. The configuration typically includes the software packages installed on the machine, what services run on the machine, and how those services are configured.

The word "compiler" is actually a misnomer because the actual compilation of pan templates (files written in the pan configuration language) is a small part of the work. The compiler runs through five stages to produce a machine profile: compilation of pan templates, execution of those templates, insertion of default values, validation of configuration information, and finally serialization of the machine profile.

This documentation describes the java-implementation of a pan language compiler (versions 7 and greater) that replaces an earlier c-implementation (versions 6 and smaller). The compiler was reimplemented to take better advantage of multi-CPU machines and reduce memory consumption; the eventual aim is to reduce the time it takes to produce a set of machine profiles.