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

crash in console #10

Closed
xeno-by opened this issue Jun 1, 2013 · 8 comments
Closed

crash in console #10

xeno-by opened this issue Jun 1, 2013 · 8 comments

Comments

@xeno-by
Copy link
Contributor

xeno-by commented Jun 1, 2013

scala> import scala.pickling._; import json._
import scala.pickling._
import json._

scala> case class C1(x: Array[Int])
defined class C1

scala> C(Array(1)).pickle
<console>:14: error: not found: value C
              C(Array(1)).pickle
              ^

scala> C1(Array(1)).pickle
res1: scala.pickling.json.JSONPickle =
JSONPickle({
  "tpe": "C1",
  "x": [
    1
  ]
})

scala> res1.unpickle[C1]
scala.reflect.internal.MissingRequirementError: class C1 in JavaMirror with sbt.classpath.ClasspathUtilities$$anon$1@3c9f6e5a of type class sbt.classpath.ClasspathUtilities$$anon$1 with classpath [file:/Users/xeno_by/Projects/scala-pickling-211/core/target/scala-2.11/classes/,file:/Users/xeno_by/.sbt/0.12.2/boot/org.scala-lang.macro-paradise.scala-2.11.0-SNAPSHOT/lib/scala-library.jar,file:/Users/xeno_by/.ivy2/cache/org.scala-lang.macro-paradise/scala-reflect/jars/scala-reflect-2.11.0-SNAPSHOT.jar,file:/Users/xeno_by/.ivy2/cache/org.scala-lang.macro-paradise/scala-library/jars/scala-library-2.11.0-SNAPSHOT.jar,file:/Users/xeno_by/.ivy2/cache/org.scala-lang.macro-paradise/scala-compiler/jars/scala-compiler-2.11.0-SNAPSHOT.jar] and parent being java.net.URLClassLoader@7e5284e9 of type class java.net.URLClassLoader with classpath [file:/Users/xeno_by/.sbt/0.12.2/boot/org.scala-lang.macro-paradise.scala-2.11.0-SNAPSHOT/lib/jansi.jar,file:/Users/xeno_by/.sbt/0.12.2/boot/org.scala-lang.macro-paradise.scala-2.11.0-SNAPSHOT/lib/jline.jar,file:/Users/xeno_by/.sbt/0.12.2/boot/org.scala-lang.macro-paradise.scala-2.11.0-SNAPSHOT/lib/scala-compiler.jar,file:/Users/xeno_by/.sbt/0.12.2/boot/org.scala-lang.macro-paradise.scala-2.11.0-SNAPSHOT/lib/scala-library.jar,file:/Users/xeno_by/.sbt/0.12.2/boot/org.scala-lang.macro-paradise.scala-2.11.0-SNAPSHOT/lib/scala-reflect.jar] and parent being java.net.URLClassLoader@10382a9 of type class java.net.URLClassLoader with classpath [file:/Users/xeno_by/.sbt/0.12.2/boot/other/net.java.dev.jna/jna/3.2.3/jna-3.2.3.jar] and parent being xsbt.boot.BootFilteredLoader@d7725c4 of type class xsbt.boot.BootFilteredLoader with classpath [<unknown>] and parent being sun.misc.Launcher$AppClassLoader@69cd2e5f of type class sun.misc.Launcher$AppClassLoader with classpath [file:/usr/local/sbt/lib/sbt-launch.jar] and parent being sun.misc.Launcher$ExtClassLoader@1d9f953d of type class sun.misc.Launcher$ExtClassLoader with classpath [file:/System/Library/Java/Extensions/AppleScriptEngine.jar,file:/System/Library/Java/Extensions/dns_sd.jar,file:/System/Library/Java/Extensions/j3daudio.jar,file:/System/Library/Java/Extensions/j3dcore.jar,file:/System/Library/Java/Extensions/j3dutils.jar,file:/System/Library/Java/Extensions/jai_codec.jar,file:/System/Library/Java/Extensions/jai_core.jar,file:/System/Library/Java/Extensions/libAppleScriptEngine.jnilib,file:/System/Library/Java/Extensions/libJ3D.jnilib,file:/System/Library/Java/Extensions/libJ3DAudio.jnilib,file:/System/Library/Java/Extensions/libJ3DUtils.jnilib,file:/System/Library/Java/Extensions/libmlib_jai.jnilib,file:/System/Library/Java/Extensions/libQTJNative.jnilib,file:/System/Library/Java/Extensions/mlibwrapper_jai.jar,file:/System/Library/Java/Extensions/MRJToolkit.jar,file:/System/Library/Java/Extensions/QTJava.zip,file:/System/Library/Java/Extensions/vecmath.jar,file:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/apple_provider.jar,file:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/dnsns.jar,file:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/localedata.jar,file:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/sunjce_provider.jar,file:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext/sunpkcs11.jar] and parent being primordial classloader with boot classpath [/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jsfd.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/laf.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/sunrsasign.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jsse.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jce.jar:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/charsets.jar] 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:51)
    at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:64)
    at scala.reflect.internal.Mirrors$RootsBase.staticModuleOrClass(Mirrors.scala:75)
    at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:124)
    at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:22)
    at scala.pickling.package$.typeFromString(package.scala:51)
    at scala.pickling.json.JSONPickleReader$$anonfun$beginEntry$2.apply(JSONPickleFormat.scala:160)
    at scala.pickling.json.JSONPickleReader$$anonfun$beginEntry$2.apply(JSONPickleFormat.scala:154)
    at scala.pickling.PickleTools$class.withHints(Tools.scala:327)
    at scala.pickling.json.JSONPickleReader.withHints(JSONPickleFormat.scala:131)
    at scala.pickling.json.JSONPickleReader.beginEntry(JSONPickleFormat.scala:154)
    at scala.pickling.json.JSONPickleReader.beginEntryNoTag(JSONPickleFormat.scala:153)
@xeno-by
Copy link
Contributor Author

xeno-by commented Jun 1, 2013

!!! That's an unfortunate consequence of

def mirror: reflect.runtime.universe.Mirror =

@phaller
Copy link
Collaborator

phaller commented Jun 1, 2013

Hmm, what could we do about that?

@xeno-by
Copy link
Contributor Author

xeno-by commented Jun 1, 2013

Either allow reassignment of scala.pickling.package.mirror or prohibit sbt :)

@phaller
Copy link
Collaborator

phaller commented Jun 1, 2013

How does reassignment help?

@xeno-by
Copy link
Contributor Author

xeno-by commented Jun 1, 2013

I mean as workarounds. Principled solution would be to introduce an implicit of type Mirror at the top of the generated code block and then replace references to scala.pickling.mirror to `implicitly[Mirror], but we would have to measure the performance of that, which is outside of our timeframe for the demo.

@xeno-by
Copy link
Contributor Author

xeno-by commented Jun 1, 2013

By reassigning we would be able to set the correct mirror from the callsite.

@phaller
Copy link
Collaborator

phaller commented Jun 1, 2013

I see. I guess re-assignment at the callsite is OK for the demo.

@xeno-by
Copy link
Contributor Author

xeno-by commented Jun 2, 2013

b8a9b15

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