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.


Reply via email to