From: Eric Wong Date: 2018-12-15T01:12:28+00:00 Subject: [ruby-core:90538] Re: [Ruby trunk Feature#15413] unmarkable C stack (3rd stack) Koichi Sasada wrote: > On 2018/12/15 6:32, normalperson@yhbt.net wrote: > > We should experiment a bump allocator for temporary allocations which > > behaves like the stack, but does not get marked by GC. VALUEs will continue > > to be allocated on normal C stack, but non-VALUE stuff can go to the > > unmarkable machine stack. > > memory space for alloca()? Partially, but non-alloca structs also add up, too. The select()-based auto-fiber had trouble because of select_args and rb_ensure_list_t sizes, so I needed to move some allocations around. rb_ensure_list_t overhead is only for callcc, anyways, so maybe we can also have a lightweight version of rb_ensure when we don't have user code which may call callcc. We use rb_ensure for sleeping in queue/mutex/waitpid/... and other places which never switch stack with callcc. Unsubscribe: