viperproject/Gobra

Verify your Go project with Gobra

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
cachingEnable caching of verification results. The possible values are 0 (disabled) and 1 (enabled).yes0
projectLocationLocation in which the project is located in the workflow context. By default, it looks in a folder with the same name as the repository.no
includePathsDirectories used for package lookup. Their paths are relative to the project location.no
enableFriendClausesEnable friend package invariants (experimental).no0
filesList of Go and Gobra files to verify.no
packagesNames of the packages to verify. By default, all packages are verified.no
excludePackagesNames of packages that should not be verified. This option takes precedence over the `package` option.no
recursiveVerify nested packages recursivelyno0
respectFunctionPrePermAmountsRespects precise permission amounts in pure function preconditions instead of only checking read access, as done in older versions of Gobra. This option should be used for verifying legacy projects written with the old interpretation of fractional permissions. New projects are encouraged to set this flag to false.no0
overflowCheck for arithmetic overflows in integer expressions.no0
chopMaximum number of files in which a file can be split with the chopper feature of Gobra. Larger values may improve the verification time of large codebases.1
viperBackendWhich Viper backend to use. Can be one of "SILICON", "VSWITHSILICON", "CARBON", and "VSWITHCARBON".yesSILICON
javaXssJava stack size. Should be increased in case of frequent stack overflows.yes1g
javaXmxMaximum size of the heap.yes4g
timeoutTime-out for the verification job. Note that a GitHub workflow step times-out automatically after 6 hours.no6h
imageNameBase image of Gobra to be used.yesghcr.io/viperproject/gobra
imageVersionVersion of the base image to be used.yeslatest
headerOnlyWhether Gobra should only verify files with the header "// +gobra".no0
moduleName of current module that should be used for resolving imports.no
assumeInjectivityOnInhaleAssume injectivity of the receiver expression when inhaling quantified permissions, instead of checking it, like in Viper versions previous to 2022.02.no1
checkConsistencyno0
mceModeExhale Mode used together with a silicon-based backend. It can be enabled ("on"), disabled("off"), or enabled on demand ("od").noon
parallelizeBranchesParallelize branches in the silicon backend.no0
requireTriggersRequire that all quantifiers have user-provided triggers.no0
conditionalizePermissionsTries to reduce the number of branches that Gobra has to deal with the option --conditionalizePermissionsno0
disableNLDisable non-linear integer arithmetic. Non compatible yet with Carbonno0
moreJoinsSpecifies if silicon should be run with more joins completely enabled ("all"), disabled ("off"), or only for impure conditionals ("impure").nooff
unsafeWildcardOptimizationPerform the optimization described in silicon's PR #756. You must ensure that the necessary conditions for the optimization are met.no0
useZ3APIUse the Z3 API in silicon.no0
statsFilePath where the generated stats.json file will be storedno/stats/
namedescription
timeTotal verification time in seconds