com-lihaoyi / Ammonite

Scala Scripting
http://ammonite.io
MIT License
2.61k stars 368 forks source link

Ammonite-REPL 0.4.3 startup fails with "MissingRequirementError" on Ubuntu 15.04 linux #148

Closed LeeTibbert closed 9 years ago

LeeTibbert commented 9 years ago

First & most importantly, thank you for Ammonite.

Ammonite 0.3.2 has been working fine on my Ubuntu 15.04 linux machine. The weekend came, so I tried to use the new standalone Ammonite (amm) 0.4.3. When I run it, I get the fatal error:

scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found.

I get the same with sbt when I update the dependencies, clean, & then run test:console.

I believe that I followed the documented instructions correctly. Forgive me if I missed something obvious.

The only funny things about my machine are that I am using Java 8 (OpenJDK Server VM, Java 1.8.0_45-internal) & a custom linux 4.1.4 (BFQ patches). scala 2.11.6 & 2.11.7 give the same results (standalone ammonite probably has its own scala). sbt is 0.13.8. shell: GNU bash, version 4.3.30(1)-release (i686-pc-linux-gnu)

Issue #119 is similar, but that is Windows and is, I believe, fixed as well as it can be.

If you think this is an issue local to my machine, I would appreciate any hints on tracking it down. If you need more traceback and/or environment information, I can supply it.

Thank you,

Lee

lihaoyi commented 9 years ago

Can you provide a full shell session demonstrating this? It seems to work fine for me on my ubuntu 14.04 box:

haoyi-mbp:changes_dev haoyi$ ssh  ubuntu@www.scala-js-fiddle.com
Ubuntu 14.04.2 LTS
Saving password to keychain failed
Identity added: /Users/haoyi/.ssh/id_rsa (/Users/haoyi/.ssh/id_rsa)
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-48-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Wed Aug  5 11:55:54 UTC 2015

  System load:  0.01              Processes:           102
  Usage of /:   18.3% of 7.74GB   Users logged in:     0
  Memory usage: 37%               IP address for eth0: 10.231.193.33
  Swap usage:   0%

  Graph this data and manage this system at:
    https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

105 packages can be updated.
53 updates are security updates.

