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

Pure Java implementation #92

Closed
koppor opened this issue Jan 4, 2021 · 8 comments
Closed

Pure Java implementation #92

koppor opened this issue Jan 4, 2021 · 8 comments

Comments

@koppor
Copy link

koppor commented Jan 4, 2021

The current version is implemented by using GraalVM and an existing JavaScript implementation. This causes troubles with other JVMs, such as the Eclipse OpenJ9 VM: eclipse-openj9/openj9#11555.

This issue tries to make the desire of a pure Java implementation explicit. Maybe, it helps to shape a project tackling this wish.

Side note: There are transpilers from Java to JavaScript available (e.g., jsweet or j2cl), however, there is no JavaScript to Java transpiler (cf. https://awesomeopensource.com/projects/transpiler).

Also refs JabRef/jabref#5622 (comment).

@michel-kraemer
Copy link
Owner

@koppor The pure Java version already exists. It's called "experimental" mode and is available in the latest snapshot. As far as I know we've already integrated this snapshot in JabRef and enabled experimental mode, haven't we? If yes, and if the results look OK, I can of course release a final version of it if you wish.

@koppor
Copy link
Author

koppor commented Jan 4, 2021

I totally forgot about the status. Yes, we integrated it and had no complains.

I digged into the dependencies. The tree shows as follows. org.graalvm should be obsolete now, shouldn't it? Does it require a separte branch to remove that (e.g.,

ext.graalVMVersion = "19.2.1"
) or should we do it with gradle dependency management magic? I would prefer to remove the whole depedency in the current implementation to have a clean state. Maybe, a call for releasing a 3.0 version, even though it's "only" an internal dependency change?

+--- de.undercouch:citeproc-java:2.1.0-SNAPSHOT
|    +--- org.apache.commons:commons-lang3:3.9
|    +--- org.apache.commons:commons-text:1.8
|    |    \--- org.apache.commons:commons-lang3:3.9
|    +--- org.jbibtex:jbibtex:1.0.17
|    +--- org.antlr:antlr4-runtime:4.7.2 -> 4.9
|    +--- org.graalvm.sdk:graal-sdk:19.2.1
|    \--- org.graalvm.js:js:19.2.1
|         +--- org.graalvm.regex:regex:19.2.1
|         |    \--- org.graalvm.truffle:truffle-api:19.2.1
|         |         \--- org.graalvm.sdk:graal-sdk:19.2.1
|         +--- org.graalvm.truffle:truffle-api:19.2.1 (*)
|         +--- org.graalvm.sdk:graal-sdk:19.2.1
|         +--- org.ow2.asm:asm:6.2.1
|         +--- org.ow2.asm:asm-tree:6.2.1
|         |    \--- org.ow2.asm:asm:6.2.1
|         +--- org.ow2.asm:asm-analysis:6.2.1
|         |    \--- org.ow2.asm:asm-tree:6.2.1 (*)
|         +--- org.ow2.asm:asm-commons:6.2.1
|         |    +--- org.ow2.asm:asm:6.2.1
|         |    +--- org.ow2.asm:asm-tree:6.2.1 (*)
|         |    \--- org.ow2.asm:asm-analysis:6.2.1 (*)
|         +--- org.ow2.asm:asm-util:6.2.1
|         |    +--- org.ow2.asm:asm:6.2.1
|         |    +--- org.ow2.asm:asm-tree:6.2.1 (*)
|         |    \--- org.ow2.asm:asm-analysis:6.2.1 (*)
|         \--- com.ibm.icu:icu4j:62.1

@michel-kraemer
Copy link
Owner

michel-kraemer commented Jan 4, 2021

My proposal would be to release both 2.1.0 (still with GraalVM for people who still want to use it) and 3.0 (with the pure Java experimental mode promoted to the default and GraalVM removed). If you like I can try to release the new version as soon as possible (maybe some time next week).

@koppor
Copy link
Author

koppor commented Jan 4, 2021

I would be very happy if you could release a 3.0.0-SNAPSHOT. This would really simplify our build. And probably also unblock JabRef/jabref#7126 (comment) (caused by too many dependencies in our module)

@michel-kraemer
Copy link
Owner

I just published a first 3.0.0-SNAPSHOT without GraalVM dependencies:
https://oss.sonatype.org/content/groups/public/de/undercouch/citeproc-java/3.0.0-SNAPSHOT/

Please test and let me know if there are any problems.

@koppor
Copy link
Author

koppor commented Jan 21, 2021

It's in JabRefs main branch now. In case we experience issues, we will report back. Thank you for the quick action taken! 🎉

@koppor koppor closed this as completed Jan 21, 2021
@koppor
Copy link
Author

koppor commented Mar 11, 2021

@michel-kraemer Would it be possible to create a 3.0.0-alpha release or similar? Since the constructor changed in the SNAPSHOT release (which is OK for a snapshot), there were build issues at JabRef. See the discussions at JabRef/jabref#7514. I think, it might be too early for a 3.0.0 release, but maybe a tagged release could be possible? This would help us to get a reproducible build.

@michel-kraemer
Copy link
Owner

@koppor Sure, no problem. I've just released version 3.0.0-alpha.1

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

No branches or pull requests

2 participants