Changelog for code-conjure-0.5.4
Changelog for (Code) Conjure
v0.5.4
This has been the "dev" version after v0.5.2 for almost a couple of years:
- report invalid theories-from-testing
- weed-out some redundant candidates:
- add and use
isRedundantDefn
- update how deconstructions are handled
- add and use
- add (but not use)
conjureSize
toConjurable
v0.5.2
- show number of tested candidates
- complete
Conjurable
derivation functions - reference related work on README
- add switch to unique-modulo-testing candidates (slow) to allow computing the near upper/lower limit on pruning
v0.5.0
- allow synthesizing/conjuring from properties with
conjureFromSpec
; - complete Haddock documentation;
- remove several unused functions;
- add stub
conjurableDerive
functions; - Makefile: add targets to run GPS(2) and TerpreT benches.
v0.4.4
- remove need for explicit deconstructions:
- use
-
and1
instead ofdec
; - allow
mod
anddiv
as deconstructions;
- use
- bump Express requirement to v1.0.6 (bugfix);
- complete the GPS1 benchmark;
- add GPS2 and TerpreT benchmarks;
- minor fixes in the README.
v0.4.2
- default to using top-level patterns on generated functions;
- memoize function evaluation;
- double-check theory at the end and report warning on incorrect properties;
- add
prif
toConjure
; - simplify deconstructor discovery and add
conjureSize
toConjurable
; - add
cevaluate
,ceval
andcvl
toConjure.Conjurable
; - add
bench/gps
andbench/lowtests
; - improve tests and benchmarks.
v0.4.0
- background primitives are now provided with
pr
andprim
. - report number of rules used in pruning
- require Express v1.0.4 and Speculate v0.4.12
- allow
..
notation - add benchmarks, replicate, subset, p12, p30 and candidates
- add and use the
Defn
type andconjureDefns
- minor changes in benchmarks
- cleanup unused code
v0.3.6
- add switch for descending recursions
to allow generation of
gcd
- refactor recursion generation (replace a hole later)
- change
conjpureWith
to takeArgs
- rename two args fields to
maxBodyRecursions
andmaxEvalRecursions
at this point, the old names were misnomers.
v0.3.4
- reallow recursions under
&&
and||
(simplifies the generatedor
,and
,set
andelem
functions) - only require deconstructions on a non-empty subset of arguments
(allows
fib01
to be produced) - limit number of terminal evaluations in
recursiveToDynamic
- fix bug in
recursiveToDynamic
(not counting some recursions) - add 4 new benchmarks:
count
,gcd
,tree
andsetelem
v0.3.2
- significant runtime reduction in several benchmarks, e.g.:
- take is now reachable in about 5 seconds
- improved candidate generation:
- faster runtime
- fewer redundant/invalid candidates
- limit recursive calls to use deconstructors
- test to find deconstructors automatically
- improve recursion evaluation method (
revaluate
replacesrecursexpr
) - add fibonacci benchmark
- minor:
- record runtimes with one decimal place instead of two
- add longshot benchmark
- add intercalate to the list benchmark
- add stub
Conjure.Constructors
module
v0.3.0
- only automatically include an
if
for the return type of the given function - add the
take-drop
benchmark - make bottom-up enumeration more type directed
v0.2.8
- export the
A
,B
,C
,D
,E
andF
helper types
v0.2.6
- require Express v0.1.10 due to
hasHole
being now exported there - require Eq result on
conjure1
,conjure2
andconjure3
- code cleanup and more tests
v0.2.4
- allow conjuring from specifications in addition to partial definitions
(
conjure1
,conjure2
,conjure3
and related functions) - improve examples
- improve criteria for automatic primitive inclusion:
- only include
if :: ... -> Bool
if there areBool
primitives - include
False
andTrue
automatically only on Speculate's background
- only include
- add code-optional candidate nubbing and debug functions
v0.2.2
- by default, search for 60 argument combinations among 100000 enumerated combinations
v0.2.0
- search until 100% match is found and exit
- other misc changes
v0.1.2
For the changelog of earlier versions, check the git commit history.