Eric Wong <e / 80x24.org> wrote:
> +Cc: Knut Franke (author) and ruby-core
> Investigating

Build fix only in r47966, I'll see what fails when
FIBER_USE_NATIVE==0...

> SHIBATA Hiroshi <hsbt / ruby-lang.org> wrote:
> > osx builds is broken by this or related commits.
> > 
> > https://s3.amazonaws.com/archive.travis-ci.org/jobs/38099176/log.txt
> > https://s3.amazonaws.com/archive.travis-ci.org/jobs/38099174/log.txt
> > 
> > On Thu, Oct 16, 2014 at 7:35 AM,  <normal / ruby-lang.org> wrote:
> > > normal  2014-10-16 07:35:08 +0900 (Thu, 16 Oct 2014)
> > >
> > >   New Revision: 47964
> > >
> > >   http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=47964
> > >
> > >   Log:
> > >     cont.c: Optimize fiber_switch callees
> > >
> > >     Remove some unnecessary VALUE/struct conversions and aggressively inline
> > >     functions used during fiber_switch. Either of these changes alone does
> > >     not yield significant performance increase, but in combination they
> > >     improve performance by ~6%.
> > >
> > >     Arguably, removal of separate VALUE/rb_fiber_t* variables also makes the
> > >     code more readable in a few places.
> > >
> > >     * vm_core.h: declare rb_fiber_t typedef
> > >       (rb_thread_t): fiber and root_fiber become rb_fiber_t * (from VALUE)
> > >     * vm.c (rb_thread_mark): use rb_fiber_mark_self
> > >     * cont.c (rb_fiber_t): prev becomes rb_fiber_t * (from VALUE)
> > >       (cont_mark, cont_free): simplify conditions
> > >       (rb_fiber_mark_self): new function
> > >       (fiber_mark): use rb_fiber_mark_self
> > >       (cont_save_thread, cont_restore_thread): inline
> > >       (cont_restore_thread): simplify
> > >       (fiber_setcontext): simplify conditions
> > >       (rb_cont_call): remove dereference
> > >       (fiber_t_alloc): update for rb_fiber_t->prev type change
> > >       (rb_fiber_start): ditto
> > >       (fiber_current): extract from rb_fiber_current
> > >       (return_fiber): move, simplify type checks
> > >       (rb_fiber_current): use fiber_current
> > >       (fiber_store): simplify type checks
> > >       (fiber_switch): ditto, simplify call to fiber_setcontext,
> > >        use fiber_current
> > >       (rb_fiber_transfer): update for type changes
> > >       (rb_fiber_terminate): move, use fiber_switch
> > >       (rb_fiber_resume): update for type changes
> > >       (rb_fiber_reset_root_local_storage): ditto
> > >       (rb_fiber_yield): use rb_fiber_switch instead of rb_fiber_transfer
> > >       (rb_fiber_m_transfer): ditto
> > >       [ruby-core:65518] [Feature #10341]
> > >
> > >   Modified files:
> > >     trunk/ChangeLog
> > >     trunk/cont.c
> > >     trunk/vm.c
> > >     trunk/vm_core.h
> > 
> > 
> > 
> > -- 
> > SHIBATA Hiroshi hsbt / ruby-lang.org
> > http://www.hsbt.org/