Releases: GaloisInc/saw-script
Releases · GaloisInc/saw-script
v0.2
- Released under the 3-clause BSD license
- Major improvements to the Java and LLVM verification infrastructure,
as described in more detail here:- Major refactoring and polish to
java_verify
andjava_symexec
- Major refactoring and polish to
llvm_verify
andllvm_symexec
- Fixed soundness bug in
llvm_verify
treatment of heap
modifications - Fixed soundness bug related to
java_assert
andllvm_assert
- Support for branch satisfiability checking to be configured
- Support for some types of allocation in
java_verify
, enabled
withjava_allow_alloc
- Improved support for LLVM structs (including the
llvm_struct
type forllvm_verify
) - Support for non-scalar return values in
java_verify
and
java_symexec
- Support for using
java_ensure_eq
on fields of return value - Access to safety conditions in
java_symexec
andllvm_symexec
- New primitives
llvm_assert_eq
andjava_assert_eq
- Major refactoring and polish to
- Some changes to the SAWScript language:
- Conditional expressions including the keywords
if
,then
, and
else
, and the new constantstrue
andfalse
- New
eval_int
andeval_bool
functions to expose Cryptol bit
vectors andBit
values asInt
andBool
values in SAWScript - Pattern matching for tuples
- Improvements to pretty printing, including:
set_base
and
set_ascii
commands to control the formatting of values; ashow
function to convert a value to a string without printing it; and
the ability to useprint
orshow
instead of
llvm_browse_module
andjava_browse_class
- New built-in functions for processing lists
- Conditional expressions including the keywords
- New proof backends:
- A new
rme
proof tactic, based on the
Reed-Muller Expansion
normal form for propositional formulas. This tactic is
particularly efficient for dealing with polynomials over Galois
fields, as used in AES, for instance.
- A new
- Linked against the latest Cryptol code, which includes the following
changes since release 2.3.0:- An extended prelude with more Haskell-like functions
- Better, more portable seeding for
random
- Performance improvements for symbolically executing tables of
constant values - Performance improvements for type checking large constants
- Internal improvements:
- Simplified Cryptol to SAWCore translation
- Improved performance of Cryptol to SAWCore translation for
recursive functions - Updated bitcode parser to support some of the changes in LLVM 3.7
- Many bug fixes
- Many code cleanups
v0.1.1-dev
Release of version 0.1.1-dev