ChangeLog 376 KB
Newer Older
1
2
3
4
5
6
7
8
2011-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	-e means we expect an accepting run.

	* iface/dve2/dve2check.cc: Reverse the value of
	expect_counter_example with respect to the -e/-E options.
	* iface/dve2/dve2check.test: Swap -e and -E.

9
10
11
12
13
14
15
2011-06-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add some "drop shadow" in ltl2tgba.html.

	* wrap/python/ajax/ltl2tgba.html: Add shadow to all boxes.
	* wrap/python/ajax/css/ltl2tgba.css (.shadow): New class.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2011-06-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Revamp the ltl2tgba benchmark.

	* bench/ltl2tgba/algorithms: Reduce the number of Spot configuration
	tested.
	* bench/ltl2tgba/Makefile.am (run, small.txt, big.txt, known.txt):
	New rules.
	* bench/ltl2tgba/big, bench/ltl2tgba/small, bench/ltl2tgba/known:
	Add a 15min timeout to the lbtt configuration.
	* bench/ltl2tgba/defs.in: Adjust variable definitions to accept
	variable inderections.
	* bench/ltl2tgba/parseout.pl: Add an option to output the table in
	LaTeX.  Also consider all formulae, not just the positive
	formulae.
	* bench/ltl2tgba/README: Update.

33
34
35
36
2011-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/tostring.cc (to_spin_string_visitor): Add missing break.

37
38
39
40
41
42
43
44
2011-06-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/spot.in: Touch the directory containing
	the cached result for the requests.  So that it survives
	the browser's cache.
	(finish): Prune the cache only once per hour, and only eraes
	files that are older than 2 hours.

45
46
47
48
49
2011-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/ltl2tgba.html: Add focus on the formula field
	on page load.

50
51
52
53
2011-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Update with recent changes.

54
55
56
57
58
59
60
61
2011-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement cache pruning in the CGI script.

	* wrap/python/ajax/spot.in (finish): Prune the cache once in a
	while.  We rely on hardlinks for garbage collecting the pictures
	and dot sources that may be shared by different requests.

62
63
64
65
66
67
68
69
70
2011-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Cache dot sources in the CGI script.

	* wrap/python/ajax/spot.in (render_dot, render_dot_maybe)
	(render_automaton, render_formula): Cache the dot source, so that
	we do not have to regenerate two pictures from the same contents.
	* wrap/python/spot.i: Typo in the ostringstream declaration.

71
72
73
74
75
76
77
2011-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Output a "Cache-Control:" header in the CGI script.

	* wrap/python/ajax/spot.in: Output a cache-control header, so that
	browsers do no even send two identical requests.

78
79
80
81
82
83
84
85
86
87
88
2011-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Cache results of the spot.py CGI script.

	* wrap/python/ajax/spot.in: Use the QUERY_STRING as a hash key to
	cache the result of the script.  Open stdout without buffering and
	redirect it to a file that we can dump later on cache hits.  Parts
	of this change are extracted from code from Pierre Parutto
	<parutto@lrde.epita.fr>.
	* AUTHORS: Add him.

89
90
91
92
2011-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/genltl.cc (X_n): Fix assertion.

93
94
95
96
2011-06-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/dotty.cc (dotty_visitor): Reorder attributes.

97
98
99
100
2011-06-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/genltl.cc (fair_response): Typo.

101
102
103
104
105
106
107
108
109
110
111
112
2011-06-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	DVE2: Do not display state variables with only one possible value.

	* iface/dve2/dve2.cc (dve2_kripke::dve2_kripke): Fill
	a format_filter_ array with boolean indicating whether each
	variable should be printed.  Ignore variable with only one
	possible value.
	(dve2_kripke::~dve2_kripke): Destroy it.
	(dve2_kripke::format_state): Use it.
	* iface/dve2/finite.test: Adjust.

113
114
115
116
117
118
119
120
121
122
123
124
2011-06-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove Kristin Rozier's LTLcounter.pl scripts, now that we can
	generate these formulae with "genltl".

	* src/tgbatest/ltlcounter/: Remove this directory.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/ltlcounter.test, bench/ltlcounter/run: Use genltl
	to generate the formulae.
	* bench/ltlcounter/README: Do not mention src/tgbatest/ltlcounter/
	anymore.

125
126
127
128
129
130
131
132
2011-06-06  Alexandre Duret-Lutz  <adl@va-et-vient.net>

	Better layout of the LTL formula parse tree.

	* src/ltlvisit/dotty.cc: Display "L" and "R" tail-labels
	for binary operators.  Gather all constants and atomic
	propositions in a sub-graph with "rank=sink".

