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

Scala doesn't work #209

Closed
jvilk opened this issue Apr 18, 2013 · 11 comments
Closed

Scala doesn't work #209

jvilk opened this issue Apr 18, 2013 · 11 comments

Comments

@jvilk
Copy link
Member

jvilk commented Apr 18, 2013

It looks like we are very close to having the Scala repl working; perhaps one native method away:

[ERROR] Failed to construct terminal; falling back to unsupportedjava.lang.IllegalArgumentException: Invalid terminal type: jline.UnsupportedTerminal
Caused by: java.lang.ClassNotFoundException: jline.UnsupportedTerminal

Exception in thread "Thread-3" java.lang.Error: native method NYI: Lsun/misc/Unsafe;::park(ZJ)V
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:227)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:454)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:352)
    at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:604)
    at java.lang.Thread.run(Thread.java:681)
Welcome to Scala version 2.10.1 (Doppio 64-bit VM, Java 1.6).
Type in expressions to have them evaluated.
Type :help for more information.

scala> :help
Exception in thread "main" java.lang.Error: native method NYI: Lsun/misc/Unsafe;::park(ZJ)V
@jvilk
Copy link
Member Author

jvilk commented Apr 18, 2013

Documentation:

Block current thread, returning when a balancing unpark occurs, or a balancing unpark has already occurred, or the thread is interrupted, or, if not absolute and time is not zero, the given time nanoseconds have elapsed, or if absolute, the given deadline in milliseconds since Epoch has passed, or spuriously (i.e., returning for no "reason"). Note: This operation is in the Unsafe class only because unpark is, so it would be strange to place it elsewhere.

public native void park(boolean isAbsolute, long time);

Corresponding unpark documentation:

Unblock the given thread blocked on park, or, if it is not blocked, cause the subsequent call to park not to block. Note: this operation is "unsafe" solely because the caller must somehow ensure that the thread has not been destroyed. Nothing special is usually required to ensure this when called from Java (in which there will ordinarily be a live reference to the thread) but this is not nearly-automatically so when calling from native code.

Parameters:
thread the thread to unpark.

public native void unpark(Object thread);

@perimosocordiae
Copy link
Contributor

How hilariously Java.

@jvilk
Copy link
Member Author

jvilk commented Jun 16, 2013

With Braden's pull request:

$ ~/Code/bradendoppio/doppio/doppio -classpath .:expanded/akka:expanded/jline:expanded/scala-actors:expanded/scala-actors-migration:expanded/scala-compiler:expanded/scala-library:expanded/scala-partest:expanded/scala-reflect:expanded/scala-swing:expanded/scalap:expanded/typesafe-config -Dscala.home=/Users/jvilk/Downloads/scala-2.10.1 -Dscala.usejavacp=true scala/tools/nsc/MainGenericRunner
[ERROR] Failed to construct terminal; falling back to unsupportedjava.lang.IllegalArgumentException: Invalid terminal type: jline.UnsupportedTerminal
Caused by: java.lang.ClassNotFoundException: jline.UnsupportedTerminal

Welcome to Scala version 2.10.1 (Doppio 64-bit VM, Java 1.6).
Type in expressions to have them evaluated.
Type :help for more information.

scala>

It doesn't seem to respond to input properly, and running it with scripts as an argument yields ClassNotFoundException messages.

 ~/Code/bradendoppio/doppio/doppio -classpath .:expanded/akka:expanded/jline:expanded/scala-actors:expanded/scala-actors-migration:expanded/scala-compiler:expanded/scala-library:expanded/scala-partest:expanded/scala-reflect:expanded/scala-swing:expanded/scalap:expanded/typesafe-config -Dscala.home=/Users/jvilk/Downloads/scala-2.10.1 -Dscala.usejavacp=true scala/tools/nsc/MainGenericRunner HelloWorld.sc
Exception in thread "main" java.lang.ClassNotFoundException: HelloWorld.sc

Expected behavior:

$  scala HelloWorld.sc
Hello, world!

