Code Monkey home page Code Monkey logo

Comments (7)

eamonnmcmanus avatar eamonnmcmanus commented on June 24, 2024

Do you by chance have something I could run to reproduce the problem? Your proposed fixes seem reasonable but I would want to be able to test them.

I'm also a little puzzled because I believe we do run a graalified Turbine internally at Google. Perhaps @cushon might have some insights?

from auto.

timothyg-stripe avatar timothyg-stripe commented on June 24, 2024

@eamonnmcmanus Here you go: https://github.com/timothyg-stripe/auto-1783

It's as minimal as I could make it, but it's still rather large as it needs to include numerous Maven jars and rules_graalvm. The README has more details, including an appendix on overriding jars that you could use to test a locally built jar.

from auto.

cushon avatar cushon commented on June 24, 2024

I'm also a little puzzled because I believe we do run a graalified Turbine internally at Google

We include some annotation processors in the internal GraalVM native-image for turbine, but AutoValue isn't included because it doesn't generate API and shouldn't need to run during annotation processing. We also use AutoValue with java_plugin.generates_api disabled.

@timothyg-stripe is your use-case that you have code that deliberately references generated AutoValue_ types in the public API, and so AutoValue needs to run during header compilation?

from auto.

timothyg-stripe avatar timothyg-stripe commented on June 24, 2024

Ah, that makes a lot of sense.

I'm not sure historically why we have AutoValue on generates_api = True. Currently for production builds, we typically have header compilation turned off and rely instead on ijar. The reason why we are interested in compiling Turbine with AutoValue built-in now is that, we have a pipeline to extract the "gensrc jar" from a Bazel build for IDEs, and Graal Turbine can run annotation processors faster than Javac/JavaBuilder (even with multiplex workers enabled).

from auto.

eamonnmcmanus avatar eamonnmcmanus commented on June 24, 2024

Thanks for putting together the repro! I did finally manage to make it work with my own compiled jar, though given my Bazel ignorance it wasn't straightforward. :-)
A fix should be forthcoming, though it probably won't be useful to you until the next release.

from auto.

eamonnmcmanus avatar eamonnmcmanus commented on June 24, 2024

The just-released 1.11.0 includes this change.

from auto.

timothyg-stripe avatar timothyg-stripe commented on June 24, 2024

Thank you for the quick fix!

from auto.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.