Skip to content
New issue

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

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

Already on GitHub? Sign in 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
solved The issue was fixed/resolved
Projects
None yet
Development

No branches or pull requests

2 participants