So there's still work to be done!

@perimosocordiae
Copy link
Contributor

The JLine error is expected, see ab79a98. Scala should probably handle it better, but that's not really our fault.

@jvilk
Copy link
Member Author

jvilk commented Jun 16, 2013

Yeah, but input doesn't seem to get evaluated at all.

@jvilk
Copy link
Member Author

jvilk commented Sep 11, 2014

The REPL is so close to working!

$ ~/Code/doppio_really_upstream/doppio/doppio -Xbootclasspath/a /Users/jvilk/Downloads/scala-2.11.2/lib/akka-actor_2.11-2.3.4.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/config-1.2.1.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/jline-2.12.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-actors-2.11.0.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-actors-migration_2.11-1.1.0.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-compiler.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-continuations-library_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-continuations-plugin_2.11.2-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-library.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-parser-combinators_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-reflect.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-swing_2.11-1.0.1.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scala-xml_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.2/lib/scalap-2.11.2.jar -classpath "" -Dscala.home=/Users/jvilk/Downloads/scala-2.11.2 -Dscala.usejavacp=true -Denv.emacs= scala.tools.nsc.MainGenericRunner
Welcome to Scala version 2.11.2 (Doppio 64-bit VM, Java 1.6).
Type in expressions to have them evaluated.
Type :help for more information.

scala> :help
Futures timed out after [60 seconds]

Abandoning crashed session.

scala> 1+1
java.util.concurrent.TimeoutException: Futures timed out after [60 seconds]
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:153)
    at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:95)
    at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:95)
    at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
    at scala.concurrent.Await$.ready(package.scala:95)
    at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:431)
    at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:450)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:868)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:854)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:854)
    at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:95)
    at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:854)
    at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:74)
    at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87)
    at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98)
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103)
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)


Abandoning crashed session.

