On 29.07.2014 15:55, Stefan Fuhrmann wrote:
>
> On Tue, Jul 29, 2014 at 3:28 PM, Branko Čibej <br...@wandisco.com
> <mailto:br...@wandisco.com>> wrote:
>
>     On 29.07.2014 14:55, Stefan Fuhrmann wrote:
>>     On Tue, Jul 29, 2014 at 1:52 PM, Branko Čibej <br...@wandisco.com
>>     <mailto:br...@wandisco.com>> wrote:
>>
>>         On 29.07.2014 13:34, Stefan Fuhrmann wrote:
>>>         On Mon, Jul 28, 2014 at 7:38 PM, Branko Čibej <br...@wandisco.com> 
>>> <mailto:br...@wandisco.com> wrote:
>>>>         On 28.07.2014 19:19, stef...@apache.org 
>>>> <mailto:stef...@apache.org> wrote:
>>>>>         Author: stefan2
>>>>>         Date: Mon Jul 28 17:19:47 2014
>>>>>         New Revision: 1614080
>>>>>
>>>>>         URL: http://svn.apache.org/r1614080
>>>>>         Log:
>>>>>         On the authzperf branch: Implement the notion of path rule 
>>>>> ordering
>>>>>         by making svn_config_t iterate through sections in declaration 
>>>>> order.
>>>>>         This is done using a simple linked list because we can't remove
>>>>>         sections but only add them.
>>>>         No no no no!
>>>         What exactly did my change break?
>>>
>>>         Right now, the svn_config interface returns the sections in random 
>>> order.
>>>         I changed the code such that this random order happens to be the 
>>> same
>>>         as the (static and dynamic) declaration order.
>>>
>>>>         Changing the svn_config_t structure is not the right to do this. 
>>>> The correct
>>>>         approach here is to parametrise the svn_config parser with a 
>>>> constructor
>>>>         method, then create a new constructor for the authz parser which 
>>>> will then
>>>>         get all entries in the file order. Please revert these svn_config 
>>>> changes.
>>>         I reverted the changes for now as I agree that the new behaviour
>>>         should be somewhat more explicit.
>>>
>>>         However, since this is not about construction (the result would
>>>         still be a hash)
>>
>>         You are making way too many assumptions about that. See my
>>         svn_config parser parametrization in r1614213
>>
> [...]
>
>>
>>>     The second point is more severe, though, as it prevents a nicer
>>>     intermediate
>>>     model than what svn_config_t already provides. The following is
>>>     a legal authz
>>>     file:
>>
>     I'm going to skip commenting on this because I don't see how it's
>     relevant.
>
>  
> The point is that you can't interpret any of the stream
> beyond the key/value model already implemented by
> svn_config_t until you have read the whole stream.

That's true for config files, but not necessarily for authz files.


> So, while you can without doubt parse the file streamily,
> you cannot begin to build a data model with authz
> semantics from it streamily. We can go down the path
> of inventing some intermediate model that performs
> slightly better than the current svn_config_t but that
> is a lot of coding simply to avoid a perfectly reasonable
> API bump.

Actually, it's not as perfectly reasonable as all that. Consider:

[foo]
x = 1

[bar]
y = 2

[foo]
z = 3

So ... in what order should these sections be enumerated?

-- Brane


-- 
Branko Čibej | Director of Subversion
WANdisco | Realising the impossibilities of Big Data
e. br...@wandisco.com

Reply via email to