Last login: Wed Aug  5 11:55:55 2015 from 116.88.55.4
ubuntu@ip-10-231-193-33:~$ ls
amm  log  scala-js-fiddle
ubuntu@ip-10-231-193-33:~$ rm amm
ubuntu@ip-10-231-193-33:~$ rm -rf ~/.ammonite/
ubuntu@ip-10-231-193-33:~$  curl -L -o amm https://git.io/vOdoc; chmod +x amm; ./amm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0   406    0     0   4114      0 --:--:-- --:--:-- --:--:--  4114
100 29.3M  100 29.3M    0     0  50.2M      0 --:--:-- --:--:-- --:--:-- 90.1M
Loading Ammonite Repl...
@ List(Seq(Seq("mgg", "mgg", "lols"), Seq("mgg", "mgg")), Seq(Seq("ggx", "ggx"),Seq("ggx", "ggx", "wt  fx")))
res0: List[Seq[Seq[String]]] = List(
  List(List("mgg", "mgg", "lols"), List("mgg", "mgg")),
  List(List("ggx", "ggx"), List("ggx", "ggx", "wtfx"))
)
@
@ Bye!
ubuntu@ip-10-231-193-33:~$ echo 'libraryDependencies += "com.lihaoyi" % "ammonite-repl" % "0.4.3" % "test" cross CrossVersion.full; initialCommands in (Test, console) := """ammonite.repl.Repl.run("")"""' > build.sbt
ubuntu@ip-10-231-193-33:~$ sbt test:console
Getting org.scala-sbt sbt 0.13.8 ...
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.8/jars/sbt.jar ...
    [SUCCESSFUL ] org.scala-sbt#sbt;0.13.8!sbt.jar (341ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main/0.13.8/jars/main.jar ...
    [SUCCESSFUL ] org.scala-sbt#main;0.13.8!main.jar (590ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.8/jars/compiler-interface-bin.jar ...
    [SUCCESSFUL ] org.scala-sbt#compiler-interface;0.13.8!compiler-interface-bin.jar (353ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.8/jars/compiler-interface-src.jar ...
    [SUCCESSFUL ] org.scala-sbt#compiler-interface;0.13.8!compiler-interface-src.jar (358ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_8_2/0.13.8/jars/compiler-interface-bin.jar ...
    [SUCCESSFUL ] org.scala-sbt#precompiled-2_8_2;0.13.8!compiler-interface-bin.jar (351ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_9_2/0.13.8/jars/compiler-interface-bin.jar ...
    [SUCCESSFUL ] org.scala-sbt#precompiled-2_9_2;0.13.8!compiler-interface-bin.jar (359ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_9_3/0.13.8/jars/compiler-interface-bin.jar ...
    [SUCCESSFUL ] org.scala-sbt#precompiled-2_9_3;0.13.8!compiler-interface-bin.jar (702ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/actions/0.13.8/jars/actions.jar ...
    [SUCCESSFUL ] org.scala-sbt#actions;0.13.8!actions.jar (381ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main-settings/0.13.8/jars/main-settings.jar ...
    [SUCCESSFUL ] org.scala-sbt#main-settings;0.13.8!main-settings.jar (357ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/interface/0.13.8/jars/interface.jar ...
    [SUCCESSFUL ] org.scala-sbt#interface;0.13.8!interface.jar (380ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/io/0.13.8/jars/io.jar ...
    [SUCCESSFUL ] org.scala-sbt#io;0.13.8!io.jar (388ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/ivy/0.13.8/jars/ivy.jar ...
    [SUCCESSFUL ] org.scala-sbt#ivy;0.13.8!ivy.jar (418ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/launcher-interface/0.13.8/jars/launcher-interface.jar ...
    [SUCCESSFUL ] org.scala-sbt#launcher-interface;0.13.8!launcher-interface.jar (293ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/logging/0.13.8/jars/logging.jar ...
    [SUCCESSFUL ] org.scala-sbt#logging;0.13.8!logging.jar (430ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/logic/0.13.8/jars/logic.jar ...
    [SUCCESSFUL ] org.scala-sbt#logic;0.13.8!logic.jar (317ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/process/0.13.8/jars/process.jar ...
    [SUCCESSFUL ] org.scala-sbt#process;0.13.8!process.jar (353ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/run/0.13.8/jars/run.jar ...
    [SUCCESSFUL ] org.scala-sbt#run;0.13.8!run.jar (318ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/command/0.13.8/jars/command.jar ...
    [SUCCESSFUL ] org.scala-sbt#command;0.13.8!command.jar (398ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/classpath/0.13.8/jars/classpath.jar ...
    [SUCCESSFUL ] org.scala-sbt#classpath;0.13.8!classpath.jar (405ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/completion/0.13.8/jars/completion.jar ...
    [SUCCESSFUL ] org.scala-sbt#completion;0.13.8!completion.jar (381ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/api/0.13.8/jars/api.jar ...
    [SUCCESSFUL ] org.scala-sbt#api;0.13.8!api.jar (371ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-integration/0.13.8/jars/compiler-integration.jar ...
    [SUCCESSFUL ] org.scala-sbt#compiler-integration;0.13.8!compiler-integration.jar (482ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-ivy-integration/0.13.8/jars/compiler-ivy-integration.jar ...
    [SUCCESSFUL ] org.scala-sbt#compiler-ivy-integration;0.13.8!compiler-ivy-integration.jar (275ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/relation/0.13.8/jars/relation.jar ...
    [SUCCESSFUL ] org.scala-sbt#relation;0.13.8!relation.jar (266ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/task-system/0.13.8/jars/task-system.jar ...
    [SUCCESSFUL ] org.scala-sbt#task-system;0.13.8!task-system.jar (352ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/tasks/0.13.8/jars/tasks.jar ...
    [SUCCESSFUL ] org.scala-sbt#tasks;0.13.8!tasks.jar (329ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/tracking/0.13.8/jars/tracking.jar ...
    [SUCCESSFUL ] org.scala-sbt#tracking;0.13.8!tracking.jar (300ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/testing/0.13.8/jars/testing.jar ...
    [SUCCESSFUL ] org.scala-sbt#testing;0.13.8!testing.jar (290ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/control/0.13.8/jars/control.jar ...
    [SUCCESSFUL ] org.scala-sbt#control;0.13.8!control.jar (260ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/collections/0.13.8/jars/collections.jar ...
    [SUCCESSFUL ] org.scala-sbt#collections;0.13.8!collections.jar (362ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/incremental-compiler/0.13.8/jars/incremental-compiler.jar ...
    [SUCCESSFUL ] org.scala-sbt#incremental-compiler;0.13.8!incremental-compiler.jar (359ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compile/0.13.8/jars/compile.jar ...
    [SUCCESSFUL ] org.scala-sbt#compile;0.13.8!compile.jar (357ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/persist/0.13.8/jars/persist.jar ...
    [SUCCESSFUL ] org.scala-sbt#persist;0.13.8!persist.jar (425ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/classfile/0.13.8/jars/classfile.jar ...
    [SUCCESSFUL ] org.scala-sbt#classfile;0.13.8!classfile.jar (343ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/cross/0.13.8/jars/cross.jar ...
    [SUCCESSFUL ] org.scala-sbt#cross;0.13.8!cross.jar (261ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/serialization_2.10/0.1.1/jars/serialization_2.10.jar ...
    [SUCCESSFUL ] org.scala-sbt#serialization_2.10;0.1.1!serialization_2.10.jar (406ms)
downloading https://repo1.maven.org/maven2/org/scala-lang/modules/scala-pickling_2.10/0.10.0/scala-pickling_2.10-0.10.0.jar ...
    [SUCCESSFUL ] org.scala-lang.modules#scala-pickling_2.10;0.10.0!scala-pickling_2.10.jar (46ms)
downloading https://repo1.maven.org/maven2/org/scalamacros/quasiquotes_2.10/2.0.1/quasiquotes_2.10-2.0.1.jar ...
    [SUCCESSFUL ] org.scalamacros#quasiquotes_2.10;2.0.1!quasiquotes_2.10.jar (42ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/cache/0.13.8/jars/cache.jar ...
    [SUCCESSFUL ] org.scala-sbt#cache;0.13.8!cache.jar (391ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/test-agent/0.13.8/jars/test-agent.jar ...
    [SUCCESSFUL ] org.scala-sbt#test-agent;0.13.8!test-agent.jar (263ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/apply-macro/0.13.8/jars/apply-macro.jar ...
    [SUCCESSFUL ] org.scala-sbt#apply-macro;0.13.8!apply-macro.jar (327ms)
