= Pan Language & Compiler = [[TracNav]] The pan "compiler" interprets machine configurations written in the pan configuration language and produces "machine profiles" that describe each machine's configuration. "Compiler" is actually a misnomer because the actual compilation of pan source files or "templates" 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. == Documentation == Documentation for the pan compiler and pan language are distributed with each version of the pan compiler: * Pan Language Manual: Detailed description of pan language syntax and functions. * Pan Compiler Manual: Detailed information about compiler options. * Pan Tutorial: A tutorial designed to explain the major features of the pan language. PDF versions of those manuals can be downloaded from the [https://sourceforge.net/project/showfiles.php?group_id=221766&package_id=286489 panc section] of the [https://sourceforge.net/project/showfiles.php?group_id=221766 Quattor SourceForge repository]. The installation packages also contain HTML versions of the documentation. The pan language continues to evolve. //It is strongly recommended to consult the version of the Pan Language Manual that corresponds to the exact version of the compiler you are using.// See the Pan Compiler Manual for installation instructions. == Sources == The source for the pan compiler is managed through a [http://git.org/ git] repository. The code can be checked out with a git client with the command: {{{ git clone ssh://SF_USERNAME@quattor.git.sourceforge.net/gitroot/quattor/pan }}} for read-write access. For anonymous, read-only access the following command should be used: {{{ git clone git://quattor.git.sourceforge.net/gitroot/quattor/pan }}} For specific versions of the compiler use the 'git tag -l' command to see the list of tags. The code can be browsed through the [http://quattor.git.sourceforge.net/git/gitweb-index.cgi Git Browser at SourceForge]. The code can be built and packaged with [http://maven.apache.org/ maven]. Issue the command: {{{ mvn install }}} from the top-level directory to package the compiler and install in your local maven cache. To build the RPM, you must be on a machine with `rpmbuild` installed.