clj-commons / virgil

Recompile Java code without restarting the REPL
312 stars 21 forks source link

Compiler context isn't quite right #2

Closed arrdem closed 8 years ago

arrdem commented 8 years ago

I'm not sure what's up here, but it's not #1. I'm seeing that when a class changes, it fails to resolve other unchanged classes unless they are first compiled by Virgil. As of right now (https://github.com/ox-lang/ox/commit/455db6c) simply starting a fresh repl and adding a whitespace change to ox.lang.AObj will generate this:

2016-01-05-040437_392x108_scrot

however ox.lang.IMeta is a loaded class in the REPL, so something would seem to be screwy with the classloader or the handling of source paths in that extant depended classes aren't visible during recompilation.

arrdem commented 8 years ago

For the record using clojure 1.7 unforked

ztellman commented 8 years ago

Do your :java-source-paths cover your IMeta class? If you type in IMeta at the REPL, does it resolve it?

arrdem commented 8 years ago

Yes and yes.

ztellman commented 8 years ago

Oh, I didn't realize this was a public repo. I'll poke at it and see what I find.

ztellman commented 8 years ago

I can't reproduce this on latest develop branch. On OS X, java -version yields:

java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
arrdem commented 8 years ago
openjdk version "1.8.0_66"
OpenJDK Runtime Environment (build 1.8.0_66-b17)
OpenJDK 64-Bit Server VM (build 25.66-b17, mixed mode)

This may be a JDK issue. Trying to reproduce again on my end.

arrdem commented 8 years ago

Huh. Working just fine. Computers are bullshit. Thanks for looking!