Building a project with GNU6
A project in GNU6 environment is defined by mlist files. For example, the following mlist log.xml defines a project that writes into the file Log.log messages: "Do I need to do report", "Yes I need to do report".
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE personnel SYSTEM "/home/sergey/devel/gnu6/build/etc/mlist.dtd" [<!ENTITY project "iisi"> <!ENTITY prefix "/home/sergey/devel/gnu6/projects/test">]> <mlist> <project name="&project;"/> <mlist location="&prefix;/log.xml"/> <Log file="&prefix;/Log.log"/> <schedule> <TimeZone zone="PST" /> <everyday> <time start="4:0:0 AM" end="9:15:0 PM" /> </everyday> <day date="09/22/2002"> <time start="9:0:0 AM" end="1:15:0 PM" /> </day> </schedule> <move name="org.gnu6.moves.log"> <parameter name="message" value="Do I need to do report" /> </move> <move name="org.gnu6.moves.clearState"/> <move name="org.gnu6.moves.log"> <parameter name="message" value="Yes I need to do report" /> </move> </mlist>
starts runMLIST class which parses log.xml and executes all the moves in accordance with the given schedule. We call it "to start mlist log.xml" or "to run mlist log.xml". For example, if the mlist is started at 1:00 AM then it will wait until 4:00 AM (every day except on 09/22/2002) and then starts execution all the moves form the mlist. On the other hand, if we tried to start this mlist after 9:15:0 PM then it would not run.
All the moves from an mlist are executed in the order they appear in the mlist. In our example, the first move is org.gnu6.moves.log.This move writes "Do I need to do report" into a log-file. A log-file for each mlist is defined by
After writing the message "Do I need to do report" the mlist starts org.gnu6.moves.clearState which clears the current state of the project. org.gnu6.six.State is a shared objects that is used by all the moves from an mlist.
GNU6 comes with some moves. Clearly the more moves we have the faster we can develop a project with GNU6.