133
134
135
136
137
138
139
140
141
142
2011-06-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add more formula families to genltl.

	* src/ltltest/genltl.cc (fair_response, ltl_counter)
	(ltl_counter_carry): New functions, constructing function from
	gastin.03.cav and rozier.07.cav.  The LTL counter will replace the
	scripts in src/tgbatest/ltlcounter/.
	(X_n): New helper function.

143
144
145
146
147
148
149
150
151
152
153
154
155
2011-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Install a misc/_config.h to hide all the defines that clutter the
	built output.

	This is also a step towards better checks for things like
	__attribute__ or std::tr1.

	* m4/ax_prefix_config_h.m4: New file.
	* configure.ac: Call AC_CONFIG_HEADERS and AX_PREFIX_CONFIG_H.
	* src/misc/Makefile.am: Install misc/_config.h.
	* src/misc/random.cc, src/misc/version.cc: Include misc/_config.h.

156
157
158
159
160
161
162
2011-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Document the protocol used between ltl2tgba.html and spot.py.

	* wrap/python/ajax/protocol.txt: New file.
	* wrap/python/ajax/Makefile.am (EXTRA_DIST): Add it.

163
164
165
166
2011-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/README: Document state compression.

167
168
169
170
171
172
173
174
175
176
177
178
179
2011-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Update jQuery and jQuery-UI.

	* wrap/python/ajax/ltl2tgba.html: Adjust to use
	jQuery 1.6.1 and jQuery-UI 1.8.13.  Remove a useless check
	of $("#autoupdate").attr("checked") since this checkbox no longer
	exists.
	* wrap/python/ajax/css/ui-lightness/jquery-ui-1.8.8.custom.css:
	Replace by ...
	* wrap/python/ajax/css/ui-lightness/jquery-ui-1.8.13.custom.css: This.
	* wrap/python/ajax/Makefile.am (EXTRA_DIST): Adjust.

180
181
182
183
2011-05-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/dve2.cc: Kill a spurious warning.

184
185
186
187
2011-05-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/wdba/README: Typos.

188
189
190
191
192
193
194
195
2011-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Some intvcomp2 speedups.

	* src/misc/intvcmp2.cc (stream_compression_base::run):
	Implement a shift-less encoding for the 1-bit and 3-bit cases.
	Also declare offsets as size_t, to help 64-bit compilers.

196
197
198
199
200
2011-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/intvcomp.hh, src/misc/intvcmp2.hh: Include stddef.h for
	size_t.

201
202
203
204
2011-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/intvcmp2.cc: Cosmetics to please sanity checks.

205
206
207
208
209
210
211
212
2011-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix compilation error with g++ <= 4.3.

	* src/misc/intvcmp2.cc (int_array_array_compression): Specify full
	type of stream_compression_base<int_array_array_compression> in
	constructor to please g++ versions <= 4.3.

213
214
215
216
217
218
219
220
2011-05-02  Alexandre Duret-Lutz  <adl@va-et-vient.net>

	DVE2: Minor memory compaction.

	* iface/dve2/dve2.cc (dve2_state, dve2_compressed_state): Store
	size and count on 16 bits, and hash on 32 bits, to limit memory
	wasted.

221
222
223
224
225
226
227
2011-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	DVE2: Optionally use the new compression.

	* iface/dve2/dve2.cc, iface/dve2/dve2.hh, iface/dve2/dve2check.cc:
	Add a -Z option and pass it through.

228
229
230
231
232
233
234
235
236
237
2011-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement a new compression inspired from simple-9.

	* src/misc/intvcmp2.cc, src/misc/intvcmp2.hh: New files.
	* src/misc/Makefile.am: Add them.
	* src/tgbatest/intvcmp2.cc: New test.
	* src/tgbatest/Makefile.am: Add it.
	* src/tgbatest/intvcomp.test: Call it.

238
239
240
241
2011-04-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/intvcomp.cc: Low-level fine-tuning.

242
243
244
245
246
247
248
249
250
251
252
2011-04-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix compression of large repetitions

	* src/misc/intvcomp.cc (stream_compression_base::run): Limit
	repeatitions to 40, not 42.
	(stream_decompression_base::refill): Refill the end of the stream
	with 0.
	(stream_decompression_base::look_n_bits): Add assertion.
	* src/tgbatest/intvcomp.cc: Add a new test case.

