Well, hkt hasn't been done yet so there's that too :-)

On Monday, March 3, 2014, Daniel Micay <[email protected]> wrote:

> On 03/03/14 07:27 PM, Carter Schonwald wrote:
> > Trust me when I say that monadic bind for simple things like option
> > should always be inlined away.  In any sane language.  This holds just
> > as true in Haskell as in rust.  I have many nontrivial examples of
> > monadic bit fiddling codes in Haskell  that generate the exact same
> > assembly id expect c to generate.
> >
> > That said, not every monad is as simple as andThenOption.  You may not
> > want to inline monadic bind significantly more complex/interesting
> monads.
> >
> > That said, any fault in Inlining things which are  cheap and suitable to
> > inline should be treated as being faults of the optimizer and constitute
> > examples to include In a optimizer performance test suite, rather than
> > an argument against higher order type traits or abstractions.
>
> Static call inlining is reliable and will always occur if the function
> is below the threshold and does not use C-style varargs. It's far from
> guaranteed that indirect calls will be inlined and they often aren't.
> Rust has no unboxed closures without indirect calls... so abstractions
> using closures are often not free of cost.
>
>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to