this patch, arena-fit does: adds ARENA_FIT macro to adjust arena size down to fit N bodies exactly, instead of wasting some memory for some types. (CVs, BMs, FMs, IOs) The macro takes (count, sizeof) args: count ==0 fits max bodies into PERL_ARENA_SIZE, giving a nice default that does the right thing when -Accflags=-DPERL_ARENA_SIZE=16368 is used to build perl. count >0 limits arena size, for less wastage with large/rare types. get_arena() now actually uses bdp->arena_sz, rather than PERL_ARENA_SIZE as in previous patches. Also adds ARENASETS to perl.h, so that its unsettable via -Accflags. The !ARENASETS code breaks currently during global destruction ie ~ "panic: wrong pool", ATM Ive lost motivation to fix it, though it would be nice to be able to benchmark the option. Separately, Ive concluded that I havent a clue how to initialize PL_arena_sizes[], or how to clone it. I grepped on a bunch of other interpreter fields, but couldnt grok a pattern of use. Id very much welcome hints; forex which field has a usage I could imitate, or (gasp) a comment/pod patch describing the hows and whys.