[augeas-devel] Re: [PATCH] Add PHP module and associated (basic) test file

David Lutterkort dlutter at redhat.com
Sat Jul 26 16:46:06 UTC 2008


On Sat, 2008-07-26 at 14:23 +0200, Dominique Dumont wrote:
> "Raphaël Pinson" <raphink at gmail.com> writes:
> >
> >     Also, did you observe that augparse runs _really_ slow with that
> >     lens ?  It seems to allocate a _ton_ of memory. Seems like we
> >     need to do some optimizations somewhere to keep that at bay.
> >
> > Very slow indeed. Maybe the tip you gave me on dput.aug would
> > improve this. The fact is that php.aug has _tons_ of keywords. I'm
> > not even sure to have listed them all. since it seems that PHP
> > modules might allow more here...
> 
> An alternative way would be to use Augeas only to perform
> transformation from syntax to abstract tree and to control/validate
> the content of the abstract tree with another tool. Your tons of
> keywords would be declared in and verified by this other tool.

I am pretty confident that switching from taking the union of a lot of
lenses to a union of strings/regexps will take care of the slowness. The
difference between 'l(r1) | l(r2) | .. | l(rn)' vs 'l(r1|r2|..|rn)' is
enormous in terms of the internal processing - when parsing the file,
the first version requires n regexp matches, whereas the second just
requires one, plus the regexps for the first version are _much_ bigger
than for the second.

I hope to get rid of the n matches for the first form, but right now
that's what it does.

> > There's another problem though. As I was working on this file, it
> > seems logical to me to treat it as a standard INI file, with
> > sections and variables. Now I was surprised to find that variables
> > have a naming space in them, such that most variables exist several
> > times in different naming spaces (e.g.
> > (ifx,msql,mssql,mysql,mysqli,
> > odbc,pgsql,etc.).allow_persistent. After noticing that, I wondered
> > if the sections in php.ini were _really_ useful. If the were, what
> > would be the use of adding a naming space to the variable names? So
> > I talked with a few of my colleagues that are used to php.ini, and
> > they told me that PHP seems to completely ignore the sections in
> > php.ini, such that moving variables around has no effect on the
> > configuration. In that situation. should we consider sections as
> > comments, seeing that it would be hard to move values around if we
> > use standard INI file sections?
> 
> >From my experience on Config::Model, I'd said you should focus on the
> semantics of the configuration file and not its syntax. The syntax is
> an "implementation detail".

Augeas' goal though is pretty much the reverse: focus on syntax, and
leave semantics (i.e., what values mean in a tree) to other tools.
Having said that, it's always better to deal with things on the
syntactic level (e.g., by strictly checking for valid values).

David





More information about the augeas-devel mailing list