Commit graph

6 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
6d9d35c985 acc: turn some assertions into exceptions
* spot/misc/bitset.cc, spot/misc/bitset.hh (set, clear):
Turn asserts into exceptions.
* spot/twa/acc.hh (mark_t): As a consequence, the
constructor is not noexcept anymore.
* tests/core/acc.cc, tests/python/except.py: More tests.
2018-05-26 09:44:18 +02:00
Alexandre Duret-Lutz
b12eb0508f fix and check shifting issue
The exception raised by << and >> when shifting mark_t by too many
bits are only enabled in SPOT_DEBUG, as those operations are quite
low-level.  However we were always testing them, and although we
wanted them to be active in Python, it was not always the case.

* spot/twa/acc.hh: introduce max_accsets() as
a static constexpr method, so we can see it in Python.
* spot/misc/bitset.hh: Fix preprocessing directive
so the check is actually enabled when compiling the Python
bindings.
* bin/autcross.cc, bin/autfilt.cc, bin/ltlcross.cc: Use max_accsets().
* tests/core/acc.cc: Comment out the shifting exception when
SPOT_DEBUG is unset.
* tests/python/except.py: Make sure the exception is always raised in
Python.
2018-05-25 16:08:00 +02:00
Maximilien Colange
5b9088006c a few improvements to mark_t
* spot/misc/bitset.hh: add methods set() and clear()
* spot/twa/acc.hh: deprecate comparison of mark_t with unsigned, and
  rely more on biset for efficiency
2018-05-25 11:42:43 +02:00
Alexandre Duret-Lutz
cc2c4615d0 bitset: optimize the code generated by shifts in common cases
* spot/misc/bitset.hh: Here.
* spot/misc/bitset.cc: New file.
* spot/misc/Makefile.am: Add it.
* spot/twa/acc.hh: Conditionally remove the exception checks around
shift operators.
* spot/misc/common.hh (SPOT_ASSUME): New macro.
2018-05-24 19:23:48 +02:00
Maximilien Colange
c6c085ab22 various fixes to bitset
* spot/misc/bitset.hh: here
* tests/core/acc.cc: test it
2018-05-23 10:02:43 +02:00
Maximilien Colange
d77d046d26 a new bitset class with static size
* spot/misc/bitset.hh: implement it
* spot/misc/Makefile.am: distribute it
2018-05-22 09:54:19 +02:00