Changelog for grisette-0.4.1.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.4.1.0 -- 2024-01-10
Added
- Added
cegisForAll
interfaces. ([#165])(https://github.com/lsrcz/grisette/pull/165)
0.4.0.0 -- 2024-01-08
Added
- Added wrappers for state transformers. (#132)
- Added
toGuardList
function. (#137) - Exported some previously hidden API (
BVSignConversion
,runFreshTFromIndex
) that we found useful or forgot to export. (#138, #139) - Provided
mrgRunFreshT
to runFreshT
with merging. (#140) - Added
Grisette.Data.Class.SignConversion.SignConversion
for types fromData.Int
andData.Word
. (#142) - Added shift functions by symbolic shift amounts. (#151)
- Added
apply
for uninterpreted functions. (#155) - Added
liftFresh
to lift aFresh
intoMonadFresh
. (#156) - Added a handle types for SBV solvers. This allows users to use SBV solvers without the need to wrap everything in the SBV monads. (#159)
- Added a new generic CEGIS interface. This allows any verifier/fuzzer to be used in the CEGIS loop. (#159)
Removed
- [Breaking] Removed the
Grisette.Lib.Mtl
module. (#132) - [Breaking] Removed
SymBoolOp
andSymIntegerOp
. (#146) - [Breaking] Removed
ExtractSymbolics
instance forSymbolSet
. (#146)
Fixed
- Removed the quotation marks around the pretty printed results for string-like data types. (#127)
- Fixed the
SOrd
instance forVerificationConditions
. (#131) - Fixed the missing
SubstituteSym
instance forUnionM
. (#131) - Fixed the symbolic generation order for
Maybe
. (#131) - Fixed the
toInteger
function forIntN 1
. (#143) - Fixed the
abs
function forWordN
. (#144) - Fixed the QuickCheck shrink function for
WordN 1
andIntN 1
. (#149) - Fixed the heap overflow bug for
shiftL
forWordN
andIntN
by large numbers. (#150)
Changed
- Reorganized the files for
MonadTrans
. (#132) - [Breaking] Changed the name of
Union
constructors and patterns. (#133) - The
Union
patterns, when used as constructors, now merges the result. (#133) - Changed the symbolic identifier type from
String
toData.Text.Text
. (#141) - [Breaking]
Grisette.Data.Class.BitVector.BVSignConversion
is nowGrisette.Data.Class.SignConversion.SignConversion
. (#142) - [Breaking] Moved the
ITEOp
,LogicalOp
, andSEq
type classes to dedicated modules. (#146) - [Breaking] Moved
Grisette.Data.Class.Evaluate
toGrisette.Data.Class.EvaluateSym
. (#146) - [Breaking] Moved
Grisette.Data.Class.Substitute
toGrisette.Data.Class.SubstituteSym
. (#146) - [Breaking] Split the
Grisette.Data.Class.SafeArith
module toGrisette.Data.Class.SafeDivision
andGrisette.Data.Class.SafeLinearArith
. (#146) - [Breaking] Changed the API to
MonadFresh
. (#156) - [Breaking] Renamed multiple symbolic operators. (#158)
- [Breaking] Changed the solver interface. (#159)
- [Breaking] Changed the CEGIS solver interface. (#159)
0.3.1.1 -- 2023-09-29
No user-facing changes.
0.3.1.0 -- 2023-07-19
Added
- Added support to
Data.Text
. (#95) - Added
Arbitrary
instances for bit vectors. (#97) - Added pretty printers for Grisette data types. (#101)
- Added
ExtractSymbolics
instances for tuples longer than 2. (#103)
Fixed
0.3.0.0 -- 2023-07-07
Added
- Added the conversion between signed and unsigned bit vectors. (#69)
- Added the generation of
SomeSymIntN
andSomeSymWordN
from a singleInt
for bit width. (#73) - Added the
FiniteBits
instance forSomeSymIntN
andSomeSymWordN
. (#83) - Added more flexible instances for symbolic generation for
Either
,Maybe
and list types. (#84) - Added an experimental
GenSymConstrained
type class. (#89)
Changed
- Changed the operations for
SomeIntN
andSomeWordN
to accepting dynamic runtime integers rather than compile-time integers. (#71) - Comparing the equality of
SomeIntN
/SomeWordN
/SomeSymIntN
/SomeSymWordN
with different bit widths returns false rather than crash now. (#74)
Fixed
- Fixed the compatibility issue with sbv 10+. (#66)
- Fixed build error with newer GHC. (#70)
- Fixed the merging for
SomeSymIntN
andSomeSymWordN
. (#72)
0.2.0.0 - 2023-04-13
Added
- Add term size count API. (#48, #53)
- Add timeout to solver interface. (#49, #50)
- Add parallel do-notation for parallel symbolic compilation. (#51)
- Added some missing instances for symbolic values and bit vectors. (#46, #61)
- Add missing instances for
MonadFresh
andFreshT
. (#59)
Changed
- New safe operator interfaces. (#56)
- Redesigned symbolic value interface.
Removed
- Dropped merging cache for
UnionM
. This fixed some segmentation fault errors. (#43)
Fixed
- Fix CEGIS when no symbolic input is present. (#52)
- Fix overlapping
ToSym
andToCon
instances. (#54) - Fix uninterpreted function lowering. (#57, #58)
- Fix CEGIS crash when subsequent solver calls introduces new symbolic constant. (#60)
0.1.0.0 - 2023-01-20
Added
- Initial release for Grisette.