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

Java 9 module-info.java ruminations #4835

Open
raelik opened this Issue Nov 1, 2017 · 8 comments

Comments

Projects
None yet
2 participants
@raelik

raelik commented Nov 1, 2017

After Java 9 compatibility is made tentatively available in 9.1.14, discussions need to be had on how best to set up jRuby's module-info.java file(s) for the Java Platform Module System now available in Java 9.

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Nov 1, 2017

Member

We will also need to modularize the libraries we package, including but not limited to:

  • All the JNR libraries
  • bytelist/jcoding/joni
  • utility and JVM shim libraries (invokebinder already done)

We also package several third-party libs and will want to see if they've started modularizing.

Member

headius commented Nov 1, 2017

We will also need to modularize the libraries we package, including but not limited to:

  • All the JNR libraries
  • bytelist/jcoding/joni
  • utility and JVM shim libraries (invokebinder already done)

We also package several third-party libs and will want to see if they've started modularizing.

@headius headius added this to the JRuby 9.2.0.0 milestone Nov 1, 2017

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Nov 1, 2017

Member

Tentatively marked for 9.2.

One big wrinkle here is that if we start including module-info in a project, we're going to need Java 9 tooling to build it. That's not a huge leap for some of the libraries, since we control them and are generally the only ones maintaining them, but JRuby itself is built by and for many different systems, some of which may not have Java 9 for a while.

Member

headius commented Nov 1, 2017

Tentatively marked for 9.2.

One big wrinkle here is that if we start including module-info in a project, we're going to need Java 9 tooling to build it. That's not a huge leap for some of the libraries, since we control them and are generally the only ones maintaining them, but JRuby itself is built by and for many different systems, some of which may not have Java 9 for a while.

@raelik

This comment has been minimized.

Show comment
Hide comment
@raelik

raelik Nov 1, 2017

@headius Maybe just a separate build target for a modularized Java 9 deployment that includes the module-info, akin to how there are currently binary, Windows executable, source and complete jar packages of the jRuby release.

raelik commented Nov 1, 2017

@headius Maybe just a separate build target for a modularized Java 9 deployment that includes the module-info, akin to how there are currently binary, Windows executable, source and complete jar packages of the jRuby release.

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Nov 10, 2017

Member

I'm trying to wrap up my day, but perhaps @raelik or someone else observing this issue can research whether there are any ways to build module-info.java without a Java 9 install present. I know we can make this produce a jar that works on Java 7 or 8, as I did in https://github.com/headius/invokedynamic.

Member

headius commented Nov 10, 2017

I'm trying to wrap up my day, but perhaps @raelik or someone else observing this issue can research whether there are any ways to build module-info.java without a Java 9 install present. I know we can make this produce a jar that works on Java 7 or 8, as I did in https://github.com/headius/invokedynamic.

@raelik

This comment has been minimized.

Show comment
Hide comment
@raelik

raelik Nov 13, 2017

@headius as far as I can see, the syntax of the module-info.java file is only understood by Java 9's javac.

raelik commented Nov 13, 2017

@headius as far as I can see, the syntax of the module-info.java file is only understood by Java 9's javac.

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Nov 20, 2017

Member

@raelik Yeah, I'm just wondering if there's a way to pull down OpenJDK 9's javac or an equivalent javac that understand module-info.java without running on 9.

Member

headius commented Nov 20, 2017

@raelik Yeah, I'm just wondering if there's a way to pull down OpenJDK 9's javac or an equivalent javac that understand module-info.java without running on 9.

headius added a commit that referenced this issue Dec 19, 2017

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius May 17, 2018

Member

We will put more focus into module support over the summer in preparation for the Java 11 LTS release.

Member

headius commented May 17, 2018

We will put more focus into module support over the summer in preparation for the Java 11 LTS release.

@headius headius modified the milestones: JRuby 9.2.0.0, JRuby 9.2.1.0 May 17, 2018

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Oct 11, 2018

Member

Some of our deps have been modularized: jcodings, joni. The bytelist library has been rolled back into JRuby proper due to duplicated packages.

The jnr projects still need to be modularized.

I added an automatic module name in 681ab22.

More to come, ideally with full proper modularization in 9.2.2.

Member

headius commented Oct 11, 2018

Some of our deps have been modularized: jcodings, joni. The bytelist library has been rolled back into JRuby proper due to duplicated packages.

The jnr projects still need to be modularized.

I added an automatic module name in 681ab22.

More to come, ideally with full proper modularization in 9.2.2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment