Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Avoid flushing caches when transitioning between --interactive and server-client mode #329

Closed
lihaoyi opened this issue May 16, 2018 · 4 comments
Labels
solved The issue was fixed/resolved
Milestone

Comments

@lihaoyi
Copy link
Member

lihaoyi commented May 16, 2018

Currently every time you switch, we go through a different code path to run Mill, and so caches get flushed and everything needs to be re-compiled. There is no reason for this to be the case so we should just fix it

@lihaoyi
Copy link
Member Author

lihaoyi commented May 20, 2018

This can be seen via:

mill$ mill -i dev.launcher

mill$ cd scratch

scratch$ ../out/dev/launcher/dest/run show thingy
Compiling (synthetic)/ammonite/predef/interpBridge.sc
Compiling (synthetic)/ammonite/predef/DefaultPredef.sc
Compiling /Users/lihaoyi/Dropbox/Github/mill/scratch/build.sc
[1/1] show
[1/1] thingy
1234567

scratch$ ../out/dev/launcher/dest/run -i show thingy
Compiling (synthetic)/ammonite/predef/interpBridge.sc
Compiling (synthetic)/ammonite/predef/DefaultPredef.sc
Compiling /Users/lihaoyi/Dropbox/Github/mill/scratch/build.sc
[1/1] show
[1/1] thingy
1234567

Flushing & re-compiling the build file caches propagate down to flushing & re-compiling all Mill task caches. Ideally we should need to do neither since neither the build files nor the build have changed

@lihaoyi
Copy link
Member Author

lihaoyi commented May 20, 2018

Seems like the following additional files are included in the classpath signature scan as part of --interactive but not in client/server mode:

  (
    Right(/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunec.jar),
    1513734819000L
  ),
  (
    Right(/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/nashorn.jar),
    1513734819000L
  ),
  (
    Right(/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/cldrdata.jar),
    1513734819000L
  ),
  (
    Right(/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jfxrt.jar),
    1513723243000L
  ),
  (
    Right(/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/dnsns.jar),
    1513734819000L
  ),
  (
    Right(
      /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/localedata.jar
    ),
    1513734819000L
  ),
  (
    Right(
      /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar
    ),
    1513734819000L
  ),
  (
    Right(
      /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar
    ),
    1513734819000L
  ),
  (
    Right(/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jaccess.jar),
    1513734819000L
  ),
  (
    Right(/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/zipfs.jar),
    1513734819000L
  ),
  (Right(/System/Library/Java/Extensions/MRJToolkit.jar), 1507352950000L),

This files actually appear in both --interactive and server/client, but somehow appear twice in --interactive mode, causing Ammonite to think the classpath is different and busting caches

@lihaoyi
Copy link
Member Author

lihaoyi commented May 20, 2018

Here's the difference between the classloaders of --interactive and client/server:

--- a/main/src/mill/main/RunScript.scala
+++ b/main/src/mill/main/RunScript.scala
@@ -39,6 +39,24 @@ object RunScript{
         instantiateInterpreter match{
           case Left((res, watched)) => (res, watched)
           case Right(interp) =>
+            val mainThread = Thread.currentThread()
+            val allClassloaders = {
+              val all = mutable.Buffer.empty[ClassLoader]
+              var current = mainThread.getContextClassLoader
+              while(current != null){
+                all.append(current)
+                current = current.getParent
+              }
+              all
+            }
+
+            log.outputStream.println(pprint.apply(allClassloaders, height = 9999))
+            log.outputStream.println(pprint.apply(
+              allClassloaders
+                .collect{case cl: java.net.URLClassLoader => cl -> cl.getURLs.filter(_.getProtocol == "file")},
+                height = 9999
+            ))
+//            log.outputStream.println(pprint.apply(SpecialClassLoader.initialClasspathSignature(mainThread.getContextClassLoader), height = 9999))

Interactive:

lihaoyi scratch$ ../out/dev/launcher/dest/run -i show thingy
Compiling (synthetic)/ammonite/predef/interpBridge.sc
Compiling (synthetic)/ammonite/predef/DefaultPredef.sc
ArrayBuffer(sun.misc.Launcher$AppClassLoader@15db9742, sun.misc.Launcher$ExtClassLoader@7a47f0be)
ArrayBuffer(
  (
    sun.misc.Launcher$AppClassLoader@15db9742,
    Array(
      file:/Users/lihaoyi/Dropbox/Github/mill/dev/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/dev/compile/dest/classes,
      file:/Users/lihaoyi/Dropbox/Github/mill/scalalib/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/scalalib/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/main/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/main/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/core/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/core/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/moduledefs/resources/,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/moduledefs/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/main/client/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/main/client/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/scalajslib/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/scalajslib/compile/dest/classes/,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-core_2.12/7.2.16/scalaz-core_2.12-7.2.16.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/4.5.0/jna-4.5.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/github/scopt/scopt_2.12/3.5.0/scopt_2.12-3.5.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.4/scala-reflect-2.12.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-terminal_2.12/1.1.2/ammonite-terminal_2.12-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ujson_2.12/0.6.6/ujson_2.12-0.6.6.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-ops_2.12/1.1.2/ammonite-ops_2.12-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/scalaparse_2.12/1.0.0/scalaparse_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-concurrent_2.12/7.2.16/scalaz-concurrent_2.12-7.2.16.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.12/0.2.4/fansi_2.12-0.2.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/upickle_2.12/0.6.6/upickle_2.12-0.6.6.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/geny_2.12/0.1.2/geny_2.12-0.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.6.2/jline-terminal-jna-3.6.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.12/0.1.4/sourcecode_2.12-0.1.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.6.2/jline-terminal-3.6.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-cache_2.12/1.0.0/coursier-cache_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scalaj/scalaj-http_2.12/2.3.0/scalaj-http_2.12-2.3.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-sbt/ipcsocket/ipcsocket/1.0.0/ipcsocket-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.4/scala-compiler-2.12.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.4/scala-library-2.12.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse_2.12/1.0.0/fastparse_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/4.5.0/jna-platform-4.5.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-util_2.12/1.1.2/ammonite-util_2.12-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier_2.12/1.0.0/coursier_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite_2.12.4/1.1.2/ammonite_2.12.4-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-repl_2.12.4/1.1.2/ammonite-repl_2.12.4-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.2.5/javaparser-core-3.2.5.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/jline/jline/3.6.2/jline-3.6.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-effect_2.12/7.2.16/scalaz-effect_2.12-7.2.16.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.12/0.5.2/pprint_2.12-0.5.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-runtime_2.12/1.1.2/ammonite-runtime_2.12-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse-utils_2.12/1.0.0/fastparse-utils_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-interp_2.12.4/1.1.2/ammonite-interp_2.12.4-1.1.2.jar
    )
  ),
  (
    sun.misc.Launcher$ExtClassLoader@7a47f0be,
    Array(
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunec.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/nashorn.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/cldrdata.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jfxrt.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/dnsns.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/localedata.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jaccess.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/zipfs.jar,
      file:/System/Library/Java/Extensions/MRJToolkit.jar
    )
  )
)
RunScript.evaluateRootModule
Compiling /Users/lihaoyi/Dropbox/Github/mill/scratch/build.sc
[1/1] show
[1/1] thingy
12345678

client/server:

lihaoyi scratch$ ../out/dev/launcher/dest/run show thingy
Compiling (synthetic)/ammonite/predef/interpBridge.sc
Compiling (synthetic)/ammonite/predef/DefaultPredef.sc
ArrayBuffer(sun.misc.Launcher$AppClassLoader@15db9742, sun.misc.Launcher$ExtClassLoader@3ea909cd)
ArrayBuffer(
  (
    sun.misc.Launcher$AppClassLoader@15db9742,
    Array(
      file:/Users/lihaoyi/Dropbox/Github/mill/dev/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/dev/compile/dest/classes,
      file:/Users/lihaoyi/Dropbox/Github/mill/scalalib/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/scalalib/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/main/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/main/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/core/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/core/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/moduledefs/resources/,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/moduledefs/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/main/client/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/main/client/compile/dest/classes/,
      file:/Users/lihaoyi/Dropbox/Github/mill/scalajslib/resources,
      file:/Users/lihaoyi/Dropbox/Github/mill/out/scalajslib/compile/dest/classes/,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-core_2.12/7.2.16/scalaz-core_2.12-7.2.16.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/4.5.0/jna-4.5.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/github/scopt/scopt_2.12/3.5.0/scopt_2.12-3.5.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.4/scala-reflect-2.12.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-terminal_2.12/1.1.2/ammonite-terminal_2.12-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ujson_2.12/0.6.6/ujson_2.12-0.6.6.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-ops_2.12/1.1.2/ammonite-ops_2.12-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/scalaparse_2.12/1.0.0/scalaparse_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-concurrent_2.12/7.2.16/scalaz-concurrent_2.12-7.2.16.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_2.12/0.2.4/fansi_2.12-0.2.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/upickle_2.12/0.6.6/upickle_2.12-0.6.6.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/geny_2.12/0.1.2/geny_2.12-0.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.6.2/jline-terminal-jna-3.6.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_2.12/0.1.4/sourcecode_2.12-0.1.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.6.2/jline-terminal-3.6.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier-cache_2.12/1.0.0/coursier-cache_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scalaj/scalaj-http_2.12/2.3.0/scalaj-http_2.12-2.3.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-sbt/ipcsocket/ipcsocket/1.0.0/ipcsocket-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.4/scala-compiler-2.12.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.4/scala-library-2.12.4.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse_2.12/1.0.0/fastparse_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/4.5.0/jna-platform-4.5.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-util_2.12/1.1.2/ammonite-util_2.12-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/io/get-coursier/coursier_2.12/1.0.0/coursier_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite_2.12.4/1.1.2/ammonite_2.12.4-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-repl_2.12.4/1.1.2/ammonite-repl_2.12.4-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/github/javaparser/javaparser-core/3.2.5/javaparser-core-3.2.5.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/jline/jline/3.6.2/jline-3.6.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scalaz/scalaz-effect_2.12/7.2.16/scalaz-effect_2.12-7.2.16.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_2.12/0.5.2/pprint_2.12-0.5.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-runtime_2.12/1.1.2/ammonite-runtime_2.12-1.1.2.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/fastparse-utils_2.12/1.0.0/fastparse-utils_2.12-1.0.0.jar,
      file:/Users/lihaoyi/.coursier/cache/v1/https/repo1.maven.org/maven2/com/lihaoyi/ammonite-interp_2.12.4/1.1.2/ammonite-interp_2.12.4-1.1.2.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunec.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/nashorn.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/cldrdata.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jfxrt.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/dnsns.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/localedata.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jaccess.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/zipfs.jar,
      file:/System/Library/Java/Extensions/MRJToolkit.jar
    )
  ),
  (
    sun.misc.Launcher$ExtClassLoader@3ea909cd,
    Array(
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunec.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/nashorn.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/cldrdata.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jfxrt.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/dnsns.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/localedata.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/jaccess.jar,
      file:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/ext/zipfs.jar,
      file:/System/Library/Java/Extensions/MRJToolkit.jar
    )
  )
)
RunScript.evaluateRootModule
Compiling /Users/lihaoyi/Dropbox/Github/mill/scratch/build.sc
[1/1] show
[1/1] thingy
12345678

In the client/server setup, the JDK jars seem to appear twice: once in sun.misc.Launcher$AppClassLoader, and once in sun.misc.Launcher$ExtClassLoader

@lihaoyi
Copy link
Member Author

lihaoyi commented May 20, 2018

Fixed by #342

@lihaoyi lihaoyi closed this as completed May 20, 2018
@lefou lefou added this to the 0.2.1 milestone May 9, 2019
@lefou lefou added the solved The issue was fixed/resolved label Jul 3, 2019
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
solved The issue was fixed/resolved
Projects
None yet
Development

No branches or pull requests

2 participants