On 9/20/13 6:57 PM, Stefan Monnier wrote: >> === modified file 'src/alloc.c' >> --- src/alloc.c 2013-09-04 22:34:04 +0000 >> +++ src/alloc.c 2013-09-19 22:24:27 +0000 >> @@ -2003,6 +2003,29 @@ >> return val; >> } > > Could you describe the intention of the changes in alloc.c (basically, > provide ChangeLog entries)? Sure. Something like this? 2013-09-21 Daniel Colascione * alloc.c (bool_vector_payload_bytes): New function: computes rounded-up payload size for a bool vector. Always allocate at least size_t bytes even for a zero-size vector. (Fmake_bool_vector): Instead of calling Fmake_vector, which performs redundant initialization and argument checking, just call allocate_vector ourselves. Make sure we clear any terminating padding to zero. (vector_nbytes,sweep_vectors): Use bool_vector_payload_bytes instead of open-coding the size calculation. >> + doc: /* Compute A = B ^ C, bitwise exclusive or. > > Why not make it C = A ^ B and then make C optional? > Same for other similar functions: make the destination argument optional. Then we wouldn't be able to extend these functions to accept more than three arguments: we wouldn't know whether the argument at the end was another operand or a destination.