JDK-8061281 (JEP-230): Push Makefiles, repository layout and small set of benchmarks

Erik Joelsson erik.joelsson at oracle.com
Wed Aug 12 10:15:16 UTC 2015


Hello,

On 2015-08-12 01:34, Staffan Friberg wrote:
> Hi,
>
> Unfortunately we have not yet got the new repositories created in 
> OpenJDK for JEP-230 that was discussed earlier this year [1]. However 
> I wanted to make sure we are ready to push as soon as those 
> repositories are created.
>
> These two webrevs contain updates to the build scripts to add the 
> build-microbenchmark target, and the new repository for the benchmarks.
>
>
> Makefile change
> The configure script now has a new flag that allows you to specifify a 
> directory where JMH is available, --with-jmh=<PATH>. If the build 
> environment has been setup correctly the benchmarks can be built using 
> "make build-microbenchmark". The directory must include the following 
> JARs commons-math3-3.2.jar, jopt-simple-4.6.jar, jmh-core-1.10.2.jar, 
> jmh-generator-annprocess-1.10.2.jar, which is verified by the 
> configure script.
>
>
> webrev: 
> http://cr.openjdk.java.net/~sfriberg/JDK-8061281/webrev.01/webrev_jdk/webrev
>
Only a minor detail in Main.gmk line 288. I would like a  + at the start 
of the line to indicate to make that the command line is running a 
submake. It likely works anyway, but we have this pattern in the rest of 
the file.
>
>
> Benchmarks Repository
> Contains the new repository and the directory structure for 
> microbenchmarks and the specific microbenchmark Makefile. Maven POM 
> files have been added to make it easy to work with the benchmarks in 
> IDEs, but are not used as part of the Makefile build process.
>
> webrev: 
> http://cr.openjdk.java.net/~sfriberg/JDK-8061281/webrev.01/webrev_benchmark/webrev
>
Only style issues which you may or may not change. These style changes 
improves readability and maintainability and we have rather recently 
improved the framework to support them. Examples:

Add a space after comma. This wasn't supported before but is now.
$(eval $(call SetupArchive, BUILD_OLDJDK_JAR, \

On the last named variable, finish with ", \" and put the double 
parentheses on a new line, indented to the same level as the start of 
the expression:
     JAR := $(OLDJDK_JAR), \
))

In addition tot hat, in the rules with touch files I would recommend 
using $(@D) to refer to the directory instead of repeating it several 
times in the recipe to reduce code duplication.

I find this to be an interesting construct:
123         $(foreach jar, $(UNPACK_JARS), \
124             $$($(UNZIP) -oq $(jar) -d $(JMH_UNPACKED)))

I haven't tested, but I think this would work:
123         $(foreach jar, $(UNPACK_JARS), \
124             $(UNZIP) -oq $(jar) -d $(JMH_UNPACKED) $(NEWLINE))

/Erik
>
>
> [1] - 
> http://mail.openjdk.java.net/pipermail/jdk9-dev/2015-January/001889.html
>
> Thanks,
> Staffan



More information about the jdk9-dev mailing list