janklab / matlab-bench

Some utilities for exploring Matlab's behavior
MIT License
32 stars 6 forks source link

Missing custom Java class: DummyJavaClass #7

Open apjanke opened 2 years ago

apjanke commented 2 years ago

Looks like we're missing both the source code and JAR file for the Java bits of this benchmark.

>> bench_matlab_nops

Matlab R2019b on MACI64  
Matlab 9.7.0.1737446 (R2019b) Update 9 / Java 1.8.0_202 on MACI64 Mac OS X 10.16 (eilonwy) 
Machine: Apple M1 Max, 10 cores, 64 GB RAM 
nIters = 100000 

Java tests errored: No class net.apjanke.matlab_bench.bench_nops.DummyJavaClass can be located on the Java class path. Skipping.

Operation                        Time (μsec) 

I wonder if that's sitting over in janklab-core somewhere. Or if it's machine-local on my old eilonwy laptop.

apjanke commented 2 years ago

Oh, wait; there's the source code; just no .class or .jar file.

[matlab-bench] $ find . -name 'DummyJavaClass.java'
./Mcode/net/apjanke/matlab_bench/bench_nops/DummyJavaClass.java
[matlab-bench] $ find . -name '*.jar'
./comparo/code/java/target/lib/checker-qual-3.5.0.jar
./comparo/code/java/target/lib/gson-2.8.6.jar
./comparo/code/java/target/lib/failureaccess-1.0.1.jar
./comparo/code/java/target/lib/error_prone_annotations-2.3.4.jar
./comparo/code/java/target/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
./comparo/code/java/target/lib/guava-30.0-jre.jar
./comparo/code/java/target/lib/j2objc-annotations-1.3.jar
./comparo/code/java/target/lib/jsr305-3.0.2.jar
./comparo/code/java/target/java-0.1-SNAPSHOT.jar
[matlab-bench] $ find . -name '*.class'
./comparo/code/java/target/classes/buh/SomeSubclass2.class
./comparo/code/java/target/classes/buh/BenchyPoo.class
./comparo/code/java/target/classes/buh/SomeClass.class
./comparo/code/java/target/classes/buh/BenchReport.class
./comparo/code/java/target/classes/buh/SomeSubclass3.class
./comparo/code/java/target/classes/buh/SomeSubclass1.class
./comparo/code/java/target/classes/buh/BenchyException.class
./comparo/code/java/target/classes/buh/BenchReportMeta.class
./comparo/code/java/target/classes/buh/BenchWriteResults.class
./comparo/code/java/target/classes/buh/BenchResults.class
[matlab-bench] $

Oh, and look at this in .gitignore:

# Compiled class file
*.class

Here's where bench_matlab_nops.m pulls it in:

myJavaClassDir = fileparts(mfilename('fullpath'));
[...]

% Prep

% HACK: Get our Java classes on the path
% Be sloppy and skip the try/catch or onCleanup() just in case that affects
% our timings
javaaddpath(myJavaClassDir);

So the .class file probably never got committed.

That dir layout is kinda gross, too. Change that.

apjanke commented 2 years ago

Got a start on this in https://github.com/janklab/matlab-bench/commit/c158dd703447c204b13b9c0528de5bd22467bf92 but it's not working yet. Maybe something having to do with the target Java version I'm compiling to.