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

allow customizing the cnf budget, equate stack overflow to budget overflow #6031

Closed
scabug opened this issue Jul 5, 2012 · 3 comments
Closed
Assignees
Milestone

Comments

@scabug
Copy link

scabug commented Jul 5, 2012

allow the cnf budget to be customized
catch stack overflows in CNF conversion and treat them like a cnf budget exceeded error

@scabug
Copy link
Author

scabug commented Jul 5, 2012

Imported From: https://issues.scala-lang.org/browse/SI-6031?orig=1
Reporter: @adriaanm

@scabug
Copy link
Author

scabug commented Jul 20, 2012

@adriaanm said:
scala/scala#953

@scabug scabug closed this as completed Jul 23, 2012
@scabug
Copy link
Author

scabug commented Aug 4, 2012

@SethTisue said:
fwiw, I did exceed the default analysis budget in some “real world” code. (Well, I work for a university, so maybe I don't get to claim that, but it's production code I got paid to write.)

with potentially incriminating identifiers shortened:

abstract sealed trait T
case object T1 extends T
case object T2 extends T
case object T3 extends T
case object T4 extends T
case object T5 extends T
case object T6 extends T
case object T7 extends T
case object T8 extends T
case object T9 extends T
case object T10 extends T
case object T11 extends T
case object T12 extends T
case object T13 extends T
case object T14 extends T
case object T15 extends T
case object T16 extends T

case class C(t: T)

object S {
  def foo(xs: Seq[C]) =
    xs match {
      case Seq(C(T1), C(T2)) => true
      case _ => false
    }
}

increasing the budget to 512 made the warning go away.

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