253
254
255
256
257
258
259
260
261
2011-04-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More interfaces to the int array compression routines.

	* src/misc/intvcomp.cc, src/misc/intvcomp.cc: Add interfaces to
	compress vector<int> to vector<unsigned>.
	* src/tgbatest/intvcomp.cc: Test them.
	* src/sanity/style.test: Refine check to avoid a spurious report.

262
263
264
265
2011-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/dve2.cc: Typo when handling dead==true.

266
267
268
269
270
271
272
273
274
2011-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Always pass --enable-devel or --disable-devel to BuDDy.

	* configure.ac: Do not add CXXFLAGS and CFLAGS in ac_configure_args,
	it causes problem when using config.cache.  Instead ...
	* m4/devel.m4: Add --enable-devel or --disable-devel on
	ac_configure_args, now that BuDDy understands that.

275
276
277
278
279
2011-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/escape.hh: Fix Doxygen documentation.
	* src/misc/intvcomp.hh: Likewise.

280
281
282
283
284
285
286
287
2011-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Move the compression routines into their own *.cc file.

	* src/misc/intvcomp.hh: Move all code...
	* src/misc/intvcomp.cc: ... in this new file.
	* src/misc/Makefile.am: Add invcomp.cc

288
289
290
291
292
293
294
295
296
297
2011-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	DVE2: Use mspool for compressed states.

	* iface/dve2/dve2.cc: Adjust to use the new mspool allocator,
	and get rid of the std::vector used to store compressed states.
	* src/misc/intvcomp.hh: Add an "int* -> int*" interface
	in addition to the "int* -> vector<unsigned>*" interface.
	* src/tgbatest/intvcomp.cc: Test the two interfaces.

298
299
300
301
302
303
304
2011-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a multiple-size memory pool implementation.

	* src/misc/mspool.hh: New file.
	* src/misc/Makefile.am: Add it.

305
306
307
308
2011-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/fixpool.hh: Typo in comment.

309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
2011-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	DVE2: preliminary implementation of compressed states.

	* iface/dve2/dve2.cc (dve2_compressed_state): New class.
	(callback_context): Deal with general state*s, not dve2_state*s.
	(transition_callback_compress): New function.
	(dve2_kripke): Take a compress option.
	(get_init_state, compute_state_condition, succ_iter,
	format_state, state_condition): Handle compressed states.
	(get_vars, compute_state_condition_aux): New helper methods.
	* iface/dve2/dve2.hh (load_dve2): Add a compress option.
	* iface/dve2/dve2check.cc: Add a -z option.
	* iface/dve2/finite.test, iface/dve2/dve2check.test: Add more
	tests.

325
326
327
328
329
330
331
332
333
2011-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Preliminary implementation of an int array compressor.

	* src/misc/intvcomp.hh: New file.
	* src/misc/Makefile.am: Add it.
	* src/tgbatest/intvcomp.cc, src/tgbatest/intvcomp.test: New files.
	* src/tgbatest/Makefile.am: Add them.

334
335
336
337
338
339
340
341
342
343
2011-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix two spurious segfaults in test cases for the Python interface.

	* wrap/python/tests/setxor.py, wrap/python/tests/bddnqueen.py:
	Clean all used bdd variables before calling bdd_done(), so that
	bdd_delref() is never called after bdd_done().  In NDEBUG builds,
	bdd_delref() does not check whether the BuDDy is running or not,
	and calling it after bdd_done() will crash.

344
345
346
347
2011-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Add an example for using callgrind.

348
349
350
351
352
2011-04-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/dve2check.cc (main): Catch out-of-memory errors
	during emptiness check or counterexample generation.

353
354
355
356
357
2011-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc: Use
	a fixed-size memory pool for product_state instances.

358
359
360
361
362
2011-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/dve2.cc: Use a fixed-size memory pool for dve2_state
	instances and their variables.

363
364
365
366
367
368
369
2011-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a fixed-size memory pool implementation.

	* src/misc/fixpool.hh: New file.
	* src/misc/Makefile.am (misc_HEADERS): Add fixpool.hh.

370
371
372
373
2011-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING (command): Some notes about link-time optimizations.

374
375
376
377
378
2011-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: Pass CXXFLAGS/CFLAGS/CPPFLAGS debug/optimization
	settings to sub configure.

