changes.txt
Author: Christoph Csallner
2005-06-14 started
====================================================================

0.8.4
+ Added option to RaGTestRunner to suppress any exception thrown
by a method transitively called by the method under test:
-directCallOnly

0.8.4
+ Added option to CnC to search for explicitly thrown exceptions:
-explicitException

0.8.1
+ Use utilMDE/MathMDE from Daikon 4.1.4.
The most recent version (Daikon 4.1.6) contains Java 5 constructs,
which causes ESC to abort with a parse error.

0.8.1
+ Use daikon/Quant.java from Daikon 4.1.4.
The most recent version (Daikon 4.1.6) contains Java 5 constructs,
which causes ESC to abort with a parse error.

0.8.0
+ Cleaned up build.xml. Use libraries like BCEL from the Daikon distribution.

0.7.85
+ Prepare a version for experiments: Daikon-CnC vs. Daikon-Eclat.

0.7.67
+ Clean up verbose output

0.7.61
+ Compile CnC with Java 1.5.
Note that the testee still needs to be compiled with Java 1.4.

0.7.58
+ Print value parsing warnings if in -counterexample mode
+ All warnings/logs printed by Out.verbose or Out.debug

0.7.57
+ Recompile sources after annotating them, so execution has new line numbers
+ Print all error messages to System.out to be in sync with ESC's output

0.7.56
+ Support JML types bigint and real (like ESC: long and double)
[groovy-cnc-0.7.56-2005-09-13-1626-no-more-parse-errors.zip]

0.7.54
+ Better reporting of exceptions thrown by parse actions

0.7.53
+ Added to syntax: completed array construction constructs
+ No more syntax errors on Groovy subject 
[groovy-cnc-0.7.53-2005-09-13-1018-no-more-syntax-errors.zip]

0.7.52
+ Added to syntax: (+ |size:199.8| intLast 1)
+ Less redundancy in debug output (-counterexample)

0.7.51
+ Added to syntax: (is (_array |T_java.lang.Object|) T_double)
+ More liberal definition of IDENTESC

0.7.43
Fix parse errors:
+ Reflected in ParseFct1.getCreateSpecializeParam that 
Class[] is a subtype of Object[] in ESC/Java.
I assume (A <: B) ==> (A[] <: B[])
+ Added |getClass#| as a synonym for typeof (within our constraint solving).
+ Added nested typeof.

0.7.42
+ FilteringTestCase.dispatchException uses PreciseCallStack (which uses BCEL)
to map stack trace information to a precise method signature.

0.7.41
+ AnnotateWeakerVisitor adds methods and constructors that do not
have params to the list of the methods with preconditions.

0.7.40
+ FilteringTestCase.dispatchException bypasses JCrasher's exception heuristic
if the method called by the test case has a Daikon-inferred precondition.

0.7.39
+ AnnotateWeakerVisitor creates a list of methods that have a precondition

0.7.20
+ Moved package-name stripping into the plan hierarchy 

0.7.17
+ Refactored edu.gatech.cc.jcrasher.generator.CodeWriterImpl
	to not import junit packages

0.7.16
+ Removed mentionings of current package name from test cases in
	edu.gatech.cc.jcrasher.plans.blocks.BlockImpl.toString()

0.7.10
+ Moved exception-trimming to 
	edu.gatech.cc.junit.framework.GroupedTestFailure.trace()

0.7.9
+ More descriptive summary output in edu.gatech.cc.junit.textui.RaGTestRunner
+ Strip last five lines from exception output in RaGTestRunner

0.7.8
+ Annotate daikon.Quant.size(Collection) as well

0.7.0
+ Annotate daikon.Quant.size with JML specification:
  daikon.VarInfoName.SizeOf.java_family_impl(..) inserts ``Quant.size(..)''

0.6.47
+ Preset an empty array and null for each array type

0.6.46
+ Prefer  chains that do not have any null
  over    chains that use null
  over    null

0.6.45
+ Pass info whether null is allowed recursively through methods:
  edu.gatech.cc.jcrasher.plans.compute.TypeNeededNode.TypeNeededNode(..)

0.6.43
+ Removed some seemingly redundant plans from PresetPlans
+ Added String for Comparable in PresetPlans
  
0.6.42
+ Added new Vector(), new Hashtable() to PresetPlans
+ edu.gatech.cc.cnc.Main.MAX_PLAN_RECURSION = 1
  Otherwise too many confusing method calls

0.6.41
+ Moved JCrasher's preset plans to edu.gatech.cc.jcrasher.plans.PresetPlans
+ Added new Object(), Object.class to PresetPlans

0.6.40
+ edu.gatech.cc.jcrasher.plans.PlanForMethod: added outer () for: (new Victim())
+ Object.class as default plan for Class.

