> Aha, so as long as something is wrapped we don't see the same kind of
> inlining.

Correct.


> So what would this look like? I can see fx+ above, which uses
> `chicken:fx+` (prefixed, 2-arity) and foldr to accomplish its multi-arg
> case. Is adding `(inline-file)` to the srfi-143.egg enough for this? I
> suspect partly that the foldr and `(fx+ . args)` form in general is
> going to be hard to optimize out, but perhaps a case-lambda is faster?

If we make the operations variadic, the compiler can always
optimize (fx+ ...) into nested calls to dyadic lower-level primitives,
but this applies only to optimizations that the compiler knows about.
For user-defined inlinings, this is currently not possible.

> Thanks for the really informed reply Felix, this was very helpful in
> understanding what's happening with SRFI-143. I can hopefully start
> crafting a patch for this now.

No problem, you are very welcome.


cheers,
felix


Reply via email to