add INLINEABLE to maybe, either, bool

wren at freegeek.org wren at freegeek.org
Tue Sep 17 04:15:15 CEST 2013


On 9/16/13 4:59 PM, Dan Burton wrote:
> I'm wary of "let's not mark it as INLINE because we want the compiler 
> to
> automagically inline it for us." This seems like saying we should not 
> have
> type signatures, because we want the type inferencer to figure it out 
> for
> us. (If you want to test the auto-inliner's wisdom, then just add a 
> setting
> that ignores INLINE pragmas and see if it inlines the same thing that
> humans do?)
>
> I don't really care how it's accomplished, but I do think that we 
> should
> make sure that maybe, either, and bool are inlined, and the most 
> obvious
> way to accomplish this is to directly mark them INLINE, is it not?

I almost wonder if there should be a SHOULD_INLINE pragma which does 
not actually change program behavior, but rather will emit warnings if 
the marked function does not end up in the interface file. (N.B., this 
is distinct from ensuring that we inline it at any particular 
call-site.)

The inliner is fairly robust at this point, but SHOULD_INLINE would 
also help catch regressions; I'm mainly thinking of base and core 
libraries here, rather than general libraries. Though, for general 
libraries, having the pragma could help folks learn what the inliner 
deems to be "small enough". I think it's clear *what* the inliner does; 
but it's not always clear *when* it will decide to do its magic.

-- 
Live well,
~wren



More information about the Libraries mailing list