379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
2011-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduct a down_cast macro.

	* src/misc/casts.hh: New file.
	* src/misc/Makefile.am: Add it.
	* iface/dve2/dve2.cc, iface/gspn/gspn.cc, iface/gspn/ssp.cc,
	src/evtgba/explicit.cc, src/evtgba/product.cc, src/misc/casts.hh,
	src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/taatgba.cc,
	src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.cc,
	src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
	src/tgba/tgbakvcomplement.cc, src/tgba/tgbaproduct.cc,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
	src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/wdbacomp.cc,
	src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/reductgba_sim.cc,
	src/tgbaalgos/reductgba_sim_del.cc: Use down_cast when
	appropriate.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
397
398
399
400
401
402
403
404
405
406
2011-03-31  Alexandre Duret-Lutz  <adl@va-et-vient.net>

	Cosmetics.

	* src/sanity/style.test: Catch some binary operators not
	delimited with spaces.
	* src/tgbaalgos/bfssteps.cc, src/tgbaalgos/magic.cc,
	src/tgbaalgos/reducerun.cc, src/tgbaalgos/se05.cc,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: Fix these.

407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
2011-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make state_explicit instances persistent objects.

	* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh: Merge
	state_explicit and tgba_explicit::state.  In the past,
	state_explicit was a small object encapsulating a pointer to the
	persistent tgba_explicit::state; and we used to clone() and
	destroy() a lot of state_explicit instance.  Now state_explicit is
	persistent, and clone() and destroy() have no effects.
	* src/tgba/tgbareduce.cc: Adjust, since this inherits from
	tgbaexplicit and uses the internals of state_explicit.
	* src/tgbatest/reductgba.cc: Fix deletion order for automata.
	* src/tgba/tgba.hh (last_support_conditions_input_,
	last_support_variables_input_): Make these protected, so
	they can be zeroed by tgba_explicit.

424
425
426
427
428
429
430
431
2011-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove tgba_reduc::format_state().

	* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh (format_state):
	Remove this useless copy of the tgba_explicit_string::format_state
	method.

432
433
434
435
436
437
438
439
440
2011-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Protect the state destructor.

	Client code should always call the destroy() method instead.  (It
	was introduced in Spot 0.7.)

	* src/tgba/state.hh (state::~state): Make it protected.

441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
2011-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup tgba_product when one of the argument is a Kripke structure.

	The gain is not very impressive.  The runtime of the first example
	in iface/dve2/README (also in dve2check.test) is 15% faster.

	* src/tgba/tgbaproduct.hh (tgba_succ_iterator_product): Move ...
	* src/tgba/tgbaproduct.cc (tgba_succ_iterator_product,
	tgba_succ_iterator_product_common): ... in these two classes.
	(tgba_succ_iterator_product_kripke): New class to speedup
	successor computation on Kripke structures.  We can assume that
	all the transitions leaving the same state have the same label.
	(tgba_product::tgba_product, tgba_product::succ_iter): Use
	tgba_succ_iterator_product_kripke when appropriate.
	(tgba_product_init::tgba_product_init): Adjust for the case
	where tgba_product did reverse its operands.

459
460
461
462
2011-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/dve2check.cc: Remove stray debug output.

463
464
465
466
2011-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbaproduct.hh: Do not include statebdd.hh.

467
468
469
470
471
472
473
474
475
476
2011-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Include <cstddef> in python modules to workaround Swig bug.

	* wrap/python/spot.i, wrap/python/buddy.i: Include <cstddef>
	because Swig 2.0.2 uses ptrdiff_t and does not do the include
	itself.  In g++ most libstdc++ standard headers have been changed
	to no longer include <cstddef> as an implementation detail, so
	the difference shows.

477
478
479
480
2011-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* THANKS: Add Michael Weber for his help on the DiVinE interface.

481
482
483
484
2011-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/genltl.cc (syntax): Typos in the help text.

485
486
487
488
489
490
491
492
493
2011-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Improve a reduction rule for "a M b".

	* src/ltlvisit/reduce.cc (reduce_visitor): Always reduce "a M b"
	to "a & b" if "a" is a pure eventual formula, remove the
	constraint on "b".
	* src/ltltest/reduccmp.test: Add two tests.

494
495
496
497
2011-03-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent changes to dotty_reachable.