scala> java.lang.AssertionError: assertion failed: unsafe symbol IMain (child of object interpreter) in runtime reflection universe
    at scala.reflect.internal.Symbols$Symbol.<init>(Symbols.scala:183)
    at scala.reflect.internal.Symbols$TypeSymbol.<init>(Symbols.scala:2920)
    at scala.reflect.internal.Symbols$ClassSymbol.<init>(Symbols.scala:3112)
    at scala.reflect.internal.Symbols$StubClassSymbol.<init>(Symbols.scala:3406)
    at scala.reflect.internal.Symbols$Symbol.newStubSymbol(Symbols.scala:497)
    at scala.reflect.internal.pickling.UnPickler$Scan.readExtSymbol$1(UnPickler.scala:247)
    at scala.reflect.internal.pickling.UnPickler$Scan.readSymbol(UnPickler.scala:272)
    at scala.reflect.internal.pickling.UnPickler$Scan.readSymbolRef(UnPickler.scala:625)
    at scala.reflect.internal.pickling.UnPickler$Scan.readType(UnPickler.scala:393)
    at scala.reflect.internal.pickling.UnPickler$Scan$$anonfun$readTypeRef$1.apply(UnPickler.scala:634)
    at scala.reflect.internal.pickling.UnPickler$Scan$$anonfun$readTypeRef$1.apply(UnPickler.scala:634)
    at scala.reflect.internal.pickling.UnPickler$Scan.at(UnPickler.scala:179)
    at scala.reflect.internal.pickling.UnPickler$Scan.readTypeRef(UnPickler.scala:634)
    at scala.reflect.internal.pickling.UnPickler$Scan$$anonfun$readTypes$1$1.apply(UnPickler.scala:363)
    at scala.reflect.internal.pickling.UnPickler$Scan$$anonfun$readTypes$1$1.apply(UnPickler.scala:363)
    at scala.reflect.internal.pickling.PickleBuffer.until(PickleBuffer.scala:154)
    at scala.reflect.internal.pickling.UnPickler$Scan.readTypes$1(UnPickler.scala:363)
    at scala.reflect.internal.pickling.UnPickler$Scan.readType(UnPickler.scala:395)
    at scala.reflect.internal.pickling.UnPickler$Scan$LazyTypeRef$$anonfun$6.apply(UnPickler.scala:701)
    at scala.reflect.internal.pickling.UnPickler$Scan$LazyTypeRef$$anonfun$6.apply(UnPickler.scala:701)
    at scala.reflect.internal.pickling.UnPickler$Scan.at(UnPickler.scala:179)
    at scala.reflect.internal.pickling.UnPickler$Scan$LazyTypeRef.completeInternal(UnPickler.scala:701)
    at scala.reflect.internal.pickling.UnPickler$Scan$LazyTypeRef.complete(UnPickler.scala:725)
    at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1429)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$8.scala$reflect$runtime$SynchronizedSymbols$SynchronizedSymbol$$super$info(SynchronizedSymbols.scala:169)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.Gil$class.gilSynchronized(Gil.scala:19)
    at scala.reflect.runtime.JavaUniverse.gilSynchronized(JavaUniverse.scala:16)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.gilSynchronizedIfNotThreadsafe(SynchronizedSymbols.scala:124)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$8.gilSynchronizedIfNotThreadsafe(SynchronizedSymbols.scala:169)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.info(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$8.info(SynchronizedSymbols.scala:169)
    at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1576)
    at scala.reflect.internal.Symbols$Symbol.annotations(Symbols.scala:1743)
    at scala.reflect.internal.Symbols$Symbol.addAnnotation(Symbols.scala:1762)
    at scala.reflect.internal.pickling.UnPickler$Scan.readSymbolAnnotation(UnPickler.scala:491)
    at scala.reflect.internal.pickling.UnPickler$Scan.run(UnPickler.scala:97)
    at scala.reflect.internal.pickling.UnPickler.unpickle(UnPickler.scala:38)
    at scala.reflect.runtime.JavaMirrors$JavaMirror.unpickleClass(JavaMirrors.scala:615)
    at scala.reflect.runtime.SymbolLoaders$TopClassCompleter$$anonfun$complete$1.apply$mcV$sp(SymbolLoaders.scala:28)
    at scala.reflect.runtime.SymbolLoaders$TopClassCompleter$$anonfun$complete$1.apply(SymbolLoaders.scala:25)
    at scala.reflect.runtime.SymbolLoaders$TopClassCompleter$$anonfun$complete$1.apply(SymbolLoaders.scala:25)
    at scala.reflect.internal.SymbolTable.slowButSafeEnteringPhaseNotLaterThan(SymbolTable.scala:263)
    at scala.reflect.runtime.SymbolLoaders$TopClassCompleter.complete(SymbolLoaders.scala:25)
    at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1429)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$10.scala$reflect$runtime$SynchronizedSymbols$SynchronizedSymbol$$super$info(SynchronizedSymbols.scala:190)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.Gil$class.gilSynchronized(Gil.scala:19)
    at scala.reflect.runtime.JavaUniverse.gilSynchronized(JavaUniverse.scala:16)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.gilSynchronizedIfNotThreadsafe(SynchronizedSymbols.scala:124)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$10.gilSynchronizedIfNotThreadsafe(SynchronizedSymbols.scala:190)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.info(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$10.info(SynchronizedSymbols.scala:190)
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48)
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:66)
    at scala.reflect.internal.Mirrors$RootsBase.staticModuleOrClass(Mirrors.scala:77)
    at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:122)
    at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:22)
    at scala.tools.reflect.StdTags$$anon$2.apply(StdTags.scala:30)
    at scala.reflect.api.TypeTags$WeakTypeTagImpl.tpe$lzycompute(TypeTags.scala:232)
    at scala.reflect.api.TypeTags$WeakTypeTagImpl.tpe(TypeTags.scala:232)
    at scala.reflect.api.TypeTags$class.typeOf(TypeTags.scala:341)
    at scala.reflect.api.Universe.typeOf(Universe.scala:61)
    at scala.tools.nsc.typechecker.TypeStrings$class.typeArguments$1(TypeStrings.scala:206)
    at scala.tools.nsc.typechecker.TypeStrings$class.tparamString(TypeStrings.scala:207)
    at scala.tools.nsc.typechecker.TypeStrings$class.fromTag(TypeStrings.scala:220)
    at scala.tools.nsc.typechecker.TypeStrings$.fromTag(TypeStrings.scala:239)
    at scala.tools.nsc.interpreter.NamedParam$Typed.<init>(NamedParam.scala:27)
    at scala.tools.nsc.interpreter.NamedParamCreator$class.apply(NamedParam.scala:18)
    at scala.tools.nsc.interpreter.ILoop.scala$tools$nsc$interpreter$ILoop$$loopPostInit(ILoop.scala:835)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$1.apply$mcZ$sp(ILoop.scala:862)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$1.apply(ILoop.scala:860)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$1.apply(ILoop.scala:860)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
    at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