:: retrieving :: org.scala-sbt#boot-app
    confs: [default]
    52 artifacts copied, 0 already retrieved (17674kB/155ms)
[info] Set current project to ubuntu (in build file:/home/ubuntu/)
[info] Updating {file:/home/ubuntu/}ubuntu...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] downloading https://repo1.maven.org/maven2/com/lihaoyi/ammonite-repl_2.10.4/0.4.3/ammonite-repl_2.10.4-0.4.3.jar ...
[info]  [SUCCESSFUL ] com.lihaoyi#ammonite-repl_2.10.4;0.4.3!ammonite-repl_2.10.4.jar (77ms)
[info] downloading https://repo1.maven.org/maven2/com/lihaoyi/ammonite-terminal_2.10/0.4.3/ammonite-terminal_2.10-0.4.3.jar ...
[info]  [SUCCESSFUL ] com.lihaoyi#ammonite-terminal_2.10;0.4.3!ammonite-terminal_2.10.jar (46ms)
[info] downloading https://repo1.maven.org/maven2/com/lihaoyi/ammonite-ops_2.10/0.4.3/ammonite-ops_2.10-0.4.3.jar ...
[info]  [SUCCESSFUL ] com.lihaoyi#ammonite-ops_2.10;0.4.3!ammonite-ops_2.10.jar (41ms)
[info] downloading https://repo1.maven.org/maven2/org/scalamacros/quasiquotes_2.10/2.0.0/quasiquotes_2.10-2.0.0.jar ...
[info]  [SUCCESSFUL ] org.scalamacros#quasiquotes_2.10;2.0.0!quasiquotes_2.10.jar (35ms)
[info] downloading https://repo1.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar ...
[info]  [SUCCESSFUL ] org.apache.ivy#ivy;2.4.0!ivy.jar (87ms)
[info] downloading https://repo1.maven.org/maven2/com/lihaoyi/scalaparse_2.10/0.2.1/scalaparse_2.10-0.2.1.jar ...
[info]  [SUCCESSFUL ] com.lihaoyi#scalaparse_2.10;0.2.1!scalaparse_2.10.jar (22ms)
[info] downloading https://repo1.maven.org/maven2/com/lihaoyi/upickle_2.10/0.3.5/upickle_2.10-0.3.5.jar ...
[info]  [SUCCESSFUL ] com.lihaoyi#upickle_2.10;0.3.5!upickle_2.10.jar (49ms)
[info] downloading https://repo1.maven.org/maven2/com/lihaoyi/pprint_2.10/0.3.5/pprint_2.10-0.3.5.jar ...
[info]  [SUCCESSFUL ] com.lihaoyi#pprint_2.10;0.3.5!pprint_2.10.jar (35ms)
[info] downloading https://repo1.maven.org/maven2/com/github/scopt/scopt_2.10/3.3.0/scopt_2.10-3.3.0.jar ...
[info]  [SUCCESSFUL ] com.github.scopt#scopt_2.10;3.3.0!scopt_2.10.jar (70ms)
[info] downloading https://repo1.maven.org/maven2/com/lihaoyi/fastparse_2.10/0.2.1/fastparse_2.10-0.2.1.jar ...
[info]  [SUCCESSFUL ] com.lihaoyi#fastparse_2.10;0.2.1!fastparse_2.10.jar (55ms)
[info] downloading https://repo1.maven.org/maven2/com/lihaoyi/fastparse-utils_2.10/0.2.1/fastparse-utils_2.10-0.2.1.jar ...
[info]  [SUCCESSFUL ] com.lihaoyi#fastparse-utils_2.10;0.2.1!fastparse-utils_2.10.jar (32ms)
[info] downloading https://repo1.maven.org/maven2/com/lihaoyi/derive_2.10/0.3.5/derive_2.10-0.3.5.jar ...
[info]  [SUCCESSFUL ] com.lihaoyi#derive_2.10;0.3.5!derive_2.10.jar (35ms)
[info] downloading https://repo1.maven.org/maven2/org/spire-math/jawn-parser_2.10/0.7.0/jawn-parser_2.10-0.7.0.jar ...
[info]  [SUCCESSFUL ] org.spire-math#jawn-parser_2.10;0.7.0!jawn-parser_2.10.jar (11ms)
[info] Done updating.
[info] Starting scala interpreter...
[info]
Loading Ammonite Repl...
@ 1 + 1
res0: Int = 2
@
lihaoyi commented 9 years ago

It might be a 15.04 vs 14.04 problem, but somehow I doubt it.. The distros aren't that different!

LeeTibbert commented 9 years ago

Thank you for the rapid response. Let me get you the information which I can gather before a family Sunday afternoon. I hope It might be useful.

This is from a Ubuntu 15.04 machine running the stock linux kernel. The java version is 1.7 (vs. 1.8 in base note above).

As I discovered at the end of the session, there is no sbt on that machine. I'll copy sbt down later and supply the rest of the requested info.

I appreciate the help.

ssh localhost Welcome to Ubuntu 15.04 (GNU/Linux 3.19.0-25-generic i686)

