8000 Upgrade to Scala 2.12.13 and point to new Inox by jad-hamza · Pull Request #913 · epfl-lara/stainless · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Upgrade to Scala 2.12.13 and point to new Inox #913

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

Merged
merged 6 commits into from
Feb 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 3 additions & 8 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ lazy val nParallel = {
}
}

val SupportedScalaVersions = Seq("2.12.9")
val SupportedScalaVersions = Seq("2.12.13")

lazy val frontendClass = settingKey[String]("The name of the compiler wrapper used to extract stainless trees")

Expand Down Expand Up @@ -83,13 +83,8 @@ lazy val commonSettings: Seq[Setting[_]] = artifactSettings ++ Seq(
"-feature"
),

// unmanagedJars in Runtime += {
// root.base / "unmanaged" / s"scalaz3-$osName-$osArch-${scalaBinaryVersion.value}.jar"
// },

resolvers ++= Seq(
Resolver.sonatypeRepo("releases"),
Resolver.bintrayRepo("epfl-lara", "maven"),
Resolver.sonatypeRepo("releases").withAllowInsecureProtocol(true),
("uuverifiers" at "http://logicrunch.research.it.uu.se/maven").withAllowInsecureProtocol(true),
),

Expand Down Expand Up @@ -222,7 +217,7 @@ val scriptSettings: Seq[Setting[_]] = Seq(
def ghProject(repo: String, version: String) = RootProject(uri(s"${repo}#${version}"))

// lazy val inox = RootProject(file("../inox"))
lazy val inox = ghProject("https://github.com/epfl-lara/inox.git", "5ff41439402ae7543675ab2976163a6d3785a608")
lazy val inox = ghProject("https://github.com/epfl-lara/inox.git", "1b17cb4d38dfddf16286e3346929b7a05267c380")
//lazy val dotty = ghProject("git://github.com/lampepfl/dotty.git", "b3194406d8e1a28690faee12257b53f9dcf49506")

// Allow integration test to use facilities from regular tests
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/stainless/genc/CAST.scala
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ object CAST { // C Abstract Syntax Tree
/* ---------------------------------------------------------- Helpers ----- */
// Flatten blocks together and remove `()` literals
def buildBlock(exprs: Seq[Expr]): Block = {
val block = (Seq[Expr]() /: (exprs filterNot isUnitLit)) {
val block = (exprs filterNot isUnitLit).foldLeft(Seq.empty[Expr]) {
case (acc, e) => e match {
case Block(exprs) => acc ++ exprs
case expr => acc :+ expr
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/stainless/genc/ir/IR.scala
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ private[genc] sealed trait IR { ir =>
def buildBlock(exprs: Seq[Expr]): Block = {
require(exprs.nonEmpty)

val block = (Seq[Expr]() /: exprs) {
val block = exprs.foldLeft(Seq[Expr]()) {
case (acc, e) => e match {
case Block(exprs) => acc ++ exprs
case expr => acc :+ expr
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/stainless/genc/ir/Normaliser.scala
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ final class Normaliser(val ctx: inox.Context) extends Transformer(CIR, NIR) with
// - the arguments themselves
private def flattenAll(args0: Expr*)(implicit env: Env): (Seq[Seq[to.Expr]], Seq[to.Expr]) = {
val empty = (Seq[Seq[to.Expr]](), Seq[to.Expr]()) // initSS + lastS
val (initss1, args1) = (empty /: args0) { case ((initss, lasts), e) =>
val (initss1, args1) = args0.foldLeft(empty) { case ((initss, lasts), e) =>
val (init, last) = flatten(e)
(initss :+ init, lasts :+ last)
}
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/stainless/genc/ir/Transformer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ abstract class Transformer[From <: IR, To <: IR](final val from: From, final val
val acc2 = acc + (current -> transformed)
val subs = current.getDirectChildren

(acc2 /: subs) { case (acc3, sub) => topDown(Some(transformed), sub, acc3) }
subs.foldLeft(acc2) { case (acc3, sub) => topDown(Some(transformed), sub, acc3) }
}

val top = cd.hierarchyTop
Expand Down
12 changes: 7 additions & 5 deletions core/src/main/scala/stainless/genc/phases/Scala2IRPhase.scala
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ private class S2IRImpl(val ctx: inox.Context, val ctxDB: FunCtxDB, val deps: Dep
}

// Combine all cases, using a foldRight
val patmat = (cases.init :\ last) { case (caze, acc) =>
val patmat = cases.init.foldRight(last) { case (caze, acc) =>
CIR.IfElse(caze.fullCondition, caze.body, acc)
}

Expand Down Expand Up @@ -554,11 +554,13 @@ private class S2IRImpl(val ctx: inox.Context, val ctxDB: FunCtxDB, val deps: Dep
def recTopDown(ct: ClassType, parent: Option[CIR.ClassDef], acc: Translation): Translation = {
val tcd = ct.tcd
val cd = tcd.cd
val id = buildId(ct)

if (cd.isDropped || cd.isManuallyTyped)
ctx.reporter.fatalError(ct.getPos, s"${ct.id} is not convertible to ClassDef in GenC")
ctx.reporter.fatalError(ct.getPos, s"${ct.id.asString} is not convertible to ClassDef in GenC")

val id = buildId(ct)
assert(!cd.isCaseObject)
if (cd.isCaseObject)
ctx.reporter.fatalError(ct.getPos, s"Case objects (${ct.id.asString}) are not convertible to ClassDef in GenC")

// Use the class definition id, not the typed one as they might not match.
val nonGhostFields = tcd.fields.filter(!_.flags.contains(Ghost))
Expand All @@ -571,7 +573,7 @@ private class S2IRImpl(val ctx: inox.Context, val ctxDB: FunCtxDB, val deps: Dep

// Recurse down
val children = cd.children map { _.typed(ct.tps) }
(newAcc /: children) { case (currentAcc, child) => recTopDown(child.toType, Some(clazz), currentAcc) }
children.foldLeft(newAcc) { case (currentAcc, child) => recTopDown(child.toType, Some(clazz), currentAcc) }
}

val translation = recTopDown(syms.getClass(root(ct.id)).typed(ct.tps).toType, None, Map.empty)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,9 @@ class VerificationRun(override val pipeline: StainlessPipeline)
reporter.debug(s"Generating VCs for those functions: ${functions map { _.uniqueName } mkString ", "}")

val vcs = if (context.options.findOptionOrDefault(optTypeChecker))
TypeChecker(assertionEncoder.targetProgram, context).checkFunctionsAndADTs(functions)
context.timers.verification.get("type-checker").run {
TypeChecker(assertionEncoder.targetProgram, context).checkFunctionsAndADTs(functions)
}
else
VerificationGenerator.gen(assertionEncoder.targetProgram, context)(functions)

Expand Down
2 changes: 0 additions & 2 deletions frontends/library/stainless/collection/ConcRope.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

package stainless.collection

import stainless.collection._
import stainless.lang._
import stainless.proof._
import stainless.lang.StaticChecks._
Expand Down Expand Up @@ -68,7 +67,6 @@ object ConcRope {

@library
sealed abstract class Conc[T] {
import Conc._

def isEmpty: Boolean = {
this == Empty[T]()
Expand Down
3 changes: 0 additions & 3 deletions frontends/library/stainless/collection/List.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,11 @@
package stainless.collection

import scala.annotation.tailrec
import scala.language.implicitConversions
import scala.collection.immutable.{List => ScalaList}

import stainless._
import stainless.lang._
import stainless.lang.StaticChecks._
import stainless.annotation._
import stainless.math._
import stainless.proof._

@library
Expand Down
2 changes: 0 additions & 2 deletions frontends/library/stainless/io/FileInputStream.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

package stainless.io

import scala.language.implicitConversions

import stainless.lang._
import stainless.annotation._
import stainless.lang.StaticChecks._
Expand Down
2 changes: 0 additions & 2 deletions frontends/library/stainless/io/FileOutputStream.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

package stainless.io

import scala.language.implicitConversions

import stainless.lang._
import stainless.annotation._
import stainless.lang.StaticChecks._
Expand Down
2 changes: 0 additions & 2 deletions frontends/library/stainless/io/StdIn.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

package stainless.io

import scala.language.implicitConversions

import stainless.annotation._
import stainless.lang.StaticChecks._

Expand Down
3 changes: 0 additions & 3 deletions frontends/library/stainless/io/StdOut.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

package stainless.io

import scala.language.implicitConversions

import stainless.annotation._
import stainless.lang.StaticChecks._
import stainless.math.BitVectors._

object StdOut {
Expand Down
3 changes: 0 additions & 3 deletions frontends/library/stainless/io/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

package stainless

import scala.language.implicitConversions

import stainless.annotation._
import stainless.lang.StaticChecks._

package object io {

Expand Down
4 changes: 0 additions & 4 deletions frontends/library/stainless/lang/Bag.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@

package stainless.lang

import scala.language.implicitConversions

import stainless.annotation._
import stainless.lang.StaticChecks._


object Bag {
@library @inline
Expand Down
2 changes: 0 additions & 2 deletions frontends/library/stainless/lang/Either.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

package stainless.lang

import scala.language.implicitConversions

import stainless.annotation._
import stainless.lang.StaticChecks._

Expand Down
1 change: 0 additions & 1 deletion frontends/library/stainless/lang/Map.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

package stainless.lang

import scala.language.implicitConversions
import scala.collection.immutable.{Map => ScalaMap}

import StaticChecks._
Expand Down
1 change: 0 additions & 1 deletion frontends/library/stainless/lang/MutableMap.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
package stainless.lang

import stainless.annotation._
import stainless.lang.StaticChecks._

object MutableMap {
@extern @library
Expand Down
2 changes: 0 additions & 2 deletions frontends/library/stainless/lang/Option.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

package stainless.lang

import scala.language.implicitConversions

import stainless.annotation._
import stainless.lang.StaticChecks._

Expand Down
2 changes: 0 additions & 2 deletions frontends/library/stainless/lang/PartialFunction.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
package stainless
package lang

import scala.language.implicitConversions

import annotation._
import stainless.lang.StaticChecks._

Expand Down
3 changes: 0 additions & 3 deletions frontends/library/stainless/lang/Real.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
package stainless.lang

import stainless.annotation._
import stainless.lang.StaticChecks._

import scala.language.implicitConversions

@ignore
class Real(val theReal: scala.math.BigDecimal) {
Expand Down
1 change: 0 additions & 1 deletion frontends/library/stainless/lang/Set.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import StaticChecks._
import stainless.annotation._
import stainless.collection.{List, ListOps}

import scala.language.implicitConversions
import scala.collection.immutable.{Set => ScalaSet}

object Set {
Expand Down
1 change: 0 additions & 1 deletion frontends/library/stainless/lang/StaticChecks.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package stainless.lang

import stainless.annotation._
import scala.language.implicitConversions

object StaticChecks {

Expand Down
3 changes: 0 additions & 3 deletions frontends/library/stainless/lang/StrOps.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

package stainless.lang

import scala.language.implicitConversions

import stainless.annotation._
import stainless.lang.StaticChecks._

/**
* @author Mikael
Expand Down
3 changes: 0 additions & 3 deletions frontends/library/stainless/lang/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@ package stainless
import stainless.annotation._
import stainless.lang.StaticChecks._

import scala.language.implicitConversions

package object lang {
import stainless.proof._

@library
def ghost[A](@ghost value: A): Unit = ()
Expand Down
5 changes: 0 additions & 5 deletions frontends/library/stainless/math/BitVectors.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,9 @@ package stainless
package math

import stainless.annotation._
import stainless.lang._
import stainless.lang.StaticChecks._
import scala.collection.immutable.BitSet

import scala.language.higherKinds
import scala.language.implicitConversions


// TODO: write the Scala implementation

@library
Expand Down
2 changes: 0 additions & 2 deletions frontends/library/stainless/proof/Internal.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import stainless.lang._
import stainless.annotation._
import stainless.lang.StaticChecks._

import scala.language.implicitConversions

/** Internal helper classes and methods for the 'proof' package. */
object Internal {

Expand Down
2 changes: 0 additions & 2 deletions frontends/library/stainless/util/Random.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

package stainless.util

import scala.language.implicitConversions

import stainless.annotation._
import stainless.lang.StaticChecks._
import stainless.io._
Expand Down
14 changes: 7 additions & 7 deletions frontends/scalac/src/it/scala/stainless/GhostRewriteSuite.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ import org.scalatest._
import stainless.frontends.scalac.StainlessPlugin

class GhostRewriteSuite extends FunSpec {
val reporter = new StoreReporter
val settings = new Settings()
settings.stopAfter.value = List("refchecks")
settings.usejavacp.value = false
settings.classpath.value = Main.extraClasspath

def newCompiler: CheckingGlobal = {
val settings = new Settings()
settings.stopAfter.value = List("refchecks")
settings.usejavacp.value = false
settings.classpath.value = Main.extraClasspath
val reporter = new StoreReporter(settings)

def newCompiler: CheckingGlobal = {
new CheckingGlobal(settings)
}

Expand Down Expand Up @@ -51,7 +51,7 @@ class GhostRewriteSuite extends FunSpec {
}
}

def ignoreError(i: reporter.Info) = {
def ignoreError(i: StoreReporter.Info) = {
val s = i.toString

s.contains("The Z3 native interface is not available") ||
Expand Down
Loading
0