Problems with Scala 2.8.1 project

12 views
Skip to first unread message

Zach Cox

unread,
Nov 15, 2011, 12:23:50 PM11/15/11
to ens...@googlegroups.com
Hi - we have a project using Lift 2.3 and thus, Scala 2.8.1. I've been using emacs+ensime for about a year and it's been awesome. Recently I upgraded to Ubuntu 11.10 and GNU Emacs 23.3.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.5). I went to download ensime and there is no longer a Scala 2.8.1 build, just these two:
 - ensime_2.8.2-SNAPSHOT-0.5.1.tar.gz
 - ensime_2.8.3-SNAPSHOT-0.8.0.RC2.tar.gz

This project builds correctly using sbt, but if I try to M-x ensime it using ensime_2.8.2-SNAPSHOT-0.5.1 then I get this in inferior-ensime-server:

java.lang.AssertionError: assertion failed
    at scala.Predef$.assert(Predef.scala:77)
    at scala.tools.nsc.ast.TreeGen.gd3$1(TreeGen.scala:135)
    at scala.tools.nsc.ast.TreeGen.stableTypeFor(TreeGen.scala:132)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$27.apply(Typers.scala:2433)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$27.apply(Typers.scala:2433)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
    at scala.collection.immutable.List.map(List.scala:45)
    at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:2433)
    at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:3385)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4054)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4209)
    at scala.tools.nsc.typechecker.Typers$Typer.typedBlock(Typers.scala:1944)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3899)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4209)
    at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:2206)
    at scala.tools.nsc.typechecker.Typers$Typer.typedArgToPoly$1(Typers.scala:2490)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$29.apply(Typers.scala:2499)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$29.apply(Typers.scala:2499)
    at scala.Tuple2$Zipped$$anonfun$map$1.apply(Tuple2.scala:61)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.Tuple2$Zipped.map(Tuple2.scala:59)
    at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:2499)
    at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:3385)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4054)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4209)
    at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:4354)
    at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:1792)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3867)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4209)
    at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2132)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$20.apply(Typers.scala:2200)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$20.apply(Typers.scala:2200)
    at scala.collection.immutable.List.loop$1(List.scala:115)
    at scala.collection.immutable.List.mapConserve(List.scala:132)
    at scala.collection.immutable.List.loop$1(List.scala:119)
    at scala.collection.immutable.List.mapConserve(List.scala:132)
    at scala.collection.immutable.List.loop$1(List.scala:119)
    at scala.collection.immutable.List.mapConserve(List.scala:132)
    at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2200)
    at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1552)
    at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1314)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3858)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4209)
    at scala.tools.nsc.typechecker.Typers$Typer.typedStat$1(Typers.scala:2132)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$20.apply(Typers.scala:2200)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$20.apply(Typers.scala:2200)
    at scala.collection.immutable.List.loop$1(List.scala:115)
    at scala.collection.immutable.List.mapConserve(List.scala:132)
    at scala.collection.immutable.List.loop$1(List.scala:119)
    at scala.collection.immutable.List.mapConserve(List.scala:132)
    at scala.collection.immutable.List.loop$1(List.scala:119)
    at scala.collection.immutable.List.mapConserve(List.scala:132)
    at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:2200)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:3854)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4209)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4258)
    at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:93)
    at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:288)
    at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:288)
    at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
    at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:288)
    at scala.tools.nsc.interactive.Global$TyperRun$$anonfun$applyPhase$1$$anonfun$apply$mcV$sp$1.apply(Global.scala:947)
    at scala.tools.nsc.interactive.Global$TyperRun$$anonfun$applyPhase$1$$anonfun$apply$mcV$sp$1.apply(Global.scala:947)
    at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:103)
    at scala.tools.nsc.interactive.Global$TyperRun$$anonfun$applyPhase$1.apply(Global.scala:947)
    at scala.tools.nsc.interactive.Global$TyperRun$$anonfun$applyPhase$1.apply(Global.scala:947)
    at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
    at scala.tools.nsc.interactive.Global$TyperRun.applyPhase(Global.scala:946)
    at scala.tools.nsc.interactive.Global$TyperRun.typeCheck(Global.scala:938)
    at scala.tools.nsc.interactive.Global.scala$tools$nsc$interactive$Global$$typeCheck(Global.scala:489)
    at scala.tools.nsc.interactive.Global$$anonfun$backgroundCompile$4$$anonfun$apply$6.apply(Global.scala:428)
    at scala.tools.nsc.interactive.Global$$anonfun$backgroundCompile$4$$anonfun$apply$6.apply(Global.scala:427)
    at scala.Option.foreach(Option.scala:185)
    at scala.tools.nsc.interactive.Global$$anonfun$backgroundCompile$4.apply(Global.scala:427)
    at scala.tools.nsc.interactive.Global$$anonfun$backgroundCompile$4.apply(Global.scala:427)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.tools.nsc.interactive.Global.backgroundCompile(Global.scala:427)
    at scala.tools.nsc.interactive.PresentationCompilerThread.run(PresentationCompilerThread.scala:25)
[][Fatal Error: java.lang.AssertionError: assertion failed]


And if I try using ensime_2.8.3-SNAPSHOT-0.8.0.RC2 then inferior-ensime-server looks like it's starting a repl and hangs at a scala> prompt:

Project waiting for init...
Server listening on 54161..
Wrote port 54161 to /tmp/ensime_port.4097.
Got connection, creating handler...

