Move re test method into libvcl

Paul Nasrat pnasrat at googlemail.com
Sun Apr 13 12:34:37 CEST 2008


On 13 Apr 2008, at 08:03, Poul-Henning Kamp wrote:
> In message <F39ABE22-D50C-429E-9A38-FF905A80DD3F at googlemail.com>,  
> Paul Nasrat w
> rites:
>>
>> On 12 Apr 2008, at 19:19, Poul-Henning Kamp wrote:
>>
>>> Your patch breaks the convention that compiled code only calls VRT_*
>>> functions, you need to keep a VRT_re_test() wrapper around for that
>>> reason.
>>
>> I'm not sure that's breaking that convention - the call chain is in
>> vcc_regexp and it's a test before generating the C for the compiled
>> vcl binary. Maybe I'm misunderstanding what you mean by "compiled
>> code" in this case - I think that you mean that any generated C from
>> vcl should only call VRT_* functions, which this patch doesn't  
>> change,
>> as it's a validity check before code generation occurs.
>
> Correct, but your patch removes a VRT_ function which the generated
> code needs in order to run...

I had a look and if we just rerun vcc_gen_fixed_token.tcl after the  
patch it does the right thing and, there is nothing in the vcl code  
that generates that function - it was purely used at compile time not  
run time.

After doing this if I look for any references to the VRT_re_test call  
there are none. I don't think this method was generated, just grouped  
in with the other regex code but only used in vcc_string.c

I'm happy to come up with a patch that keeps a wrapper, but from my  
reading of the code I'm not sure in this instance it is required.

>> I looked on http://varnish.projects.linpro.no/wiki/DeveloperResources
>> but didn't see a mention of this convention - is there another  
>> place I
>> should be looking so that I can understand the coding conventions of
>> the project?
>
> They're not well documented, sorry.

I'll try to put a wiki page together with what I've learned about vcl  
internals (adding/removing stuff, etc).

Paul



More information about the varnish-dev mailing list