I just wanted to put in writing a decision that I just made about how to accept changes to the puppet grammar and interpreter. This was prompted by two pull requests by Erik Dalen to bring the puppet parser in compliance with the language reference on the Puppet Labs website ( https://github.com/puppetlabs/puppet/pull/1573 and https://github.com/puppetlabs/puppet/pull/1574).
The language reference is meant to be a guide for how to write puppet manifests. It does not act as a complete language specification and as such my at times prescribe that things are not allowed which the puppet parser will actually accept. At the moment there is no external specification of the puppet language beyond the implementation that lives in puppet. We can accept changes to the language implementation that are: a) backwards compatible - anything that would have parsed before the change will parse in the same manner after the change, same with semantics b) fix parse errors Beyond that we probably cannot accept changes in the language. How do we move forward? The new parser that has been written for the prototype to add iteration to the language could act as a starting point to have an external specification of the language. It would take great pains for it to be bug for bug compatible with the existing grammar, and it probably would not be worth it. We will need to start working towards having an external and versioned language specification that the new parser implements. The new specification should try to stay mostly (say > 90%) compatible with the existing language, but we should consider trying to clean up the edges like what Erik was doing. The language reference was written in a manner that should provide some good guidance as to what might be good to keep in the specified language. -- Andrew Parker [email protected] Freenode: zaphod42 Twitter: @aparker42 Software Developer *Join us at PuppetConf 2013, August 22-23 in San Francisco - * http://bit.ly/pupconf13* **The first 150 tickets sold will be available at a 35% discount - register now!* -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/puppet-dev?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