Handling RPC: (swank:connection-info)
Writing: 00005c(:return (:ok (:pid nil :implementation (:name "ENSIME-ReferenceServer") :version "0.7")) 1)

Handling RPC: (swank:init-project (:project-name game-website :server-root /usr/local/ensime :project-package com.pongr :use-sbt t :root-dir /home/zcox/dev/game-website/))
Using project root: /home/zcox/dev/game-website
Starting sbt with command line: java -Xmx512M -Djline.terminal=jline.UnixTerminal -Dsbt.log.noformat=true -jar /usr/local/ensime_2.8.3-SNAPSHOT-0.8.0.RC2/bin/sbt-launch-0.7.7.jar console-project
[info] Building project game-website 1.0-SNAPSHOT against Scala 2.8.1
[info]    using Project with sbt 0.7.5 and Scala 2.7.7
[info] Starting scala interpreter with project definition game-website ...
[info]
current: Project = Project game-website
import sbt._
import Process._
import current._
Welcome to Scala version 2.7.7.final (OpenJDK 64-Bit Server VM, Java 1.6.0_23).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val p = current
p: Project = Project game-website

scala>


Is it possible to use these 2.8.2 or 2.8.3 versions of ensime with a 2.8.1 project? Am I doing something else wrong? This all worked before using a 2.8.1-specific version of ensime, but now none of those seem to exist. Any help would be greatly appreciated, gedit just doesn't cut it. :)

Thanks,
Zach

Aemon

unread,
Nov 15, 2011, 9:35:00 PM11/15/11
to ENSIME
Hey Zach,

ensime_2.8.3-SNAPSHOT-0.8.0.RC2 should work for you. I'm not sure why
it's hanging like that. Is there any way you could give us a project
that reproduces this issue? maybe put something up on github?

Thanks and sorry for the frustration,
Aemon
> scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.sc ala:93)
>     at
> scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala :288)
>     at
> scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala :288)
>     at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
>     at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:288)
>     at
> scala.tools.nsc.interactive.Global$TyperRun$$anonfun$applyPhase$1$$anonfun$ apply$mcV$sp$1.apply(Global.scala:947)
>     at
> scala.tools.nsc.interactive.Global$TyperRun$$anonfun$applyPhase$1$$anonfun$ apply$mcV$sp$1.apply(Global.scala:947)
>     at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:103)
>     at
> scala.tools.nsc.interactive.Global$TyperRun$$anonfun$applyPhase$1.apply(Glo bal.scala:947)
>     at
> scala.tools.nsc.interactive.Global$TyperRun$$anonfun$applyPhase$1.apply(Glo bal.scala:947)
>     at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:47)
>     at
> scala.tools.nsc.interactive.Global$TyperRun.applyPhase(Global.scala:946)
>     at
> scala.tools.nsc.interactive.Global$TyperRun.typeCheck(Global.scala:938)
>     at
> scala.tools.nsc.interactive.Global.scala$tools$nsc$interactive$Global$$type Check(Global.scala:489)
>     at
> scala.tools.nsc.interactive.Global$$anonfun$backgroundCompile$4$$anonfun$ap ply$6.apply(Global.scala:428)
>     at
> scala.tools.nsc.interactive.Global$$anonfun$backgroundCompile$4$$anonfun$ap ply$6.apply(Global.scala:427)
>     at scala.Option.foreach(Option.scala:185)
>     at
> scala.tools.nsc.interactive.Global$$anonfun$backgroundCompile$4.apply(Globa l.scala:427)
>     at
> scala.tools.nsc.interactive.Global$$anonfun$backgroundCompile$4.apply(Globa l.scala:427)
>     at
> scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala: 61)
>     at scala.collection.immutable.List.foreach(List.scala:45)
>     at
> scala.tools.nsc.interactive.Global.backgroundCompile(Global.scala:427)
>     at
> scala.tools.nsc.interactive.PresentationCompilerThread.run(PresentationComp ilerThread.scala:25)

Aemon Cannon

unread,
Nov 15, 2011, 11:15:54 PM11/15/11
to Zach Cox, ens...@googlegroups.com
Hey Zach,

Could you try RC3 (just uploaded)?

On Tue, Nov 15, 2011 at 10:08 PM, Zach Cox <zco...@gmail.com> wrote:
Hi Aemon,

The lift_basic project from https://github.com/lift/lift_23_sbt has
the same problem for me using the ensime 2.8.3 version. I put this in
its own repo too:

https://github.com/zcox/ensime-test

If I clone that and try ensime right away (without doing sbt update
first) then ensime starts up properly. But if I do sbt update and then
try to start ensime, it hangs forever.

The emacs scala-mode that I load in my ~/.emacs is from Scala 2.8.1,
would that make a difference?

Thanks a lot for looking into this!
-Zach

Zach Cox

unread,
Nov 16, 2011, 10:29:28 AM11/16/11
to ens...@googlegroups.com
Hi Aemon - RC3 seems to have fixed the problem. Thank you so much!!! I
really appreciate this fix, and ensime in general.

Thanks,
Zach

Aemon Cannon

unread,
Nov 16, 2011, 10:42:22 AM11/16/11
to ens...@googlegroups.com
Zach, 
Great, thanks for the report. This save the other 2.8.x users some grief!
Reply all
Reply to author
Forward
0 new messages