@jvilk
Copy link
Member Author

jvilk commented Jan 14, 2015

Using the Java 8 version, we're very close to working. REPL would work if the compiler worked...

$ ~/Code/doppioj8/doppio/doppio -cp /Users/jvilk/Downloads/scala-2.11.4/lib/akka-actor_2.11-2.3.4.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/config-1.2.1.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/jline-2.12.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-actors-2.11.0.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-actors-migration_2.11-1.1.0.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-compiler.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-continuations-library_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-continuations-plugin_2.11.4-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-library.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-parser-combinators_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-reflect.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-swing_2.11-1.0.1.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scala-xml_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.4/lib/scalap-2.11.4.jar:. -Dscala.home=/Users/jvilk/Downloads/scala-2.11.4 -Dscala.usejavacp=true -Denv.emacs= scala.tools.nsc.MainGenericRunner -usejavacp
Welcome to Scala version 2.11.4 (Doppio 64-bit VM, Java 1.8.0_40-internal).
Type in expressions to have them evaluated.
Type :help for more information.

scala> (1 + 1)
java.lang.AssertionError: assertion failed: unsafe symbol IMain (child of object interpreter) in runtime reflection universe
    at scala.reflect.internal.Symbols$Symbol.<init>(Symbols.scala:180)
    at scala.reflect.internal.Symbols$TypeSymbol.<init>(Symbols.scala:2970)
    at scala.reflect.internal.Symbols$ClassSymbol.<init>(Symbols.scala:3162)
    at scala.reflect.internal.Symbols$StubClassSymbol.<init>(Symbols.scala:3456)
    at scala.reflect.internal.Symbols$Symbol.newStubSymbol(Symbols.scala:494)
    at scala.reflect.internal.pickling.UnPickler$Scan.readExtSymbol$1(UnPickler.scala:253)
    at scala.reflect.internal.pickling.UnPickler$Scan.readSymbol(UnPickler.scala:279)
    at scala.reflect.internal.pickling.UnPickler$Scan.readSymbolRef(UnPickler.scala:634)
    at scala.reflect.internal.pickling.UnPickler$Scan.readType(UnPickler.scala:402)
    at scala.reflect.internal.pickling.UnPickler$Scan$$anonfun$readTypeRef$1.apply(UnPickler.scala:643)
    at scala.reflect.internal.pickling.UnPickler$Scan$$anonfun$readTypeRef$1.apply(UnPickler.scala:643)
    at scala.reflect.internal.pickling.UnPickler$Scan.at(UnPickler.scala:179)
    at scala.reflect.internal.pickling.UnPickler$Scan.readTypeRef(UnPickler.scala:643)
    at scala.reflect.internal.pickling.UnPickler$Scan$$anonfun$readTypes$1$1.apply(UnPickler.scala:372)
    at scala.reflect.internal.pickling.UnPickler$Scan$$anonfun$readTypes$1$1.apply(UnPickler.scala:372)
    at scala.reflect.internal.pickling.PickleBuffer.until(PickleBuffer.scala:154)
    at scala.reflect.internal.pickling.UnPickler$Scan.readTypes$1(UnPickler.scala:372)
    at scala.reflect.internal.pickling.UnPickler$Scan.readType(UnPickler.scala:404)
    at scala.reflect.internal.pickling.UnPickler$Scan$LazyTypeRef$$anonfun$6.apply(UnPickler.scala:710)
    at scala.reflect.internal.pickling.UnPickler$Scan$LazyTypeRef$$anonfun$6.apply(UnPickler.scala:710)
    at scala.reflect.internal.pickling.UnPickler$Scan.at(UnPickler.scala:179)
    at scala.reflect.internal.pickling.UnPickler$Scan$LazyTypeRef.completeInternal(UnPickler.scala:710)
    at scala.reflect.internal.pickling.UnPickler$Scan$LazyTypeRef.complete(UnPickler.scala:734)
    at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1481)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$8.scala$reflect$runtime$SynchronizedSymbols$SynchronizedSymbol$$super$info(SynchronizedSymbols.scala:169)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.Gil$class.gilSynchronized(Gil.scala:19)
    at scala.reflect.runtime.JavaUniverse.gilSynchronized(JavaUniverse.scala:16)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.gilSynchronizedIfNotThreadsafe(SynchronizedSymbols.scala:124)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$8.gilSynchronizedIfNotThreadsafe(SynchronizedSymbols.scala:169)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.info(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$8.info(SynchronizedSymbols.scala:169)
    at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1628)
    at scala.reflect.internal.Symbols$Symbol.annotations(Symbols.scala:1795)
    at scala.reflect.internal.Symbols$Symbol.addAnnotation(Symbols.scala:1814)
    at scala.reflect.internal.pickling.UnPickler$Scan.readSymbolAnnotation(UnPickler.scala:500)
    at scala.reflect.internal.pickling.UnPickler$Scan.run(UnPickler.scala:97)
    at scala.reflect.internal.pickling.UnPickler.unpickle(UnPickler.scala:38)
    at scala.reflect.runtime.JavaMirrors$JavaMirror.unpickleClass(JavaMirrors.scala:615)
    at scala.reflect.runtime.SymbolLoaders$TopClassCompleter$$anonfun$complete$1.apply$mcV$sp(SymbolLoaders.scala:28)
    at scala.reflect.runtime.SymbolLoaders$TopClassCompleter$$anonfun$complete$1.apply(SymbolLoaders.scala:25)
    at scala.reflect.runtime.SymbolLoaders$TopClassCompleter$$anonfun$complete$1.apply(SymbolLoaders.scala:25)
    at scala.reflect.internal.SymbolTable.slowButSafeEnteringPhaseNotLaterThan(SymbolTable.scala:263)
    at scala.reflect.runtime.SymbolLoaders$TopClassCompleter.complete(SymbolLoaders.scala:25)
    at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1481)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$10.scala$reflect$runtime$SynchronizedSymbols$SynchronizedSymbol$$super$info(SynchronizedSymbols.scala:190)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anonfun$info$1.apply(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.Gil$class.gilSynchronized(Gil.scala:19)
    at scala.reflect.runtime.JavaUniverse.gilSynchronized(JavaUniverse.scala:16)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.gilSynchronizedIfNotThreadsafe(SynchronizedSymbols.scala:124)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$10.gilSynchronizedIfNotThreadsafe(SynchronizedSymbols.scala:190)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$class.info(SynchronizedSymbols.scala:128)
    at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$10.info(SynchronizedSymbols.scala:190)
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48)
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:66)
    at scala.reflect.internal.Mirrors$RootsBase.staticModuleOrClass(Mirrors.scala:77)
    at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:122)
    at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:22)
    at scala.tools.reflect.StdTags$$anon$2.apply(StdTags.scala:30)
    at scala.reflect.api.TypeTags$WeakTypeTagImpl.tpe$lzycompute(TypeTags.scala:232)
    at scala.reflect.api.TypeTags$WeakTypeTagImpl.tpe(TypeTags.scala:232)
    at scala.reflect.api.TypeTags$class.typeOf(TypeTags.scala:341)
    at scala.reflect.api.Universe.typeOf(Universe.scala:61)
    at scala.tools.nsc.typechecker.TypeStrings$class.typeArguments$1(TypeStrings.scala:206)
    at scala.tools.nsc.typechecker.TypeStrings$class.tparamString(TypeStrings.scala:207)
    at scala.tools.nsc.typechecker.TypeStrings$class.fromTag(TypeStrings.scala:220)
    at scala.tools.nsc.typechecker.TypeStrings$.fromTag(TypeStrings.scala:239)
    at scala.tools.nsc.interpreter.NamedParam$Typed.<init>(NamedParam.scala:27)
    at scala.tools.nsc.interpreter.NamedParamCreator$class.apply(NamedParam.scala:18)
    at scala.tools.nsc.interpreter.ILoop.scala$tools$nsc$interpreter$ILoop$$loopPostInit(ILoop.scala:831)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$1.apply$mcZ$sp(ILoop.scala:858)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$1.apply(ILoop.scala:856)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$1.apply(ILoop.scala:856)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
    at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
