> Actually what's been happening is the exact opposite, all of our testing
for M1 is being done on the inlined variant and not on the inline one.

I meant to say "not on the non-inlined one"

On Wed, 31 Jan 2024, 09:17 Matthew de Detrich, <matthew.dedetr...@aiven.io>
wrote:

>
>
> On Tue, 30 Jan 2024, 23:14 PJ Fanning, <fannin...@apache.org> wrote:
>
>> I would favour disabling the inlining until at least after the 1.1.0-M1
>> release.
>>
>> Things are moving to the stage where we don't want to enable inlining
>> except in CI builds. Our releases are not done using CI. The releases
>> are not going to be automated for a while due the need for us to use
>> developer keys and the fact that we can't put those in a CI env. If
>> our releases can't have inlining, I don't see why our CI builds,
>> including the publishing of our snapshot jars, should have inlining.
>>
>
> Actually what's been happening is the exact opposite, all of our testing
> for M1 is being done on the inlined variant and not on the inline one. I am
> also running both pekko and pekko-http nightly snapshots in some systems
> and haven't noticed any regression. So suddenly releasing with a non
> inlined M1 is a drastic change.
>
> If you referring to the Scala 3 inline keyword that's an entirely
> different topic/problem.
>
> So changing it now is actually the more drastic option and the main reason
> for adding the inliner in published snapshots earlier was so extensive
> testing could be done on it. The last thing I want to do is to just enabled
> inliner last minute when release is occurring.
>
> I don't have an issue in reverting the change, I am saying let's do it
> when it's clear there is an obvious issue. The issue that Johannes pointed
> out with local dev is a clear one that I agree with and I have already been
> doing this change in other projects.
>
>
>> At the end of the day, I think we should wait until we can automate
>> the releases until we consider adding back inlining.
>>
>> On Tue, 30 Jan 2024 at 11:27, Johannes Rudolph
>> <johannes.rudo...@gmail.com> wrote:
>> >
>> > On Tue, Jan 30, 2024 at 8:30 AM Matthew de Detrich
>> > <matthew.dedetr...@aiven.io.invalid> wrote:
>> > >
>> > > > It will only do that in some select few cases.
>> > >
>> > > Agreed, I phrased the original statement incorrectly. I was meant to
>> say
>> > > that
>> > > it's not going to pointlessly inline code, i.e. it will only inline
>> code
>> > > that is known
>> > > to be not inlinable by earlier JDK's.
>> >
>> > This is also not how it works. It has some heuristics about when it
>> > thinks inlining might at least not hurt and is safe to do, but this is
>> > pretty much not connected theoretically to any existing JDK
>> > implementation.
>> >
>> > You have seen the diff. 90% of all the optimizer improvements is
>> > trivial pruning of useless basic blocks and trying to remove redundant
>> > STORE/LOAD pairs. Then there's a tiny bit of extra inlining which only
>> > works for trivial methods (like the onPull from above). There seem to
>> > be few places where it works for the intended purpose of optimizing
>> > HOF for collection usage (sometimes the HOF is inlined but not the
>> > closure). In other cases where HOF are inlined, these trivial cases
>> > lead to massive code blow-up which will rather have a negative impact
>> > on JIT code parsing with the result of the exact same code being
>> > generated (because these cases are so trivial). In almost every case
>> > the inliner makes trivial changes that would better be done by the
>> > JIT.
>> >
>> > It's far from clear whether enabling the inliner will create overall
>> > better code or if it will even put a hit on JIT compilation because of
>> > the increased code size. It's definitely not a free guaranteed win.
>> >
>> > > > See https://github.com/apache/incubator-pekko-http/pull/456 for an
>> > > example of the correctness issue.
>> > > Afaik none of the many projects enable the inliner for development.
>> > >
>> > > By correctness I was referring to the inliner producing incorrect
>> code on a
>> > > clean
>> > > compile.
>> >
>> > I guess our major disagreement is about priorities. I highly
>> > prioritize my time as a (for this project mostly unpaid) developer. A
>> > 2x-3x hit on compilation times is huge in such a big project that
>> > often accidentally triggers major recompilation.
>> >
>> > If you think about it in general, it's far more important for this
>> > project to remove hurdles for potential contributors than to squeeze
>> > out the last bits of performance (which is unclear anyway).
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: dev-unsubscr...@pekko.apache.org
>> > For additional commands, e-mail: dev-h...@pekko.apache.org
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@pekko.apache.org
>> For additional commands, e-mail: dev-h...@pekko.apache.org
>>
>>

Reply via email to