Skip to content

Commit

Permalink
Merge branch 'master' into lsp
Browse files Browse the repository at this point in the history
  • Loading branch information
Dspil committed Aug 22, 2024
2 parents e234e84 + 7b4d0d1 commit a033f91
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 42 deletions.
25 changes: 3 additions & 22 deletions .github/workflows/scala.yml
Original file line number Diff line number Diff line change
Expand Up @@ -324,16 +324,16 @@ jobs:
- name: Create nightly release
if: env.MATCHING_RELEASE != 'true'
id: create_release
uses: viperproject/create-nightly-release@v1
uses: actions/create-release@v1
env:
# This token is provided by Actions, you do not need to create your own token
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: Nightly Release ${{ env.TAG_NAME }}
body_path: versions.txt
keep_num: 1 # keep the previous nightly release such that there are always two
keep_tags: true
draft: false
prerelease: true

- name: Upload ViperServer skinny jars
if: env.MATCHING_RELEASE != 'true'
Expand All @@ -357,25 +357,6 @@ jobs:
asset_name: viperserver.jar
asset_content_type: application/octet-stream

- name: Trigger Viper-IDE CI
if: env.MATCHING_RELEASE != 'true'
run: |
curl --fail --request POST \
--user 'viper-admin:${{ secrets.VIPER_ADMIN_TOKEN }}' \
--header 'Accept: application/vnd.github.v3+json' \
--url 'https://api.github.com/repos/viperproject/viper-ide/actions/workflows/test.yml/dispatches' \
--data "{ \
\"ref\":\"master\", \
\"inputs\":{ \
\"type\":\"nightly\", \
\"viperserver_tag_name\":\"${{ env.TAG_NAME }}\", \
\"boogie_tag_name\":\"latest\", \
\"z3_version\":\"${{ env.Z3_VERSION }}\", \
\"tag_name\":\"${{ env.TAG_NAME }}\", \
\"release_name\":\"Nightly Release ${{ env.TAG_NAME }}\" \
} \
}"

create-stable-release:
needs: test
Expand Down
2 changes: 1 addition & 1 deletion silicon
Submodule silicon updated 53 files
+1 −1 silver
+1 −0 src/main/resources/magic_wand_snap_functions_declarations.smt2
+42 −14 src/main/scala/Config.scala
+3 −24 src/main/scala/Silicon.scala
+1 −0 src/main/scala/Utils.scala
+22 −15 src/main/scala/decider/Decider.scala
+6 −1 src/main/scala/decider/TermToSMTLib2Converter.scala
+4 −0 src/main/scala/decider/TermToZ3APIConverter.scala
+12 −5 src/main/scala/extensions/ConditionalPermissionRewriter.scala
+5 −4 src/main/scala/logger/writer/TermWriter.scala
+1 −1 src/main/scala/reporting/Converter.scala
+4 −3 src/main/scala/rules/Brancher.scala
+1 −1 src/main/scala/rules/ChunkSupporter.scala
+29 −14 src/main/scala/rules/Consumer.scala
+104 −52 src/main/scala/rules/Evaluator.scala
+1 −1 src/main/scala/rules/ExecutionFlowController.scala
+16 −8 src/main/scala/rules/Executor.scala
+21 −13 src/main/scala/rules/HavocSupporter.scala
+5 −1 src/main/scala/rules/Joiner.scala
+204 −135 src/main/scala/rules/MagicWandSupporter.scala
+16 −9 src/main/scala/rules/MoreCompleteExhaleSupporter.scala
+22 −11 src/main/scala/rules/Producer.scala
+71 −40 src/main/scala/rules/QuantifiedChunkSupport.scala
+33 −5 src/main/scala/rules/StateConsolidator.scala
+5 −2 src/main/scala/state/Chunks.scala
+4 −1 src/main/scala/state/SnapshotMapCache.scala
+11 −7 src/main/scala/state/State.scala
+94 −51 src/main/scala/state/Terms.scala
+2 −2 src/main/scala/state/Triggers.scala
+3 −2 src/main/scala/state/Utils.scala
+45 −50 src/main/scala/supporters/BuiltinDomainsContributor.scala
+2 −2 src/main/scala/supporters/ExpressionTranslator.scala
+92 −0 src/main/scala/supporters/MagicWandSnapFunctionsContributor.scala
+10 −7 src/main/scala/supporters/functions/FunctionData.scala
+66 −16 src/main/scala/supporters/functions/FunctionRecorder.scala
+2 −2 src/main/scala/supporters/functions/HeapAccessReplacingExpressionTranslator.scala
+1 −3 src/main/scala/supporters/qps/PredicateAndWandSnapFunctionsContributor.scala
+1 −1 src/main/scala/supporters/qps/PredicateSnapGenerator.scala
+49 −8 src/main/scala/verifier/BaseVerifier.scala
+65 −2 src/main/scala/verifier/DefaultMainVerifier.scala
+2 −2 src/main/scala/verifier/Verifier.scala
+19 −0 src/test/resources/conditionalizePermissions/carbon_0179.vpr
+18 −0 src/test/resources/conditionalizePermissions/let.vpr
+15 −0 src/test/resources/conditionalizePermissions/silicon_0008.vpr
+27 −0 src/test/resources/conditionalizePermissions/silicon_0713.vpr
+16 −0 src/test/resources/conditionalizePermissions/welldef.vpr
+12 −0 src/test/resources/moreCompleteExhale/0822.vpr
+4 −4 src/test/resources/symbExLogTests/symbLogTest_Branching.vpr.elog
+15 −0 src/test/scala/SiliconTestsConditionalizePermissions.scala
+24 −0 src/test/scala/SiliconTestsMoreJoins.scala
+6 −6 src/test/scala/SimpleArithmeticTermSolverTests.scala
+4 −4 src/test/scala/TriggerGeneratorTests.scala
+5 −5 src/test/scala/TriggerRewriterTests.scala
6 changes: 6 additions & 0 deletions src/main/scala/viper/server/core/VerificationWorker.scala
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,12 @@ class ViperBackend(val backendName: String, private val _frontend: SilFrontend,
val res = for {
filteredProgram <- filter(_ast)
innerProgram <- beforeVerify(filteredProgram)
stats = StatisticsReport(innerProgram.methods.size,
innerProgram.functions.size,
innerProgram.predicates.size,
innerProgram.domains.size,
innerProgram.fields.size)
_ = _frontend.reporter.report(stats)
cachingResult = caching(innerProgram)
verificationResult <- verification(cachingResult.transformedProgram)
combinedVerificationResult = postCaching(cachingResult, verificationResult)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,27 +129,9 @@ trait ProgramDefinitionsProvider {
} flatten) toList
}

private def countInstances(p: Program): Map[String, Int] = p.members.groupBy({
case _: Method => "method"
case _: Function => "function"
case _: Predicate => "predicate"
case _: Domain => "domain"
case _: Field => "field"
case _ => "other"
}).view.mapValues(_.size).toMap

def reportProgramStats(): Unit = {
val prog = _frontend.program.get
val stats = countInstances(prog)

_frontend.reporter.report(ProgramOutlineReport(prog.members.toList))
_frontend.reporter.report(StatisticsReport(
stats.getOrElse("method", 0),
stats.getOrElse("function", 0),
stats.getOrElse("predicate", 0),
stats.getOrElse("domain", 0),
stats.getOrElse("field", 0)
))
_frontend.reporter.report(ProgramDefinitionsReport(collect(prog)))
}
}

0 comments on commit a033f91

Please sign in to comment.