Last login: Sun Aug 9 10:36:09 2015 from localhost $ mkdir ammonite_debug $ rm -rf ~/.ammonite $ cat ~/.profile [ -z "$PS1" ] && return PS1='\$ ' $ printenv XDG_SESSION_ID=4 TERM=xterm-256color SHELL=/bin/bash XDG_SESSION_COOKIE= SSH_CLIENT=127.0.0.1 SSH_TTY=/dev/pts/4 USER=user1 MAIL=/var/mail/user1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games PWD=/home/user1 LANG=en_US.UTF-8 SHLVL=1 HOME=/home/user1 LOGNAME=user1 SSH_CONNECTION= XDG_RUNTIMEDIR=/run/user/ =/usr/bin/printenv $ javac -version javac 1.7.0_79 $ $ curl -L -o amm https://git.io/vOdoc; chmod +x amm; ./amm % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 402 0 402 0 0 389 0 --:--:-- 0:00:01 --:--:-- 389 100 29.3M 100 29.3M 0 0 1198k 0 0:00:25 0:00:25 --:--:-- 1541k Loading Ammonite Repl... Exception in thread "main" scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found. at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:17) at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:18) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:53) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:66) at scala.reflect.internal.Mirrors$RootsBase.getClassByName(Mirrors.scala:102) at scala.reflect.internal.Mirrors$RootsBase.getRequiredClass(Mirrors.scala:105) at scala.reflect.internal.Definitions$DefinitionsClass.ObjectClass$lzycompute(Definitions.scala:257) at scala.reflect.internal.Definitions$DefinitionsClass.ObjectClass(Definitions.scala:257) at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1394) at scala.tools.nsc.Global$Run.(Global.scala:1215) at ammonite.repl.interp.Compiler$$anon$4.(Compiler.scala:142) at ammonite.repl.interp.Compiler$.apply(Compiler.scala:120) at ammonite.repl.interp.Interpreter.init(Interpreter.scala:225) at ammonite.repl.interp.Interpreter.(Interpreter.scala:265) at ammonite.repl.Repl.(Repl.scala:28) at ammonite.repl.Repl$.repl$1(Repl.scala:138) at ammonite.repl.Repl$.run(Repl.scala:146) at ammonite.repl.Repl$$anonfun$main$1.apply(Repl.scala:130) at ammonite.repl.Repl$$anonfun$main$1.apply(Repl.scala:130) at scala.Option.foreach(Option.scala:257) at ammonite.repl.Repl$.main(Repl.scala:130) at ammonite.repl.Repl.main(Repl.scala) $ mv ~/.ivy2 ~/dot_ivy2 $ echo 'libraryDependencies += "com.lihaoyi" % "ammonite-repl" % "0.4.3" % "test" cross CrossVersion.full; initialCommands in (Test, console) := """ammonite.repl.Repl.run("")"""' > build.sbt $ sbt test:console No command 'sbt' found, did you mean: Command 'srt' from package 'python-pysrt' (universe) Command 'sb' from package 'lrzsz' (universe) Command 'mbt' from package 'mbt' (universe) Command 'rbt' from package 'python-rbtools' (universe) Command 'slt' from package 'slt' (universe) Command 'sbmt' from package 'atfs' (universe) Command 'sb2' from package 'scratchbox2' (universe) Command 'lbt' from package 'lbt' (universe) Command 'sat' from package 'sat-xmpp-core' (universe) sbt: command not found $ logout Connection to localhost closed.

LeeTibbert commented 9 years ago

Here is the log using Paul P.'s sbt script. The plain vanilla build.sbt gives scala 2.10.4.

I suspect the issue is Java 7 & 8. For grins, I may install Java 6 and see what happens.

If it would be useful, I could probably create a stock Ubuntu 14.04.? LXC container or Virtualbox virtual machine and see what happens. At least the light & coffee holder on my machine work ;-) Thank you for your help.

Welcome to Ubuntu 15.04 (GNU/Linux 3.19.0-25-generic i686)

