Aladdin - Scala Bugtracking
[#705] project: compiler priority: high category: bug
submitter assigned to status date submitted
Stephane Iulian fixed 2006-08-16 17:06:35.0
subject [Cygwin] StackOverflowError in typechecker
code
what happened
lamppc46:scala> rm -rf dists/* ; ant dist.devel
rm: No match.
Buildfile: build.xml
     [echo] Running SABBUS for scala-core...

init:
     [echo] OS:   Cygwin (Windows XP x86 5.1);
     [echo] Java: 1.5.0_07 ('c:\Progra~1\Java\jdk1.5.0_07\jre');
     [echo] JVM:  Java HotSpot(TM) Client VM 1.5.0_07-b03;
     [echo] Ant:  Apache Ant version 1.6.5 compiled on June 2 2005.

dist.devel:

clean.build:
   [delete] Deleting directory C:\localhome\michelou\projects\scala-installer\dependencies\scala\build

init:

setup:
     [echo] Build number is '2.1.7.8404'
     [echo] Built mercredi, 16 aout 2006, 16:59:02 (CEST) from SVN revision 8404

build.locker:
    [mkdir] Created dir: C:\localhome\michelou\projects\scala-installer\dependencies\scala\build\locker\lib\libr\
ary
    [javac] Compiling 20 source files to C:\localhome\michelou\projects\scala-installer\dependencies\scala\build\
\locker\lib\ library
    [starr] Compiling 1 source file to C:\localhome\michelou\projects\scala-installer\dependencies\scala\build\l\
ocker\lib\li brary
    [starr] Compiling 184 source files to C:\localhome\michelou\projects\scala-installer\dependencies\scala\buil\
d\locker\lib \library
    [mkdir] Created dir: C:\localhome\michelou\projects\scala-installer\dependencies\scala\build\locker\lib\comp\
iler
    [starr] Compiling 157 source files to C:\localhome\michelou\projects\scala-installer\dependencies\scala\buil\
d\locker\lib \compiler
    [starr] java.lang.StackOverflowError
    [starr]     at java.util.HashMap.getEntry(HashMap.java:360)
    [starr]     at java.util.LinkedHashMap.get(LinkedHashMap.java:273)
    [starr]     at java.io.ExpiringCache.entryFor(ExpiringCache.java:83)
    [starr]     at java.io.ExpiringCache.get(ExpiringCache.java:58)
    [starr]     at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:376)
    [starr]     at java.io.File.getCanonicalPath(File.java:531)
    [starr]     at scala.tools.nsc.io.PlainFile.hashCode(PlainFile.scala:46)
    [starr]     at scala.collection.mutable.HashTable$class.elemHashCode(HashTable.scala:139)
    [starr]     at scala.collection.mutable.HashSet.elemHashCode(HashSet.scala:21)
    [starr]     at scala.collection.mutable.HashTable$class.findEntry(HashTable.scala:64)
    [starr]     at scala.collection.mutable.HashSet.findEntry(HashSet.scala:21)
    [starr]     at scala.collection.mutable.HashSet.$plus$eq(HashSet.scala:28)
    [starr]     at scala.tools.nsc.typechecker.Infer$Inferencer.checkAccessible(Infer.scala:238)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedIdent$0(Typers.scala:1424)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1704)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1764)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1629)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1764)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:1028)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$51.apply(Typers.scala:1060)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$51.apply(Typers.scala:1059)
    [starr]     at scala.List$.map2(List.scala:265)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedApply(Typers.scala:1059)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1642)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1764)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:1799)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1693)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1764)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1629)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1764)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:1028)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$51.apply(Typers.scala:1060)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$51.apply(Typers.scala:1059)
    [starr]     at scala.List$.map2(List.scala:265)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedApply(Typers.scala:1059)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1642)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1764)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:1028)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$51.apply(Typers.scala:1060)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$51.apply(Typers.scala:1059)
    [starr]     at scala.List$.map2(List.scala:265)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedApply(Typers.scala:1059)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1642)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:1764)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:1028)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$51.apply(Typers.scala:1060)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$51.apply(Typers.scala:1059)
    [starr]     at scala.List$.map2(List.scala:265)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typedApply(Typers.scala:1059)
    [starr]     at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:1642)
    [..]
what expected compiles silently
[back to overview]
Changes of this bug report
Stephane  edited on  2006-08-16 17:06:56.0
Stephane  edited on  2006-08-16 17:07:25.0
Stephane  edited on  2006-08-16 17:50:49.0
Stephane  edited on  2006-08-17 12:30:23.0
The last successful build on Cygwin corresponds to rev 8378. Then it fails: 8379 dragos Added InnerClasses attribute in classfiles 8380 dragos Added initial icode reader. 8381 dragos Added initial icode reader.
Stephane  edited on  2006-08-21 14:50:04.0
Splitted "big" match expression in symtab/classfile/ICodeReader.scala as a temporary workaround.
Iulian  edited on  2006-08-24 11:06:39.0
Changed the match statement to allow the patternmatcher to translate it to a simple int switch.