498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
2011-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for finite behaviors in the DVE interface.

	* iface/dve2/dve2.hh (load_dve2): Take a "dead" argument.
	* iface/dve2/dve2.cc (callback_context): Add a destructor
	to simplify...
	(dve2_succ_iterator::~dve2_succ_iterator) ... this one.
	(convert_aps): Skip the dead proposition.
	(dve2_kripke::dve2_kripke): Take a dead argument, and
	setup alive_prop and dead_prop.
	(compute_state_condition, get_succ): Use a cache for the
	conditions and successor of the last state, to share
	some work between these two function.  Add loops on dead
	states.
	(load_dve2): Pass dead to dve2_kripke and convert_aps.
	* iface/dve2/dve2check.cc: Add a -dDEAD option.
	* iface/dve2/finite.test, iface/dve2/finite.dve: New file.
	* iface/dve2/Makefile.am: Declare them.

518
519
520
521
522
2011-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/dve2.cc (convert_aps): Fix two typos while
	parsing >= and >, mistakenly registered as <= and <.

523
524
525
526
527
528
529
530
531
2011-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove the Nips interface.

	* NEWS: Mention it.
	* configure.ac, README: Remove it.
	* iface/Makefile.am (SUBDIRS): Remove nips.
	* iface/nips/: Delete this directory.

532
533
534
535
536
537
538
539
540
2011-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Accept "P_0 == CS" as synonym for "P_0.CS" in the dve2 interface.
	Suggested by Yann Thierry-Mieg.

	* iface/dve2/dve2.cc (convert_aps): Allow string on the right
	of operators, and look them up.
	* iface/dve2/dve2check.test: Test this syntax.

541
542
543
544
545
546
547
548
549
2011-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add some tests for the DVE2 interface.

	* iface/dve2/defs.in, iface/dve2/dve2check.test,
	iface/dve2/beem-peterson.4.dve: New files.
	* iface/dve2/Makefile.am: Add them.
	* configure.ac: Generate iface/dve2/defs.

550
551
552
553
554
555
556
2011-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Clear the timer map to help valgrind.

	* src/misc/timer.hh (reset_all): New method.
	* iface/dve2/dve2check.cc: Use it to help valgrind.

557
558
559
560
561
562
563
2011-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Some documentation of about the dve2 interface.

	* iface/dve2/README: New file.
	* NEWS: Mention it.

564
565
566
567
568
2011-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/dve2.cc, iface/dve2/dve2check.cc: Cosmetic changes
	to please sanity checks.

569
570
571
572
573
574
575
576
577
2011-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Call divine to compile dve models.

	* iface/dve2/dve2.cc (compile_dve2): New function.  Compile
	the *.dve source if there is no newer *.dve2C already.
	(load_dve2): Call compile_dve2 when given a *.dve file.
	* iface/dve2/dve2.hh (load_dve2): Document it.

578
579
580
581
582
583
584
585
586
587
588
589
2011-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Allow atomic propositions and identifiers like `X.Y'.

	* src/ltlparse/ltlscan.ll: Do not recognize `.' as an AND.  Allow
	it in atomic propositions.
	* src/evtgbaparse/evtgbascan.ll, src/tgbaparse/tgbascan.ll: Accept
	`.' in identifiers.
	* src/misc/bareword.cc (is_bareword): Accept `.' inside
	barewords, so that there is no need to quote `X.Y'.
	* src/ltltest/parse.test: Do not use `.' as and operator..

590
591
592
593
594
595
596
2011-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Augment dve2check to perform LTL model checking.

	* iface/dve2/dve2check.cc: Add many option to perform
	emptiness check and other debugging tasks.

597
598
599
600
601
602
603
604
2011-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Teach the DVE2 interface about enumerated types.

	* iface/dve2/dve2.cc (convert_aps): Add support for
	enumerated types.  E.g. an atomic proposition such
	as "P_0.CS" really means "P_0 == CS".

605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
2011-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Teach the DVE2 interface about atomic propositions such as "a <=
	10" or "b != 3".  This only work for integer variables presently.

	* iface/dve2/dve2.hh (load_dve2): Take an atomic_prop_set
	argument to indicate the AP to observe.
	* iface/dve2/dve2.cc (convert_aps): New function.  Parse the
	atomic propositions in format them in a prop_set structure that
	will allow fast generation of the state condition.
	(load_dve2): Call convert_aps, and pass the resulting prop_set
	structure to the kripke object.
	(dve2_kripke::dve2_kripke): Store the prop_set structure.
	(dve2_kripke::~dve2_kripke): Release the prop_set, and unregister
	the bdd_variable associated to it.
	(compute_state_condition): New method that uses the prop_set.
	(succ_iter, state_condition): Call compute_state_condition().
	* iface/dve2/dve2check.cc: Adjust the call to load_dve2 to
	pass it atomic propositions read from the command line.

