[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Current requirements for Java
From: |
Bruno Haible |
Subject: |
Re: Current requirements for Java |
Date: |
Sun, 14 Oct 2018 22:24:31 +0200 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-137-generic; KDE/5.18.0; x86_64; ; ) |
Hi Akim,
> In Bison we have a Java backend. We use gnulib to handle the
> Java tool chain. In particular, in configure.ac we have
>
> gt_JAVACOMP([1.3], [1.4])
> gt_JAVAEXEC
>
> it worked like a charm for years.
>
> Until macOS Mojave; Yu Yijun reported that we get:
>
> 467. java.at:367: testing Calculator ...
> ./java.at:367: bison -fno-caret -o Calc.java Calc.y
> ./java.at:367: $SHELL ../../../javacomp.sh Calc.java
> stderr:
> warning: [options] bootstrap class path not set in conjunction with -source
> 1.3
> error: Source option 1.3 is no longer supported. Use 1.6 or later.
> error: Target option 1.4 is no longer supported. Use 1.6 or later.
> ...
> I have absolutely no idea what that change implies. What are
> the other project based on gnulib that use this? What is the
> current policy for updating the requirements?
The essential reference is the timeline of Java releases:
https://en.wikipedia.org/wiki/Java_version_history
As you can see, Java specification levels 1.3, 1.4, 1.5 are outdated for
more than 3 years. And level 1.6 will be outdated in December 2018.
So, why not move to
gt_JAVACOMP([1.7], [1.7])
already now?
What this change implies?
1) You must adapt your source code (or bison-generated code) to be compliant
with Java 1.7. In particular, you cannot have variables or methods named
'assert' any more, since this is a keyword since Java 1.4. And a couple
of things like that.
2) You cannot use GCJ as Java implementation any more, since it stayed
at level 1.5 / 1.6 before it was discontinued. (It was dropped in GCC 7.)
3) Users who want to use the compiled .class / .jar files will need Java 7
or newer. But this is not a problem, since the industry has already
moved from Java 6 to Java 7 (mostly).
Gettext moved from
gt_JAVACOMP([1.3], [1.1])
to
gt_JAVACOMP([1.5], [1.6])
recently, as a consequence of this bug report:
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892733>
There is no policy; you update these gt_JAVACOMP invocations as you like.
Bruno