SASADA Koichi <ko1 / atdot.net> wrote:
> I have no opinion about that, if there are no behavior changes.
> All of operations are , same behavior and same computational complexity?

Same behavior for enabled features.  I was not able to test
OPT_STACK_CACHING since it has been broken for a while and
OPT_INSTRUCTIONS_UNIFICATION seems incomplete.

Computation complexity is shifted:

+ APPEND_ELEM, INSERT_ELEM_NEXT, REPLACE_ELEM, REMOVE_ELEM are now
  branchless

- FIRST_ELEMENT, POP_ELEMENT now have branches

- list_next/list_prev/list_tail also have branches compared to
  link->next/link->prev/anchor->last

- get_*_insn need anchor (list_head) argument to stop at tail

I am slightly leaning in favor of this change.

The main advantage is reduction in LoC and common API so it is easier to
modify in the future.

On the other hand, a stripped ruby executable is already 2.8 MB and load
time just loading ruby without gems takes a few hundred milliseconds on
slow drives.

Also, see [misc #10278]