625
626
627
628
629
630
631
632
633
2011-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Display states variables in the state label.

	* iface/dve2/dve2.cc (dve2_kripke::dve2_kripke): Retrieve
	the name of all the state variables.
	(dve2_kripke::format_state): Use them to format the name
	of the state.

634
635
636
637
638
639
640
641
642
643
644
645
2011-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	We can now explore a divine2 compiled model, but the atomic
	properties are still missing.

	* iface/dve2/dve2.cc, iface/dve2/dve2.hh: Add
	classes for presenting the DiVinE2 model as a kripke object.
	(load_dve2): Load the *.dve2C file using libltdl.
	* iface/dve2/Makefile.am: Add a dve2check program.
	* iface/dve2/dve2check.cc: New file.  Currently it just
	outputs the reachability graph using dotty.

646
647
648
649
650
651
652
653
654
655
656
657
2011-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Setup libltdl in ltdl/, so we can use it in the dve2 interface.

	Don't keep it under version control since it is installed by
	autoreconf.

	* configure.ac: Call LT_CONFIG_LTDL_DIR and LTDL_INIT.
	* README: Mention ltdl/.
	* Makefile.am: Recurse into ldtl.
	* iface/dve2/Makefile.am: Link with it.

658
659
660
661
662
663
664
665
666
667
2011-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Setup build system for a new dve2 interface.

	* iface/dve2/dve2.cc, iface/dve2/dve2.hh: New dummy files.
	* iface/dve2/Makefile.am: New file.
	* iface/Makefile.am (SUBDIRS): Add dve2.
	* configure.ac: Build iface/dve2/Makefile.
	* README: Mention the new directory.

668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
2011-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Using double borders for acceptance states in SBAs.

	* src/tgbaalgos/dotty.hh (dotty_reachable): Take a new
	assume_sba argument.
	* src/tgbaalgos/dotty.cc (dotty_bfs): Take a new
	mark_accepting_states arguments.
	(dotty_bfs::process_state): Check if a state is accepting using
	the state_is_accepting() method for tgba_sba_proxies, or by
	looking at the first outgoing transition of the state.  Pass
	the result to the dectorator.
	(dotty_reachable): Adjust function.
	* src/tgbaalgos/dottydec.hh, src/tgbaalgos/dottydec.cc,
	src/tgbaalgos/rundotdec.hh, src/tgbaalgos/rundotdec.cc
	(state_decl): Add an "accepting" argument, and use it to
	decorate accepting states with a double border.
	* src/tgbatest/ltl2tgba.cc: Keep track of whether the output
	is an SBA or not, so that we can tell it to dotty().
	* wrap/python/ajax/spot.in: Likewise.
	* wrap/python/cgi-bin/ltl2tgba.in: Likewise.

690
691
692
693
2011-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/genltl.cc (GF_n): Really use "op".

694
695
696
697
698
2011-03-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/spot.in: Use the degeneralized automaton if
	available while computing the emptiness check.

699
700
701
702
703
704
705
706
2011-03-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup build_result() called by minimize_dfa().

	* src/tgbaalgos/minimize.cc (build_result): Speed it up by
	removing one useless loop, creating many duplicate transitions
	that had to be merged.

707
708
709
710
2011-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/genltl.cc: Add 10 more LTL formula classes.

711
712
713
714
2011-02-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/bdddict.hh: Add more documentation.

715
716
717
718
2011-02-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/escape.hh: Correct documentation.

719
720
721
722
723
724
725
726
2011-02-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Correct tgba_explicit::compute_support_conditions.

	* src/tgba/tgbaexplicit.cc (tgba_explicit::compute_support_conditions):
	Fix logic.  This function has always been returning bddtrue instead
	of the actual computed value...

727
728
729
730
731
732
733
734
735
2011-02-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Enable VERBOSE logs for nips, greatspn, and python tests.

	* wrap/python/tests/run.in, iface/nips/nipstest/defs.in,
	iface/gspn/defs.in: Do not disable VERBOSE when running from "make
	check".  Since we have started using parallel-check on 2009-08-31,
	we should always send verbose output to the log.

736
737
738
739
740
741
742
743
2011-02-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	This should finally fix kv.test and dotty.test on the LIP6 buildfarm.

	* src/tgbatest/kv.test, iface/nips/nipstest/dotty.test: Don't rely
	on the ${DOT-...} syntax, because DOT is always set and might be
	set to the empty value.

744
745
746
747
2011-02-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING (Running coverage tests): New section.