0.6.38
+ edu.gatech.cc.cnc.Main.MAX_PLAN_RECURSION = 2
  Should give us less NPE while creating the needed instances

0.6.37
+ Use new Object() in 80%, null in 20% of cases where Object required

0.6.33
+ --ppt-select-pattern for Chicory and Daikon

0.6.32
+ Split daikon.analyze into Chicory and Daikon task

0.6.31
+ Made execution directory of inferee configurable via build.xml
+ Execute JUnit only if CnC has generated test cases 

0.6.30
+ Ignore exit(1) of JUnit in daikon/Chicory
+ Invoke target java runtime with 256 MB instead of 128 MB in daikon/Chicory

0.6.27
+ Added edu/gatech/cc/junit/CreateJUnitAll, which creates a JUnitAll.java
calling all test suites found for the project in the file system.

0.6.25
+ Added a generic test-suite that collects all compiled Test classes:
edu/gatech/cc/junit/CollectingTestSuite

0.6.24
+ Separated generated binaries from testee binaries

0.6.20
+ Added manifest from Daikon

0.6.19
+ Daikon 4.1.4, which fixes
daikon.tools.jtb.AnnotateVisitor: Assignable in pure function
daikon.tools.jtb.Ast: Annotation within statement
--std-vis added
--premain added

0.6.13
+ Use BCEL from Daikon distribution as Daikon requires Java 1.5

0.6.8
+ Support annotation of mutliple testees
+ Moved compilation from testee's build.xml tasks to use.xml

0.6.7
+ Removed buggy JDK specifications: java/util/SortedMap, java/net/URL

0.6.4
+ Disabled all invariants that do not have a JML spec:
Vast majority of Daikon invariants, disabled via daikon-config.txt

0.6.3
+ Changed from Eclat's runtime filter to daikon-config.txt
+ Added following flags to Daikon //reason [Daikon manual section]
--omit_from_output 0r //``safe to use the 0 and r omissions'' [4.1]
--conf_limit 1 //``Larger values yield stronger filtering'' [4.2]

0.6.2
+ Removed pureInJML hack from daikon.tools.jtb.AnnotateVisitor.insertModifies
as ESC/Java2 complains about assignable \everything in pure methods.

0.6.1
+ Analyze only testee: --ppt-select-pattern=testee
(which drastically increased Daikon's efficiency)

0.5.41
+ Turn off that ESC warns if Daikon-inferred invariant violated.

0.5.40
+ ESC warns if Daikon-inferred invariant violated.
+ Keep all debug information (removed debuglevel parameters).

0.5.39
+ Incorporate Michael Ernst's fix of daikon.tools.jtb.Ast.

0.5.38
+ use.xml backs up the annoated sources

0.5.33
+ Parameterize how to modify pre- and post-conditions

0.5.32
+ Changed to Daikon 4.1.3

0.5.31
+ Use Eclat's invariant filter daikon.tools.runtimechecker.InstrumentVisitor

0.5.29
+ use.xml calls AnnotateWeaker with --weaken switch

0.5.23
+ Contains modified daikon.tools.jtb.AnnotateVisitor (members now protected).

0.5.21
+ Use same Daikon command line options as Eclat 1.1

0.5.20
+ Optional use of Daikon to infer invariants and annotate the testees
  (if infer-from-execution set to test suite to be observed).
+ Archive daikon.out and Daikon-annotated sources.
+ Delete Daikon-generated files.

0.5.18
+ Added ChicoryPremain.jar to classpath in use.xml, why do we need this?

0.5.16
+ Package Daikon 4.1.2

0.5.15
+ Compile with Java 1.5

0.5.12
+ Support: |o:54.65.41%2|

0.5.11
+ Fixed constant parsing in edu.gatech.cc.cnc.ParseFct2: 
r2VarConst, r2ConstVar, r2rAppConst
+ Refactoring as suggested by Eclipse to eliminate hiding of fields.

0.5.10
+ Support: |equals##state#java.lang.Object|

0.5.9
+ CnC distribution contains this file.
+ Corrected to |F_-Infinity|

0.5.8
+ Use ESC/Java 2.0a8
+ Support: _array, T_real, T_bigint, T_anytype, T_.TYPE, C_
+ Default to use ESC's JML specs of the JDK.

0.5.1
+ Distribution renamed to cnc-VERSION.jar
+ build.xml works on a single source tree (eliminated redundant Eclipse tree).

0.4.10
+ Used for experiments in final ICSE 2005 paper.
+ Added license.
+ Fixed bug in CodeWriterImpl.

0.4.0
+ Ant-based, refactored, bugfixes.

0.3.7 
+ Used for experiments in inital ICSE 2005 submission.