Last login: Sun Aug 9 19:12:46 2015 from localhost $ cd ammonite_debug/ $ ls -l total 4 -rw-rw-r-- 1 lee49 lee49 170 Aug 9 10:46 build.sbt $ cat build.sbt libraryDependencies += "com.lihaoyi" % "ammonite-repl" % "0.4.3" % "test" cross CrossVersion.full; initialCommands in (Test, console) := """ammonite.repl.Repl.run("")""" $ rm -rf ~/.ammonite $ ~/bin/sbt test:console Downloading sbt launcher for 0.13.8: From http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.13.8/sbt-launch.jar To /home/lee49/.sbt/launchers/0.13.8/sbt-launch.jar OpenJDK Client VM warning: TieredCompilation is disabled in this release. Getting org.scala-sbt sbt 0.13.8 ... downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_8_2/0.13.8/jars/compiler-interface-bin.jar ... [SUCCESSFUL ] org.scala-sbt#precompiled-2_8_2;0.13.8!compiler-interface-bin.jar (5043ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_9_2/0.13.8/jars/compiler-interface-bin.jar ... [SUCCESSFUL ] org.scala-sbt#precompiled-2_9_2;0.13.8!compiler-interface-bin.jar (1927ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_9_3/0.13.8/jars/compiler-interface-bin.jar ... [SUCCESSFUL ] org.scala-sbt#precompiled-2_9_3;0.13.8!compiler-interface-bin.jar (1792ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/actions/0.13.8/jars/actions.jar ... [SUCCESSFUL ] org.scala-sbt#actions;0.13.8!actions.jar (1645ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main-settings/0.13.8/jars/main-settings.jar ... [SUCCESSFUL ] org.scala-sbt#main-settings;0.13.8!main-settings.jar (1669ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/interface/0.13.8/jars/interface.jar ... [SUCCESSFUL ] org.scala-sbt#interface;0.13.8!interface.jar (1522ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/io/0.13.8/jars/io.jar ... [SUCCESSFUL ] org.scala-sbt#io;0.13.8!io.jar (1717ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/ivy/0.13.8/jars/ivy.jar ... [SUCCESSFUL ] org.scala-sbt#ivy;0.13.8!ivy.jar (3034ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/launcher-interface/0.13.8/jars/launcher-interface.jar ... [SUCCESSFUL ] org.scala-sbt#launcher-interface;0.13.8!launcher-interface.jar (1350ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/logging/0.13.8/jars/logging.jar ... [SUCCESSFUL ] org.scala-sbt#logging;0.13.8!logging.jar (1403ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/logic/0.13.8/jars/logic.jar ... [SUCCESSFUL ] org.scala-sbt#logic;0.13.8!logic.jar (1503ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/process/0.13.8/jars/process.jar ... [SUCCESSFUL ] org.scala-sbt#process;0.13.8!process.jar (1779ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/run/0.13.8/jars/run.jar ... [SUCCESSFUL ] org.scala-sbt#run;0.13.8!run.jar (1403ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/command/0.13.8/jars/command.jar ... [SUCCESSFUL ] org.scala-sbt#command;0.13.8!command.jar (1679ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/classpath/0.13.8/jars/classpath.jar ... [SUCCESSFUL ] org.scala-sbt#classpath;0.13.8!classpath.jar (1418ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/completion/0.13.8/jars/completion.jar ... [SUCCESSFUL ] org.scala-sbt#completion;0.13.8!completion.jar (1854ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/api/0.13.8/jars/api.jar ... [SUCCESSFUL ] org.scala-sbt#api;0.13.8!api.jar (2283ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-integration/0.13.8/jars/compiler-integration.jar ... [SUCCESSFUL ] org.scala-sbt#compiler-integration;0.13.8!compiler-integration.jar (1322ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-ivy-integration/0.13.8/jars/compiler-ivy-integration.jar ... [SUCCESSFUL ] org.scala-sbt#compiler-ivy-integration;0.13.8!compiler-ivy-integration.jar (1185ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/relation/0.13.8/jars/relation.jar ... [SUCCESSFUL ] org.scala-sbt#relation;0.13.8!relation.jar (1283ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/task-system/0.13.8/jars/task-system.jar ... [SUCCESSFUL ] org.scala-sbt#task-system;0.13.8!task-system.jar (1687ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/tasks/0.13.8/jars/tasks.jar ... [SUCCESSFUL ] org.scala-sbt#tasks;0.13.8!tasks.jar (1592ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/tracking/0.13.8/jars/tracking.jar ... [SUCCESSFUL ] org.scala-sbt#tracking;0.13.8!tracking.jar (1263ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/testing/0.13.8/jars/testing.jar ... [SUCCESSFUL ] org.scala-sbt#testing;0.13.8!testing.jar (1349ms) downloading https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.4/scala-compiler-2.10.4.jar ... [SUCCESSFUL ] org.scala-lang#scala-compiler;2.10.4!scala-compiler.jar (12587ms) downloading https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.4/scala-reflect-2.10.4.jar ... [SUCCESSFUL ] org.scala-lang#scala-reflect;2.10.4!scala-reflect.jar (3432ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/control/0.13.8/jars/control.jar ... [SUCCESSFUL ] org.scala-sbt#control;0.13.8!control.jar (1135ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/collections/0.13.8/jars/collections.jar ... [SUCCESSFUL ] org.scala-sbt#collections;0.13.8!collections.jar (2526ms) downloading https://repo1.maven.org/maven2/jline/jline/2.11/jline-2.11.jar ... [SUCCESSFUL ] jline#jline;2.11!jline.jar (768ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/incremental-compiler/0.13.8/jars/incremental-compiler.jar ... [SUCCESSFUL ] org.scala-sbt#incremental-compiler;0.13.8!incremental-compiler.jar (1729ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compile/0.13.8/jars/compile.jar ... [SUCCESSFUL ] org.scala-sbt#compile;0.13.8!compile.jar (1444ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/persist/0.13.8/jars/persist.jar ... [SUCCESSFUL ] org.scala-sbt#persist;0.13.8!persist.jar (1746ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/classfile/0.13.8/jars/classfile.jar ... [SUCCESSFUL ] org.scala-sbt#classfile;0.13.8!classfile.jar (1485ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbinary/sbinary_2.10/0.4.2/jars/sbinary_2.10.jar ... [SUCCESSFUL ] org.scala-tools.sbinary#sbinary_2.10;0.4.2!sbinary_2.10.jar (1635ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/cross/0.13.8/jars/cross.jar ... [SUCCESSFUL ] org.scala-sbt#cross;0.13.8!cross.jar (1109ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt.ivy/ivy/2.3.0-sbt-fccfbd44c9f64523b61398a0155784dcbaeae28f/jars/ivy.jar ... [SUCCESSFUL ] org.scala-sbt.ivy#ivy;2.3.0-sbt-fccfbd44c9f64523b61398a0155784dcbaeae28f!ivy.jar (3312ms) downloading https://repo1.maven.org/maven2/com/jcraft/jsch/0.1.46/jsch-0.1.46.jar ... [SUCCESSFUL ] com.jcraft#jsch;0.1.46!jsch.jar (1096ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/serialization_2.10/0.1.1/jars/serialization_2.10.jar ... [SUCCESSFUL ] org.scala-sbt#serialization_2.10;0.1.1!serialization_2.10.jar (1872ms) downloading https://repo1.maven.org/maven2/org/scala-lang/modules/scala-pickling_2.10/0.10.0/scala-pickling_2.10-0.10.0.jar ... [SUCCESSFUL ] org.scala-lang.modules#scala-pickling_2.10;0.10.0!scala-pickling_2.10.jar (1186ms) downloading https://repo1.maven.org/maven2/org/json4s/json4s-core_2.10/3.2.10/json4s-core_2.10-3.2.10.jar ... [SUCCESSFUL ] org.json4s#json4s-core_2.10;3.2.10!json4s-core_2.10.jar (1007ms) downloading https://repo1.maven.org/maven2/org/spire-math/jawn-parser_2.10/0.6.0/jawn-parser_2.10-0.6.0.jar ... [SUCCESSFUL ] org.spire-math#jawn-parser_2.10;0.6.0!jawn-parser_2.10.jar (581ms) downloading https://repo1.maven.org/maven2/org/spire-math/json4s-support_2.10/0.6.0/json4s-support_2.10-0.6.0.jar ... [SUCCESSFUL ] org.spire-math#json4s-support_2.10;0.6.0!json4s-support_2.10.jar (390ms) downloading https://repo1.maven.org/maven2/org/scalamacros/quasiquotes_2.10/2.0.1/quasiquotes_2.10-2.0.1.jar ... [SUCCESSFUL ] org.scalamacros#quasiquotes_2.10;2.0.1!quasiquotes_2.10.jar (953ms) downloading https://repo1.maven.org/maven2/org/json4s/json4s-ast_2.10/3.2.10/json4s-ast_2.10-3.2.10.jar ... [SUCCESSFUL ] org.json4s#json4s-ast_2.10;3.2.10!json4s-ast_2.10.jar (461ms) downloading https://repo1.maven.org/maven2/com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.jar ... [SUCCESSFUL ] com.thoughtworks.paranamer#paranamer;2.6!paranamer.jar (589ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/cache/0.13.8/jars/cache.jar ... [SUCCESSFUL ] org.scala-sbt#cache;0.13.8!cache.jar (1775ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/test-agent/0.13.8/jars/test-agent.jar ... [SUCCESSFUL ] org.scala-sbt#test-agent;0.13.8!test-agent.jar (1209ms) downloading https://repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar ... [SUCCESSFUL ] org.scala-sbt#test-interface;1.0!test-interface.jar (529ms) downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/apply-macro/0.13.8/jars/apply-macro.jar ... [SUCCESSFUL ] org.scala-sbt#apply-macro;0.13.8!apply-macro.jar (1616ms) :: retrieving :: org.scala-sbt#boot-app confs: [default] 52 artifacts copied, 0 already retrieved (17674kB/4804ms) Getting Scala 2.10.4 (for sbt)... downloading https://repo1.maven.org/maven2/org/scala-lang/jline/2.10.4/jline-2.10.4.jar ... [SUCCESSFUL ] org.scala-lang#jline;2.10.4!jline.jar (742ms) downloading https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.4/jansi-1.4.jar ... [SUCCESSFUL ] org.fusesource.jansi#jansi;1.4!jansi.jar (1165ms) :: retrieving :: org.scala-sbt#boot-scala confs: [default] 5 artifacts copied, 0 already retrieved (24459kB/4877ms) [info] Set current project to ammonite_debug (in build file:/home/lee49/ammonite_debug/) [info] Updating {file:/home/lee49/ammonite_debug/}ammonite_debug... [info] Resolving org.fusesource.jansi#jansi;1.4 ... [info] downloading https://repo1.maven.org/maven2/com/lihaoyi/ammonite-repl_2.10.4/0.4.3/ammonite-repl_2.10.4-0.4.3.jar ... [info] [SUCCESSFUL ] com.lihaoyi#ammonite-repl_2.10.4;0.4.3!ammonite-repl_2.10.4.jar (941ms) [info] downloading https://repo1.maven.org/maven2/com/lihaoyi/ammonite-terminal_2.10/0.4.3/ammonite-terminal_2.10-0.4.3.jar ... [info] [SUCCESSFUL ] com.lihaoyi#ammonite-terminal_2.10;0.4.3!ammonite-terminal_2.10.jar (449ms) [info] downloading https://repo1.maven.org/maven2/com/lihaoyi/ammonite-ops_2.10/0.4.3/ammonite-ops_2.10-0.4.3.jar ... [info] [SUCCESSFUL ] com.lihaoyi#ammonite-ops_2.10;0.4.3!ammonite-ops_2.10.jar (652ms) [info] downloading https://repo1.maven.org/maven2/org/scalamacros/quasiquotes_2.10/2.0.0/quasiquotes_2.10-2.0.0.jar ... [info] [SUCCESSFUL ] org.scalamacros#quasiquotes_2.10;2.0.0!quasiquotes_2.10.jar (1439ms) [info] downloading https://repo1.maven.org/maven2/jline/jline/2.12/jline-2.12.jar ... [info] [SUCCESSFUL ] jline#jline;2.12!jline.jar (675ms) [info] downloading https://repo1.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar ... [info] [SUCCESSFUL ] org.apache.ivy#ivy;2.4.0!ivy.jar (1809ms) [info] downloading https://repo1.maven.org/maven2/com/lihaoyi/scalaparse_2.10/0.2.1/scalaparse_2.10-0.2.1.jar ... [info] [SUCCESSFUL ] com.lihaoyi#scalaparse_2.10;0.2.1!scalaparse_2.10.jar (705ms) [info] downloading https://repo1.maven.org/maven2/com/lihaoyi/upickle_2.10/0.3.5/upickle_2.10-0.3.5.jar ... [info] [SUCCESSFUL ] com.lihaoyi#upickle_2.10;0.3.5!upickle_2.10.jar (1518ms) [info] downloading https://repo1.maven.org/maven2/com/lihaoyi/pprint_2.10/0.3.5/pprint_2.10-0.3.5.jar ... [info] [SUCCESSFUL ] com.lihaoyi#pprint_2.10;0.3.5!pprint_2.10.jar (597ms) [info] downloading https://repo1.maven.org/maven2/com/github/scopt/scopt_2.10/3.3.0/scopt_2.10-3.3.0.jar ... [info] [SUCCESSFUL ] com.github.scopt#scopt_2.10;3.3.0!scopt_2.10.jar (424ms) [info] downloading https://repo1.maven.org/maven2/com/lihaoyi/fastparse_2.10/0.2.1/fastparse_2.10-0.2.1.jar ... [info] [SUCCESSFUL ] com.lihaoyi#fastparse_2.10;0.2.1!fastparse_2.10.jar (626ms) [info] downloading https://repo1.maven.org/maven2/com/lihaoyi/fastparse-utils_2.10/0.2.1/fastparse-utils_2.10-0.2.1.jar ... [info] [SUCCESSFUL ] com.lihaoyi#fastparse-utils_2.10;0.2.1!fastparse-utils_2.10.jar (332ms) [info] downloading https://repo1.maven.org/maven2/com/lihaoyi/derive_2.10/0.3.5/derive_2.10-0.3.5.jar ... [info] [SUCCESSFUL ] com.lihaoyi#derive_2.10;0.3.5!derive_2.10.jar (547ms) [info] downloading https://repo1.maven.org/maven2/org/spire-math/jawn-parser_2.10/0.7.0/jawn-parser_2.10-0.7.0.jar ... [info] [SUCCESSFUL ] org.spire-math#jawn-parser_2.10;0.7.0!jawn-parser_2.10.jar (870ms) [info] Done updating. [info] Starting scala interpreter... [info] Loading Ammonite Repl... scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found. at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16) at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:40) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:61) at scala.reflect.internal.Mirrors$RootsBase.getPackage(Mirrors.scala:172) at scala.reflect.internal.Mirrors$RootsBase.getRequiredPackage(Mirrors.scala:175) at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackage$lzycompute(Definitions.scala:183) at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackage(Definitions.scala:183) at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackageClass$lzycompute(Definitions.scala:184) at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackageClass(Definitions.scala:184) at scala.reflect.internal.Definitions$DefinitionsClass.AnnotationDefaultAttr$lzycompute(Definitions.scala:1024) at scala.reflect.internal.Definitions$DefinitionsClass.AnnotationDefaultAttr(Definitions.scala:1023) at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreClasses$lzycompute(Definitions.scala:1153) at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreClasses(Definitions.scala:1152) at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode$lzycompute(Definitions.scala:1196) at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode(Definitions.scala:1196) at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1261) at scala.tools.nsc.Global$Run.(Global.scala:1290) at ammonite.repl.interp.Compiler$$anon$4.(Compiler.scala:142) at ammonite.repl.interp.Compiler$.apply(Compiler.scala:120) at ammonite.repl.interp.Interpreter.init(Interpreter.scala:225) at ammonite.repl.interp.Interpreter.(Interpreter.scala:265) at ammonite.repl.Repl.(Repl.scala:28) at ammonite.repl.Repl$.repl$1(Repl.scala:138) at ammonite.repl.Repl$.run(Repl.scala:146) at .(:8) at .() at .(:7) at .() at $print() at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:734) at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:983) at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:573) at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:604) at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:568) at xsbt.ConsoleInterface$$anon$1.createInterpreter(ConsoleInterface.scala:54) at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:839) at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:837) at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:837) at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:837) at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:904) at xsbt.ConsoleInterface.run(ConsoleInterface.scala:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101) at sbt.compiler.AnalyzingCompiler.console(AnalyzingCompiler.scala:76) at sbt.Console.sbt$Console$$console0$1(Console.scala:22) at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(Console.scala:23) at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23) at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23) at sbt.Logger$$anon$4.apply(Logger.scala:85) at sbt.TrapExit$App.run(TrapExit.scala:248) at java.lang.Thread.run(Thread.java:745)