748
749
750
751
752
753
754
755
756
757
2011-02-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Previous patch did not work on MacOS X, and I don't have shell
	access to that host.

	* src/tgbatest/kv.test: Use ${DOT-true} instead of ${DOT-:}.  I
	don't know, the MacOS shell must be mixing the syntaxes for
	${DOT:-} and ${DOT-:}.
	* iface/nips/nipstest/dotty.test: Likewise

758
759
760
761
762
763
764
2011-02-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Avoid running "dot" when it is not installed...

	* src/tgbatest/kv.test: Do not run dot if it is not installed.
	* iface/nips/nipstest/dotty.test: Likewise

765
766
767
768
769
770
771
2011-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add some tricks into HACKING.

	* README: Typo.
	* HACKING: s/CVS/GIT/ and add some tricks about libtool and doxygen.

772
773
774
775
776
777
778
2011-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust the WDBA test to count for sub-transitions.

	* bench/wdba/run: Use -kt to count sub-transitions.
	* bench/wdba/README: Adjust comments.

779
780
781
782
783
784
785
2011-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a spurious g++ warning observed on Darwin builds.

	* src/tgba/taatgba.cc (taa_succ_iterator::taa_succ_iterator):
	Initialize iterator i to silence a spurious g++ warning on Darwin.

786
787
788
789
2011-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: s/gnit/gnu so that we can use 0.7.1a as a version.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
790
791
792
793
2011-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typos.

794
795
796
797
2011-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 0.7.1a

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
798
799
800
801
802
803
804
2011-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 0.7.1.

	* NEWS: Update for 0.7.1.
	* configure.ac: Bump version to 0.7.1.

