Bugs resolved by this commit: #314, #322, #359, #364, #365.
authorMorgan Deters <mdeters@gmail.com>
Sun, 8 Jul 2012 17:36:50 +0000 (17:36 +0000)
committerMorgan Deters <mdeters@gmail.com>
Sun, 8 Jul 2012 17:36:50 +0000 (17:36 +0000)
commitc0dcc5ff59473a45864f818cfdda037c0ee4ea12
treefba897c7bea5f5a12b65c0818b7c5260f48e0070
parent8b01efc32d61391d8d3cd2aaac0de49cd8e88ecc
Bugs resolved by this commit: #314, #322, #359, #364, #365.
See below for details.

* Fix the "assert" name-collision bug (resolves bug #364).

  Our identifiers should never be named "assert", as that's a preprocessor
  definition in <assert.h>, which is often #included indirectly (so simply
  having a policy of not including <assert.h> isn't good enough---one of
  our dependences might include it).  It was once the case that we didn't
  have anything named "assert", but "assert()" has now crept back in.
  Instead, name things "assertFoo()" or similar.  Thanks to Tim for the
  report.

  To fix this, I've changed some of Dejan's circuit-propagator code from
  "assert()" to "assertTrue()".  Ditto for Andy's explanation manager.
  Guys, if you prefer a different name in your code, please change it.

* Fix the incorrect parsing of lets in SMT-LIBv2 parser (resolves bug #365).
  Inner lets now shadow outer lets (previously, they incorrectly gave an
  error).  Additionally, while looking at this, I found that a sequential let
  was implemented rather than a parallel let.  This is now fixed.  Thanks to
  Liana for the report.

* Remove ANTLR parser generation warnings in CVC parser (resolves bug #314).

* There were a lot of Debug lines in bitvectors that had embedded toString()
  calls.  This wasted a LOT of time in debug builds for BV benchmarks
  (like in "make regress").  Added if(Debug.isOn(...)) guards; much faster
  now.

* Support for building public-facing interface documentation only (as opposed
  to all internals documentation).  Now "make doc" does the public-facing and
  "make doc-internals" does documentation of everything.  (Along with changes
  to the nightly build script---which will now build and publish both types
  of Doxygen documentation---this resolves bug #359).

* Fix the lambda typechecking bug (resolves bug #322).  Thanks to Andy for the
  report (a long long time ago--sorry).

* The default output language for all streams is now based on the current set
  of Options (if there is one).  This has been a constant annoyance, especially
  when stringstreams are used to construct output.  However, it doesn't work
  for calls from outside the library, so it's mainly an annoyance-fixer for
  CVC4 library code itself.

* Add some CVC4_UNUSED markers to local variables in theory_arith.cpp that
  are used only in assertions-enabled builds (and thus give warnings in
  production builds).  This was briefly discussed at the meeting this week.
31 files changed:
Makefile
Makefile.builds.in
config/doxygen.cfg
doc/find_public_interface.sh [new file with mode: 0644]
src/expr/expr_template.h
src/expr/node_manager.cpp
src/expr/type_properties_template.h
src/main/driver.cpp
src/parser/cvc/Cvc.g
src/parser/smt2/Smt2.g
src/prop/theory_proxy.cpp
src/smt/smt_engine.cpp
src/theory/arith/theory_arith.cpp
src/theory/booleans/circuit_propagator.cpp
src/theory/booleans/circuit_propagator.h
src/theory/builtin/theory_builtin_type_rules.h
src/theory/bv/bitblast_strategies.cpp
src/theory/bv/cd_set_collection.h
src/theory/datatypes/explanation_manager.h
src/theory/datatypes/theory_datatypes.cpp
src/theory/theory_engine.cpp
src/theory/uf/theory_uf_type_rules.h
src/util/hash.h
src/util/options.cpp
src/util/options.h
test/regress/regress0/Makefile.am
test/regress/regress0/bug322.cvc [new file with mode: 0644]
test/regress/regress0/bug322b.cvc [new file with mode: 0644]
test/regress/regress0/bug365.smt2 [new file with mode: 0644]
test/regress/regress0/datatypes/rec2.cvc
test/regress/regress0/parallel-let.smt2 [new file with mode: 0644]