On Thu, Apr 21, 2016 at 3:51 PM, Jared Crean <[email protected]> wrote: > Thanks for the responses. Just out of curiosity, where precisely does the > splat happen?
The issue is calling a non-inlined vararg function has a cost... i.e. if you have `f(args...) = ...` and call `f` with `f(a, b)`, `a` and `b` will be boxed if `f` is not inlined.... In your case, the multi-args `+` is defined as a vararg function. > > Jared Crean > > > On 04/21/2016 03:46 PM, Yichao Yu wrote: >> >> On Thu, Apr 21, 2016 at 3:41 PM, Steven G. Johnson >> <[email protected]> wrote: >>> >>> Even if it fails to inline, it still shouldn't allocate memory. Probably >>> file an issue. >> >> The allocation is caused by splatting. I believe we have an issue for >> this. >> >>> On Thursday, April 21, 2016 at 2:09:42 PM UTC-4, Kristoffer Carlsson >>> wrote: >>>> >>>> Long expressions can fail to inline. Throw in some parenthesis grouping >>>> the expression into smaller parts will work around it. > >