805
806
807
808
809
810
811
2011-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Generalize patch from 2011-02-03 by allowing guards like "! (...)".

	* src/neverparse/neverclaimscan.ll: Allow space between ! and (.
	* src/tgbatest/neverclaimread.test: Add space for testing.

812
813
814
815
816
817
818
819
2011-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup scc_filter on tgba_explicit_number automata.

	* src/tgbaalgos/sccfilter.cc (scc_filter): If the input automaton
	is an instance of tgba_explicit_number, create a similar automaton
	for output, instead of a tgba_explicit_string.

820
821
822
823
824
825
826
827
2011-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Document the new operators in the on-line tools.

	* wrap/python/ajax/ltl2tgba.html: Mention Goal's ~, -->, and <-->
	operators.
	* wrap/python/cgi-bin/ltl2tgba.in: Likewise.

828
829
830
831
832
833
834
835
2011-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a segfault in WDBA minimization.

	* src/tgbaalgos/minimize.cc (build_result, minimize_dfa,
	minimize_wdba): Correctly handle (i.e. ignore) useless states.
	* src/tgbatest/ltl2tgba.test: Add two more tests.

836
837
838
839
840
841
842
843
2011-02-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix call to scc_filter in the CGI script.

	* wrap/python/ajax/spot.in: Do full scc_filter for TGBA (-R3f),
	and keep some extra acceptance conditions (-R3) when
	degeneralizing.  The converse was done.

844
845
846
847
848
2011-02-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/cgi-bin/ltl2tgba.in: Fix python error occurring
	only when the user did not make any error...

849
850
851
852
853
854
855
2011-02-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Prevent Spot from using an installed BuDDy version that does not
	have the latest function we added.  Reported by Kristin Rozier.

	* m4/buddy.m4 (AX_CHECK_BUDDY): Check for bdd_setxor.

856
857
858
859
860
861
862
863
864
865
866
2011-02-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a way to count the number of sub-transitions.

	* src/tgbaalgos/stats.hh (tgba_sub_statistics): New class.
	(sub_stats_reachable): New function.
	* src/tgbaalgos/stats.cc (sub_stats_bfs): New class.
	(tgba_sub_statistics::dump, sub_stats_reachable): New function.
	* src/tgbatest/ltl2tgba.cc (-kt): New option.
	* src/tgbatest/ltl2tgba.test: Use -kt.

867
868
869
870
871
872
873
874
875
876
877
2011-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Read guard of the form !(x) in neverclaims.

	So far all neverclaims encountered would use (!(x)), but the
	files from the Büchi store do not.

	* src/neverparse/neverclaimscan.ll: Accept ! in front of guard,
	so that we can read Promela files from Goal's Büchi store.
	* src/tgbatest/neverclaimread.test: Test it.

878
879
880
881
882
883
884
885
886
2011-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Recognize Goal's syntax for Boolean operators.

	* src/ltlparse/ltlscan.ll: Recognize ~, -->, and <--> operators
	from Goal, to ease the use of formulas provided by the Goal team.
	* src/ltltest/equals.test: Use these once, just to be on the
	safe side.

887
888
889
890
891
892
893
894
2011-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Minor fixes to ltl2tgba.html.

	* wrap/python/ajax/css/ltl2tgba.css,
	wrap/python/ajax/ltl2tgba.html: Tweak a few things for Firefox
	3.0, and fix a </li> tag.

895
896
897
898
2011-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 0.7a.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
899
900
901
902
903
904
2011-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 0.7.

	* NEWS, configure.ac: Bump version to 0.7.

905
906
907
908
2011-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltl2tgba.test: Fix previous test case.

909
910
911
912
913
914
915
916
2011-01-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fixup minimize_monitor().

	* src/tgbaalgos/minimize.cc (minimize_monitor): Fix typo yielding
	incorrect monitor if the input tgba is not deterministic.
	* src/tgbatest/ltl2tgba.test: Add test case.

917
918
919
920
921
922
923
924
2011-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Report formulas that are both safety and guarantee.

	* src/tgbatest/ltl2tgba.cc (-O): Report formulas that are both
	safety and guarantee.
	* src/tgbatest/obligation.test: Add cases.

925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
2011-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rename is_safety_automaton() as is_guarantee_automaton() and
	implement is_safety_mwdba().

	Note: I swapped the name of safety and guarantee when I
	implemented is_safety_automaton() on 2010-03-20.  Fortunately,
	is_safety_automaton() was only used where is_guarantee_automaton()
	would have been correct.

	* src/tgbaalgos/safety.cc (is_guarantee_automaton): Rename as ...
	(is_guarantee_automaton): ... this.
	(is_safety_mwdba): New function.
	* src/tgbaalgos/safety.hh: Adjust and add documentation.
	* src/tgbaalgos/minimize.cc: Use is_guarantee_automaton() instead
	of is_safety_automaton().
	* src/tgbatests/safety.test: Rename as ...
	* src/tgbatests/obligation.test: ... this, and augment the
	test.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/ltl2tgba.cc (-O): Display whether a formula
	represent a safety, guarantee, or obligation property.
	* NEWS: Adjust.

949
950
951
952
2011-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Minor rewritings.

953
954
955
956
957
958
959
960
961
962
963
964
2011-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Replace delete by destroy in comments dealing with states.

	* src/tgba/succiter.hh, src/tgba/tgba.hh,
	src/tgba/tgbabddconcrete.hh, src/tgba/tgbaproduct.hh,
	src/tgba/tgbaunion.hh, src/tgbaalgos/bfssteps.hh,
	src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/explscc.hh,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/replayrun.cc,
	src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh: Update comments
	to say that we "destroy" a state instead of "deleting" it.

965
966
967
968
969
970
971
972
2011-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Update gspn interface for recent tools.

	* iface/gspn/ssp.cc: Use the new destroy() interface, and
	fix a couple of recent g++ reports.
	* iface/gspn/gspn.cc: Adjust to newer g++.

973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2011-01-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce a destroy() method on states, and use it instead of delete.

	Right now, destroy() just executes "delete this".  But in a later
	version, we will rewrite tgba_explicit so that it does not
	allocate new states (and the destroy() method for explicit state
	will do nothing).

	* src/tgba/state.hh (state::destroy): New method, to replace
	state::~state() in the future.
	(shared_state_deleter): New function.
	* src/evtgba/product.cc, src/evtgbaalgos/reachiter.cc,
	src/evtgbaalgos/save.cc, src/evtgbaalgos/tgba2evtgba.cc,
	src/tgba/tgba.cc, src/tgba/tgbaproduct.cc, src/tgba/tgbareduc.cc,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
	src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/wdbacomp.cc,
	src/tgbaalgos/cutscc.cc, src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/explscc.cc,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/nsheap.cc,
	src/tgbaalgos/gv04.cc, src/tgbaalgos/magic.cc,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/ndfs_result.hxx,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/powerset.hh,
	src/tgbaalgos/reachiter.cc, src/tgbaalgos/reducerun.cc,
	src/tgbaalgos/reductgba_sim.cc,
	src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/replayrun.cc,
	src/tgbaalgos/safety.cc, src/tgbaalgos/save.cc,
	src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
For faster browsing, not all history is shown. View entire blame