On Thu, Apr 4, 2013 at 5:52 AM, Erik Dalén <[email protected]>wrote:
> 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 :) ). > That would be an option, but as you say, fragmenting the language becomes a real concern. I think we should avoid that if humanly possible. > > > > 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? > I was hoping for that too, and there is always the option of doing that. It will be one of those risk/reward tradeoff discussions we'll have to have. Pushing off the new parser for a 4.0 gives us a place to start doing these kind of cleanups. Aiming for high compatibility reduces the cost of people upgrading. Saying that it will go in for a puppet 4.0 means that we are communicating to users that there is a risk in the update. > Interested to hear about that reboot plan you mentioned in the other mail > as I guess this might be connected :) > > Are you asking about the support for rebooting? I don't think that is connected to this :) > -- > 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. > > > -- 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.