scala.ScalaReflectionException: object $line1.$read not found.
    at scala.reflect.internal.Mirrors$RootsBase.staticModule(Mirrors.scala:162)
    at scala.reflect.internal.Mirrors$RootsBase.staticModule(Mirrors.scala:22)
    at scala.tools.nsc.interpreter.IMain.getModuleIfDefined(IMain.scala:167)
    at scala.tools.nsc.interpreter.IMain.readRootPath(IMain.scala:278)
    at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.resolvePathToSymbol(IMain.scala:788)
    at scala.tools.nsc.interpreter.IMain$Request.resultSymbol$lzycompute(IMain.scala:979)
    at scala.tools.nsc.interpreter.IMain$Request.resultSymbol(IMain.scala:979)
    at scala.tools.nsc.interpreter.IMain$Request$$anonfun$typeMap$1.apply(IMain.scala:986)
    at scala.tools.nsc.interpreter.IMain$Request$$anonfun$typeMap$1.apply(IMain.scala:986)
    at scala.reflect.internal.util.Collections$$anonfun$mapFrom$1.apply(Collections.scala:182)
    at scala.reflect.internal.util.Collections$$anonfun$mapFrom$1.apply(Collections.scala:182)
    at scala.collection.immutable.List.map(List.scala:272)
    at scala.reflect.internal.util.Collections$class.mapFrom(Collections.scala:182)
    at scala.reflect.internal.SymbolTable.mapFrom(SymbolTable.scala:16)
    at scala.tools.nsc.interpreter.IMain$Request.typeMap(IMain.scala:986)
    at scala.tools.nsc.interpreter.IMain$Request.typeOf$lzycompute(IMain.scala:991)
    at scala.tools.nsc.interpreter.IMain$Request.typeOf(IMain.scala:991)
    at scala.tools.nsc.interpreter.IMain$Request.compile$lzycompute(IMain.scala:960)
    at scala.tools.nsc.interpreter.IMain$Request.compile(IMain.scala:953)
    at scala.tools.nsc.interpreter.IMain.compile(IMain.scala:550)
    at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:538)
    at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:536)
    at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:750)
    at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:795)
    at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:662)
    at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:407)
    at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:430)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:864)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:850)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:850)
    at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)
    at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:850)
    at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:74)
    at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87)
    at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98)
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103)
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

