Hi Arne.
>I would like to merge the branch arne/new_buffer. It implements
>and uses the new dynamic buffer implementation I have talked about on
>the conference. The main idea behind this implementation is to help the
>compiler generate better code in spite of the aliasing rules of C. In
>particular it tries to allow compilers to coalesce individual writes to
>the buffer into larger MOVs. This works reasonably well in gcc and
>clang.
I've only had a cursory look at the new code, but this sounds good to me.
>The immediate benefits are that encode_value and describe_svalue got
>some significant speedup. I added some benchmarks to the pike-benchmark
>repository. On my machine the results look like this:
>
>buffer/encode.pike#decode_array(int) | 73.0 M 1.7 % | 71.1
>M 0.8 % |
>buffer/encode.pike#decode_string(8bit) | 10.0 G 2.1 % | 9.9
>G 3.9 % |
Looks great except for the above two, which I suspect fall within the
measurement margin of error.
>Once this branch has been merged I would like to change the machine code
>generators to use it. However, that will require some API changes to
>everything in code/*. This was in fact the initial reason why I started
>looking into this.
Sounds great.
/grubba