Git Product home page Git Product logo

Comments (14)

lemire avatar lemire commented on May 23, 2024 2

@novoj Thanks.

I must say that I really like PR #657 by @stiemannkj1

It seems to solve a bunch of problems for us. Neat.

from roaringbitmap.

lemire avatar lemire commented on May 23, 2024 2

@matteo-catena Please see https://github.com/RoaringBitmap/RoaringBitmap/releases/tag/1.0.0

from roaringbitmap.

novoj avatar novoj commented on May 23, 2024 1

I've made a pull request: #656

I'm afraid you'll reject the PR, because I had to get rid of the shims module and upgrade the base java from 8 to 11 to get the module-info.java to work. There may be a way to make this work, but it's beyond my ability to tame the Java module system.

On the other hand - Java 11 is more than 1 year EOL: https://endoflife.date/java ... isn't it a good time to drop its support in RoaringBitmaps? ;)

from roaringbitmap.

stiemannkj1 avatar stiemannkj1 commented on May 23, 2024 1

Added a PR here which adds module-info.java without dropping Java 8 support: #657

from roaringbitmap.

lemire avatar lemire commented on May 23, 2024

Pull request invited.

from roaringbitmap.

novoj avatar novoj commented on May 23, 2024

On the other hand, 33% are still running Java 8 :/ ... according to this presentation: https://docs.google.com/presentation/d/1oMDMQrTiHNkkyL9PnE9A-jLcJBD-ljNwg_JhzvjdzzA/edit#slide=id.g27e04a1c42f_0_0

The figures were taken from: https://newrelic.com/resources/report/2023-state-of-the-java-ecosystem#most-used-java-versions

I'm shooting myself in my own foot, but it's fair to talk about objective numbers.

from roaringbitmap.

lemire avatar lemire commented on May 23, 2024

@richardstartin Can you comment? What do you think?

Speaking for myself, I am ok with dropping JDK8 support going forward.

from roaringbitmap.

lemire avatar lemire commented on May 23, 2024

This tweet suggests modules are not actually beneficial or used in production:
https://twitter.com/nevgeniev/status/1704686184302063746?s=46&t=-zo9kVFDyKuN4X1cdtkIrw

from roaringbitmap.

lemire avatar lemire commented on May 23, 2024

I am also getting a lot of feedback against dropping JDK8.

So I think we will need to keep JDK 8 support.

If modules break JDK 8 support, maybe the problem is with modules themselves?

from roaringbitmap.

novoj avatar novoj commented on May 23, 2024

It wouldn't be such a problem not to have modular support in RoaringBitmaps, since the Java module systems can work around this using "automatic modules" (see https://dev.java/learn/modules/automatic-module/). The problem is with the shim JAR, which is a separate JAR but uses the same package as the RoaringBitmap JAR. In the Java 9 module system, JARs have to declare different packages in order to be able to export to other modules (or at least that's what I ended up with). So if another library is modularised, RoaringBitmaps can't be used easily and I had to merge RoaringBitmap and shims libraries using the "shade" plugin (see attached pom.xml):

pom.zip

So I'd at least suggest:

a) dropping shims module and integrate it directly into RoaringBitmaps module
b) moving ArraysShim from org.roaringbitmap package to separate one - fe. org.roaringbitmap.shims

Both proposals would allot to use RoaringBitmaps from modularised projects as automatic modules.

from roaringbitmap.

novoj avatar novoj commented on May 23, 2024

Added a PR here which adds module-info.java without dropping Java 8 support: #657

@stiemannkj1 Will it work? If you exclude module-info.java from the build, will it be present and compiled in the target JAR? I have attached a screenshot of what the internal structure of the modularised JAR looks like:

image

I have pulled your PR, build it and the module-java.class is missing in the output artifact (if I see correctly).

from roaringbitmap.

lemire avatar lemire commented on May 23, 2024

@novoj

will it be present and compiled in the target JAR?

It appears to be, when I build it. Have you checked inside the jar produced by the pull request, or are your concerns theoretical?

from roaringbitmap.

novoj avatar novoj commented on May 23, 2024

I tried it, but in wrong branch. I confirm that in branch ticket-651-add-java-modules-support the module-java.class is present. Sorry for confusion.

from roaringbitmap.

matteo-catena avatar matteo-catena commented on May 23, 2024

@matteo-catena Please see https://github.com/RoaringBitmap/RoaringBitmap/releases/tag/1.0.0

Thanks, we'll check this out soon!

from roaringbitmap.

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.