That entry seems to have slain the compiler.  Shall I replay
your session? I can re-run each line except the last one.
[y/n]

I believe the below issue is caused solely by #159, which separates bootstrap-loaded classes from the application-loaded classes. Normally, all of the Scala JAR files are on the bootstrap classpath, which our command line parser doesn't support (it has weird syntax).

@jvilk
Copy link
Member Author

jvilk commented Sep 13, 2015

Tried the newest version of Scala in the new-objects branch; looks like the futures timeout has been increased:

./doppio -cp /Users/jvilk/Downloads/scala-2.11.7/lib/akka-actor_2.11-2.3.10.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/config-1.2.1.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/jline-2.12.1.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-actors-2.11.0.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-actors-migration_2.11-1.1.0.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-compiler.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-continuations-library_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-continuations-plugin_2.11.7-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-library.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-parser-combinators_2.11-1.0.4.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-reflect.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-swing_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-xml_2.11-1.0.4.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scalap-2.11.7.jar -Dscala.home=/Users/jvilk/Downloads/scala-2.11.7 -Dscala.usejavacp=true -Denv.emacs= scala.tools.nsc.MainGenericRunner
Welcome to Scala version 2.11.7 (Doppio 64-bit VM, Java 1.8.0_66-internal).
Type in expressions to have them evaluated.
Type :help for more information.

