Changelog for code-conjure-0.5.2
Changelog for (Code) Conjure
0.5.2
- show number of tested candidates
- complete
Conjurablederivation 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
conjurableDerivefunctions; - Makefile: add targets to run GPS(2) and TerpreT benches.
v0.4.4
- remove need for explicit deconstructions:
- use
-and1instead ofdec; - allow
modanddivas 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
priftoConjure; - simplify deconstructor discovery and add
conjureSizetoConjurable; - add
cevaluate,cevalandcvltoConjure.Conjurable; - add
bench/gpsandbench/lowtests; - improve tests and benchmarks.
v0.4.0
- background primitives are now provided with
prandprim. - 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
Defntype 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
conjpureWithto takeArgs - rename two args fields to
maxBodyRecursionsandmaxEvalRecursionsat this point, the old names were misnomers.
v0.3.4
- reallow recursions under
&&and||(simplifies the generatedor,and,setandelemfunctions) - only require deconstructions on a non-empty subset of arguments
(allows
fib01to be produced) - limit number of terminal evaluations in
recursiveToDynamic - fix bug in
recursiveToDynamic(not counting some recursions) - add 4 new benchmarks:
count,gcd,treeandsetelem
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 (
revaluatereplacesrecursexpr) - 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.Constructorsmodule
v0.3.0
- only automatically include an
iffor the return type of the given function - add the
take-dropbenchmark - make bottom-up enumeration more type directed
v0.2.8
- export the
A,B,C,D,EandFhelper types
v0.2.6
- require Express v0.1.10 due to
hasHolebeing now exported there - require Eq result on
conjure1,conjure2andconjure3 - code cleanup and more tests
v0.2.4
- allow conjuring from specifications in addition to partial definitions
(
conjure1,conjure2,conjure3and related functions) - improve examples
- improve criteria for automatic primitive inclusion:
- only include
if :: ... -> Boolif there areBoolprimitives - include
FalseandTrueautomatically 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.