Welcome to Scala version 2.10.4 (OpenJDK Client VM, Java 1.7.0_79). Type in expressions to have them evaluated. Type :help for more information.

scala> [success] Total time: 54 s, completed Aug 9, 2015 7:44:08 PM $

lihaoyi commented 9 years ago

I suspect the issue is Java 7 & 8. For grins, I may install Java 6 and see what happens.

6 won't work, I use a bunch of java.nio stuff =)

If it would be useful, I could probably create a stock Ubuntu 14.04.? LXC container or Virtualbox virtual machine and see what happens.

That would be a useful experiment!

LeeTibbert commented 9 years ago

Running standalone amm in an LXD linux container running Ubuntu Trusty (14.04) gives the same "Object not found in mirror' error. Rats!

root@trusty-ammX1:~# java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1)
OpenJDK Client VM (build 24.79-b02, mixed mode, sharing)

I can try creating a VirtualBox Trusty machine by the light of day. That might give a cleaner environment. Creating such a virtual machine takes quite a while, because everything is emulated on a slow machine.

My current hypotheses are:

or

LeeTibbert commented 9 years ago

I may have made some progress. By making three changes, I have the ammonite mostly working with the project tests (which made debugging/thrashing way easier, thank you!) The ammonite repl starts up and gives the test results:

