Bir Scala programını çalıştırdığımda, bir java.lang.StackOverflowError
alıyorum.Scala yığın boyutu nasıl artırılır?
Ben yığın boyutu -DXss=n
ile ayarlanabilir inanıyoruz ama sistemimde çalışmaz:
Scala compiler version 2.7.7final and
Linux 2.6.38-8-generiC#42-Ubuntu
ekli programı tanıklar sorunu sistemimde.
// scalac StackOverflow.scala
// scala StackOverflow 6000
// scala -DXms=200M -DXmx=200M -DXss=200M StackOverflow 6000
object StackOverflow {
def recur(k: Double): Double = {
// check effects of various commands
println(k)
// try to prevent tail recursion
if (k>0) return recur(k-1)+k/(k+1)
else return 0.0
}
def main(args: Array[String]) {
if (args.length == 0) println("Missing argument");
val k = args(0).toInt+0.1
recur(k)
}
}
Sergio
olduğunu düşünüyorum '@ tailrec' açıklama . –
@ Jean-Philippe: '@ tailrec' sadece 2.8'den beri kullanılabilir. @Sergio: ** Lütfen yeni bir sürüme güncelleyin (şu an 2.9.0.1), Scala 2.7 ile 2.9 arasında büyük gelişmeler oldu. – soc