Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

disable inlining for now as it is not save nor efficient in development usage #456

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

jrudolph
Copy link
Contributor

As the official documentation prominently states, the inliner is unsafe to use with incremental compilation (see sbt/zinc#537). This leads to hard to diagnose issues during development.

It also massively inflates compile times (e.g. 16s -> 44s for http-core) making development much more painful than necessary.

Real world demonstration of correctness issues:

  • Add private def doPull2(): ResponseOutput = MessageEnd below onPull in HttpResponseParser.scala
  • clean and compile
  • Run tests in HttpsProxyGraphStageSpec
  • change onPull in HttpResponseParser to call doPull2 instead of doPull (now doing incremental compilation)
  • Run tests in HttpsProxyGraphStageSpec, despite the broken implementation the test still completes fine

…t usage

As the official documentation prominently states, the inliner is unsafe
to use with incremental compilation. This leads to hard to diagnose issues
during development.

It also massively inflates compile times (e.g. 16s -> 44s for http-core) making
development a massive pain.
@mdedetrich
Copy link
Contributor

mdedetrich commented Jan 29, 2024

Note that there is pjfanning/sbt-pekko-build#9 which means it can be setup so the inliner only happens in CI (which is always clean environment) and not on local dev.

RIght now there is a knob but defaulting to turning off locally appears to be optimal for now

@He-Pin
Copy link
Member

He-Pin commented Jan 31, 2024

@mdedetrich Can you attach a framegraph to compare the difference? eg, using the https://github.com/LesnyRumcajs/grpc_bench as a demo.

@mdedetrich
Copy link
Contributor

@mdedetrich Can you attach a framegraph to compare the difference? eg, using the https://github.com/LesnyRumcajs/grpc_bench as a demo.

I can't do this now because I don't have an appropriate machine to do this on (I am still overseas). If you have a desktop machine with locked + lower clocks and you are motivated yourself then feel free to go ahead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants