On Thu, Apr 4, 2013 at 5:52 AM, Erik Dalén <erik.gustav.da...@gmail.com>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 puppet-dev+unsubscr...@googlegroups.com.
> To post to this group, send email to puppet-dev@googlegroups.com.
> 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
a...@puppetlabs.com
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 puppet-dev+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-dev@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to