On Monday 1 April 2013 at 22:20, Andy Parker wrote: > 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. Can they be made if they are optional with a switch to enable/disable, like the dashes in variable names for example? I understand the risk of fragmenting the language though and making forge modules harder to use (although I would be reluctant to use a forge module with that syntax :) ). > > 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. > I thought iteration would be in Puppet 3.2 or 3.3, but does this mean it will be in 4.0 instead? Interested to hear about that reboot plan you mentioned in the other mail as I guess this might be connected :)
-- Erik Dalén -- 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.