scala> (1 + 1)

java.util.concurrent.TimeoutException: Futures timed out after [10 minutes]
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:153)
    at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:169)
    at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:169)
    at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
    at scala.concurrent.Await$.ready(package.scala:169)
    at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:402)
    at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:424)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:925)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:911)
    at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:911)
    at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)
    at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:911)
    at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:74)
    at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87)
    at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98)
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103)
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)


Abandoning crashed session.

Lamesauce.

@jvilk
Copy link
Member Author

jvilk commented Sep 13, 2015

Hmm, it works sometimes?

$ ./doppio -ea -cp /Users/jvilk/Downloads/scala-2.11.7/lib/akka-actor_2.11-2.3.10.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/config-1.2.1.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/jline-2.12.1.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-actors-2.11.0.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-actors-migration_2.11-1.1.0.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-compiler.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-continuations-library_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-continuations-plugin_2.11.7-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-library.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-parser-combinators_2.11-1.0.4.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-reflect.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-swing_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-xml_2.11-1.0.4.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scalap-2.11.7.jar -Dscala.home=/Users/jvilk/Downloads/scala-2.11.7 -Dscala.usejavacp=true -Denv.emacs= scala.tools.nsc.MainGenericRunner
Welcome to Scala version 2.11.7 (Doppio 64-bit VM, Java 1.8.0_66-internal).
Type in expressions to have them evaluated.
Type :help for more information.

scala> (1 + 1)
res0: Int = 2

@jvilk
Copy link
Member Author

jvilk commented Sep 13, 2015

Hmm, now I can't reproduce the earlier failure. Interesting. Well, I guess Scala works (slowly) in new-objects!

$ ./doppio -ea -cp /Users/jvilk/Downloads/scala-2.11.7/lib/akka-actor_2.11-2.3.10.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/config-1.2.1.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/jline-2.12.1.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-actors-2.11.0.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-actors-migration_2.11-1.1.0.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-compiler.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-continuations-library_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-continuations-plugin_2.11.7-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-library.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-parser-combinators_2.11-1.0.4.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-reflect.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-swing_2.11-1.0.2.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scala-xml_2.11-1.0.4.jar:/Users/jvilk/Downloads/scala-2.11.7/lib/scalap-2.11.7.jar -Dscala.home=/Users/jvilk/Downloads/scala-2.11.7 -Dscala.usejavacp=true -Denv.emacs= scala.tools.nsc.MainGenericRunner
Welcome to Scala version 2.11.7 (Doppio 64-bit VM, Java 1.8.0_66-internal).
Type in expressions to have them evaluated.
Type :help for more information.

scala> (1 + 1)
res0: Int = 2

scala> object HelloWorld {
    def main(args: Array[String]) {
      println("Hello, world!")
    }
  }

defined object HelloWorld

scala> HelloWorld.main(null)
Hello, world!

@jvilk
Copy link
Member Author

jvilk commented Dec 13, 2015

Scala currently works (slowly) in the master branch, as indicated above.

@jvilk jvilk closed this as completed Dec 13, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants