diff --git a/repl/src/main/scala/spark/repl/SparkILoop.scala b/repl/src/main/scala/spark/repl/SparkILoop.scala index bfbc66ebdd5a86f7932984cd07107f7689948368..aec398b96580bbbc99c1f96d2daddde43f63ba49 100644 --- a/repl/src/main/scala/spark/repl/SparkILoop.scala +++ b/repl/src/main/scala/spark/repl/SparkILoop.scala @@ -842,6 +842,9 @@ class SparkILoop(in0: Option[BufferedReader], val out: PrintWriter, val master: } def process(settings: Settings): Boolean = { + printWelcome() + echo("Initializing interpreter...") + this.settings = settings createInterpreter() @@ -856,7 +859,6 @@ class SparkILoop(in0: Option[BufferedReader], val out: PrintWriter, val master: if (intp.reporter.hasErrors) return false - printWelcome() try { // this is about the illusion of snappiness. We call initialize() // which spins off a separate thread, then print the prompt and try diff --git a/repl/src/main/scala/spark/repl/SparkIMain.scala b/repl/src/main/scala/spark/repl/SparkIMain.scala index 49d0a2703034513aae93d23b16d1a6ef2de884dd..14e6eb34551b840811eb0a9b9a6adf16ca9aee89 100644 --- a/repl/src/main/scala/spark/repl/SparkIMain.scala +++ b/repl/src/main/scala/spark/repl/SparkIMain.scala @@ -29,6 +29,7 @@ import SparkIMain._ import spark.HttpServer import spark.Utils +import spark.SparkEnv /** An interpreter for Scala code. * @@ -879,7 +880,15 @@ class SparkIMain(val settings: Settings, protected val out: PrintWriter) extends } try { - val execution = lineManager.set(originalLine)(lineRep call "$export") + val execution = lineManager.set(originalLine) { + // MATEI: set the right SparkEnv for our SparkContext, because + // this execution will happen in a separate thread + val sc = spark.repl.Main.interp.sparkContext + if (sc != null && sc.env != null) + SparkEnv.set(sc.env) + // Execute the line + lineRep call "$export" + } execution.await() execution.state match { diff --git a/repl/src/main/scala/spark/repl/SparkImports.scala b/repl/src/main/scala/spark/repl/SparkImports.scala index bd28395f2ed7e910102340ee32812706f6bea5b3..6ccd3cf1f0c3b14bb7f595825768c1efa1688abd 100644 --- a/repl/src/main/scala/spark/repl/SparkImports.scala +++ b/repl/src/main/scala/spark/repl/SparkImports.scala @@ -144,8 +144,8 @@ trait SparkImports { // add code for a new object to hold some imports def addWrapper() { val impname = nme.INTERPRETER_IMPORT_WRAPPER - code append "object %s {\n".format(impname) - trailingBraces append "}\n" + code append "class %sC extends Serializable {\n".format(impname) + trailingBraces append "}\nval " + impname + " = new " + impname + "C;\n" accessPath append ("." + impname) currentImps.clear