ko1 / atdot.net wrote:
> 1. How performance improved?

There is less pointer chasing for iteration:

Before: st_table_entry->rb_thread_t->st_table_entry->rb_thread_t ...
 After: rb_thread->rb_thread ...

This is made possible by the container_of macro.

I plan to use container_of in method/constant/symbol table, too
(ihash in Feature #9614).

> 2. Should we modify ccan/* files? Or should we sync with originals?

I probably best to sync with originals.  I removed parts of
ccan/str/str.h we are not using, but we can use more of str.h later.
I may also put ihash in CCAN so other projects may use it easily.
But I am not sure about the name "ihash".

> 3. What mean the name "CCAN"?

Comprehensive C Archive Network - ccodearchive.net

> 4. Should we use it on compile.c?

Maybe.  I do not know compile.c well enough...
If we can reduce allocations and pointer chasing without regressions,
we should use it.