[info] Tests: 153
[info] Passed: 130
[info] Failed: 23
[error] Failed tests:
[error]     ammonite.repl.ProjectTests
[error]     ammonite.repl.AutocompleteTests
[error]     ammonite.repl.AdvancedTests
[error]     ammonite.repl.ScriptTests
[error] (ops/test:test) sbt.TestsFailedException: Tests unsuccessful

Not a clean pass, but better than before.

The changes fall into two groups: Following the January, 2015 answer at URL: http://stackoverflow.com/questions/27934282/object-scala-in-compiler-mirror-not-found-running-scala-compiler-programatical, I added two lines to Compiler.scala

  trait Probe // DEBUG: added  by Lee Tibbert                                                         
  object Compiler { //  continue with original code

and

 settings.embeddedDefaults[Probe] // DEBUG: added by Lee Tibbert
 val scalac = new nsc.Global(settings, reporter) { g =>  // continue with original code

I feign no hypotheses as to what this magic does....

The second change was to comment out the setting of the classpath to jcp

//          override def classPath = jcp     // Commented out by Lee Tibbert

When I print out the jcp, the last entry appears as ?, which looks suspicious/broken. When I print out the platform.classPath, the last entry appears as . (current directory).

I am operating from guesswork & looks here, rather than knowledge, but the latter (.) looks more appropriate (and allows the compiler object to be found). Commenting out that override allows the apparently well formed platform.classPath to be used, but probably breaks what you were fixing when you put that line in. Whack a mole!

I hope this helps. I am not trying to push the river here. Things that I do not understand give me little peace. I do not mean to propagate my anxiety to others.

I am enjoying learning about ammonite & scalac internals here, thank you.

Lee

LeeTibbert commented 9 years ago

FYI: SBT FAQ gives a brief description of what settings.embeddedDefaults does. It links to a 5 year old original proposal gist by Mark Harrah. Basically, embeddedDefaults manipulates the classpath to be the same(?) as the currently running code. That may or may not be the design intent for Ammonite.... From the proposal (not source)

The proposed approach is for the managed environment to put two resources on the
classpath: 'app.class.path' and 'boot.class.path'. 

I have not tracked down the source code. Neither have I tried putting printfs before & after the use of embeddedDefaults. I think I may try to track down documentation for reflection & VirtualDirectory. Ammonite's use of VirtualDirectory("(memory)", None) for embeddedClasspath is clearly intentional & I would like to understand it someday. Never know when I might need to get an interperter or JSR script engine working.... Learn from the Masters.

PS: I think the 'trait Probe' in my comments above is unnecessary/distracting. I think any class in the 'current' code can be used in the embeddedDefaults call. So here settings.embeddedDefaults[Compiler] would be tighter & more natural, since object Compiler is already in curent code.

jrudolph commented 9 years ago

Same for me on Ubuntu 14.04.

jrudolph commented 9 years ago

Here's a bit more info about the environment:

> java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
jrudolph commented 9 years ago

Though running on an oracle JVM works:

> /usr/lib/jvm/java-7-oracle/bin/java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

> /usr/lib/jvm/java-7-oracle/bin/java -jar amm
Loading...
Welcome to the Ammonite Repl 0.4.4
(Scala version 2.11.7 Java 1.7.0_80)
alexarchambault commented 9 years ago

Are you all getting the error with 0.4.2? A line related to that was changed in 0.4.3 (to my instigation).

homburg commented 9 years ago

I am getting this error as well on Ubuntu 15.04 for ammonite versions 0.4.4 and 0.4.2

jvm:

java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.15.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

It works without errors with the oracle jvm:

java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
lihaoyi commented 9 years ago

If it's borked for people in 0.4.4 it's probably not @alexarchambault's change.

"Works on oracle, not on openJDK" sounds like a good lead. Anyone want to help dive in and debug? =D

alexarchambault commented 9 years ago

I though it was useless put both oraclejdk7 and openjdk7 in one's .travis.yml... Looks like it's not :-)

jrudolph commented 9 years ago

While initializing the compiler shows this error message (which doesn't get shown for some reason):

error while loading , Error accessing /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/libatk-wrapper.so

That's because ammonite discovers and picks up this entry from the Java classpath and provides it to the scala compiler as a jar dependency.

jrudolph commented 9 years ago

PR in #161.

jrudolph commented 9 years ago

Btw. when debugging it helps to provide a more eloquent logger than the default which is defined like this:

var logger: String => Unit = s => ()