ChangeLog 286 KB
Newer Older
1
2
3
4
5
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/reduc.cc (main): Fix harmless memory leak introduced
	today.

6
7
8
9
10
11
12
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix taa_tgba_formula's destructor.

	* src/tgba/taatgba.cc (taa_tgba_formula::~taa_tgba_formula):
	Really destroy all formulae, not only half of them.

13
14
15
16
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/randtgba.cc: Do not include <string> twice.

17
18
19
20
21
22
23
24
25
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup reduc.test by not spawning one process per formula.

	* src/ltltest/reduc.cc: Add an option -f to read a lost of
	formulae from a file.  Running a process for each formula was
	too slow.  Also add an option -h to hide reduced formulae.
	* src/ltltest/reduc.test: Simplify accordingly.

26
27
28
29
30
31
32
33
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Move the last test from emptchk.test to emptchke.test.

	* src/tgbatest/emptchk.test: Move the newly added test ...
	* src/tgbatest/emptchke.test: ... here, with other explicit test.
	Also test more algorithms.

34
35
36
37
38
39
40
41
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a memory leak in Cou99 statistics.

	* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::acss_states):
	Delete the iterator after using it.
	* src/tgbatest/emptchkr.test: Run 'randtgba -z' with valgrind too.

42
43
44
45
46
47
48
49
50
51
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a longstanding bug in our implementation of GV04.

	* src/tgbaalgos/gv04.cc (push): Fix the tracking of the accepting
	link.  This bug was discovered on a random generated graph with
	a complex accepting cycle.
	* src/tgbatest/emptchk.test: Add the troublesome graph as
	test case.

52
53
54
55
56
57
58
59
2010-01-20  Damien Lefortier <dam@lrde.epita.fr>

	When iterating a hash_map, be careful not to delete i->first
	before doing ++i to avoid memory issues.

	* src/tgba/taatgba.cc, src/tgba/taatgba.hh,
	src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh: Fix them.

60
61
62
63
64
65
66
67
68
69
70
71
2010-01-20  Damien Lefortier <dam@lrde.epita.fr>

	Minor fixes to compile with GCC 3.3

	* src/ltlast/automatop.cc, src/ltlast/automatop.hh: Rename nfa as
	get_nfa to avoid a name clash with the `nfa' class.
	* src/ltlvisit/clone.cc, src/ltlvisit/nenoform.cc,
	src/ltlvisit/tostring.cc, src/tgbaalgos/eltl2tgba_lacim.cc: Use
	get_nfa instead of nfa.
	* src/tgba/tgbasafracomplement.cc: Don't use a
	const_reverse_iterator.

72
73
74
75
76
77
78
79
80
81
2010-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove some non-determinism in random_graph()

	* src/tgbaalgos/randomgraph.cc (random_graph): Revert the part of
	the patch from 2007-02-06 which silently replaced the use of state
	index by state pointers.  Storing states pointer in this map cause
	some non-determinism because of the memory layout.  It was almost
	impossible to reproduce bugs found by tests based on randtgba.

82
2010-01-19  Damien Lefortier <dam@lrde.epita.fr>
83
84
85

	* src/tgbaalgos/ltl2taa.cc: Fix the previous patch.

86
87
88
89
90
91
92
2010-01-18  Damien Lefortier <dam@lrde.epita.fr>

	* src/tgba/taatgba.cc, src/tgba/taatgba.hh: Fix memory issues
	occuring when labels are pointers.
	* src/tgbaalgos/ltl2taa.cc: Fix a bug.
	* src/tgbatest/ltl2tgba.cc: Fix a bug.

93
94
95
96
2010-01-16  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	* src/saba/sabacomplementtgba.cc: Fix a bug.

97
98
99
100
101
102
103
104
105
2010-01-16  Damien Lefortier <dam@lrde.epita.fr>

	Use taa_tgba_formula instead of taa_tgba_string in ltl_to_taa to
	speed up a little the translation.

	* src/tgbaalgos/ltl2taa.cc: Adjust.  Also fix a bug with
	acceptance conditions in all_n_tuples.
	* src/tgba/taatgba.cc, src/tgba/taatgba.hh: Adjust.

106
107
108
109
110
111
112
113
114
115
116
117
118
119
2010-01-16  Damien Lefortier <dam@lrde.epita.fr>

	Introduce taa_tgba_labelled<label> so that we can build
	taa_tgba instances labelled by other objects than strings
	in the same way Alexandre did for tgba_explicit.

	* src/tgba/taatgba.cc, src/tgba/taatgba.hh: Split taa_tgba in two
	levels: taa_tgba with no label and taa_tgba_labelled templated by
	the type of the label.  Define taa_tgba_string (with the interface
	of the former taa_tgba class) and taa_tgba_formula for future use
	in ltl2taa.cc.
	* src/tgbaalgos/ltl2taa.cc, src/tgbatest/taatgba.cc: Adjust to use
	taa_tgba_string.

120
121
122
123
124
125
2010-01-06  Damien Lefortier <dam@lrde.epita.fr>

	Fix a longstanding bug reported by Guillaume Sadegh.

	* src/eltlparse/eltlscan.ll: Fix a typo.

126
127
128
129
130
131
132
133
134
2010-01-05  Damien Lefortier <dam@lrde.epita.fr>

	Merge eltl2tgba.cc into ltl2tgba.cc.

	* src/tgbatest/eltl2tgba.cc: Remove.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/ltl2tgba.cc: New option: -xltl to translate an
	extended LTL instead of an LTL, a feature previously offered by
	eltl2tgba.cc. Also: -R3b to use delete_unaccepting_scc.
135
	* src/tgbatest/spotlbtt.test, src/tgbatest/eltl2tgba.test: Adjust.
136

137
138
139
140
141
142
2009-11-10  Damien Lefortier <dam@lrde.epita.fr>

	* src/tgba/tgbabddcoredata.cc (delete_unaccepting_scc): Fix a bug.
	* src/tgbatest/spotlbtt.test: Use the above function with LaCIM
	for ELTL which greatly reduce the size of the automata!

143
144
145
146
2009-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/timer.hh (timer::timer): Initialize running...

147
148
149
150
151
2009-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/Makefile.am (SUBDIRS): Fix missing ".", mistakenly removed
	by previous patch.

152
153
154
155
156
157
158
159
160
161
162
163
2009-11-30  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	An algorithm to complement TGBA into SABA.

	* src/saba/sabacomplementtgba.hh,
	src/saba/sabacomplementtgba.cc: New.  The algorithm.
	* src/saba/Makefile.am: Adjust.
	* src/sabatest/sabacomplementtgba.cc, src/sabatest/Makefile.am,
	src/sabatest/defs.in: New.  Test the algorithm.
	* configure.ac, src/Makefile.am: Adjust to the new directory
	`sabatest'.

164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
2009-11-30  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	Add a new type of automata: State-labeled Alternating Bchi
	Automata (SABA).

	* src/saba/saba.hh, src/saba/saba.cc, src/saba/sabastate.hh,
	src/saba/sabasucciter.hh: New.  Interface for
	SABA (State-labeled Alternating Bchi Automata).
	* src/saba/explicitstateconjunction.cc,
	src/saba/explicitstateconjunction.hh: New.  Default
	implementation for a conjunction of states.
	* src/saba/Makefile.am: New.
	* src/Makefile.am, configure.ac: Adjust.
	* src/sabaalgos/sabareachiter.cc,
	src/sabaalgos/sabareachiter.hh: New.  Iterate over all reachable
	states of a spot::saba.
	* src/sabaalgos/sabadotty.cc, src/sabaalgos/sabadotty.hh: New.
	Print reachable states in dot format.
	* src/sabaalgos/Makefile.am: New.

184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
2009-11-27  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	Rename the class taa as taa_tgba.

	* src/tgba/taa.cc, src/tgba/taa.hh: Rename as ...
	* src/tgba/taatgba.cc, src/tgba/taatgba.hh: ... these, and
	rename the class taa as taa_tgba.
	* src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh,
	src/tgbaalgos/Makefile.am: Adjust.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/taa.test: Rename as ...
	* src/tgbatest/taatgba.test ... this.
	* src/tgbatest/taa.cc: Rename as ...
	* src/tgbatest/taatgba.cc ... this, and adjust.

199
200
201
202
203
2009-11-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltl2tgba.cc (main): Fix typo to re-enable
	reductions by simulation.

204
205
206
207
208
2009-11-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* m4/buddy.m4 (AX_CHECK_BUDDY): Check for bdd_satprefix, the
	latest function added to BuDDy.

209
210
211
212
213
2009-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltl2tgba.cc (main): Stop the SCC timer.  I mean
	really stop it!

214
215
216
217
218
219
220
221
222
223
224
225
2009-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Detect running timers, and stop a timer in ltl2tgba.

	* src/misc/timer.hh (time_info::running): New attribute.
	(time_info::start, time_info::stop): Update and check
	time_info::running.
	* src/misc/timer.cc (timer_map::print): Mark running timers with
	a "+" in the output.
	* src/tgbatest/ltl2tgba.cc (main): Rename the name of the timers
	for SCC and simulation reduction, and actually stop the SCC timer.

226
227
228
229
230
2009-11-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/sccfilter.cc (create_transition): Do not clone
	the same node twice when dealing with loops.

231
232
233
234
235
236
237
238
2009-11-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use bdd_satprefix() to speedup minato on BDDs that are almost cubes.

	* src/misc/minato.cc (minato_isop::minato_isop): Call bdd_satprefix.
	(minato_isop::next): Avoid useless intermediate variables.
	* src/misc/minato.hh: Typo in comments.

239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
2009-11-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Specialize scc_filter when handling tgba_explicit_formula automata.

	If the input is a tgba_explicit_formula we can output a
	tgba_explicit_formula too, and we want to do that because it is
	more space efficient.

	* src/tgba/tgbaexplicit.hh (get_label): New method.
	* src/tgbaalgos/sccfilter.cc (create_transition): New function,
	to handle tgba_explicit_formula and tgba_explicit_string output
	differently.
	(filter_iter): Template it on the output tgba type, and adjust
	to call create_transition.
	(scc_filter): Use filter_iter<tgba_explicit_formula> or
	filter_iter<tgba_explicit_string> depending on the input tgba
	type.

257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
2009-11-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Strip useless acceptance conditions in scc_filter().

	A useless acceptance conditions is one that is always implied by
	another.

	* src/misc/bddop.hh, src/misc/bddop.cc
	(compute_neg_acceptance_conditions): New function.
	* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
	(set_acceptance_conditions): New function.
	* src/tgbaalgos/scc.cc (build_map, build_scc_stats, dump_scc_dot):
	Keep track of useful acceptance conditions.
	(useful_acc_of): New function.
	* src/tgbaalgos/scc.hh (scc_stats, scc_map::scc::useful_scc): New
	attributes.
	* src/tgbaalgos/sccfilter.cc (filter_iter): Adjust to filter
	useless acceptance conditions.
	(scc_filter): Compute useful acceptance conditions and pass them
	to filter_iter.

278
279
280
281
282
2009-11-20  Alexandre Duret-Lutz  <adl@va-et-vient.net>

	* src/tgbaalgos/sccfilter.cc (scc_filter): Merge transitions
	after removing acceptance conditions.

283
284
285
286
287
288
289
290
291
292
2009-11-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove prune_scc(), prune_acc(), and related fonctions.

	* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh (prune_scc,
	prune_acc, remove_component, compute_scc, remove_acc,
	is_not_accepting, delete_scc, is_terminal, remove_scc,
	display_scc): Remove anything related to the simplification of
	SCCs.

293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
2009-11-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Replace prune_scc() by scc_filter().

	prune_scc() leaked memory and failed to remove chains of useless SCCs.

	* src/tgbaalgos/reductgba_sim.cc (reduc_tgba_sim): Call
	scc_filter() instead of prune_scc(), and do it before running
	any simulation-based reduction.
	* src/tgbaalgos/reductgba_sim.hh (reduc_tgba_sim): Return a const
	tgba*.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/reductgba.cc: Call
	scc_filter() instead of prune_scc().
	* src/tgbatest/scc.test: Add two more tests that failed with
	prune_scc().

309
310
311
312
313
314
315
316
2009-11-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Quick implementation of a "useless SCC" filter using scc_map.

	* src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccfilter.cc: New
	files.
	* src/tgbaalgos/Makefile.am: Add them.

317
318
319
320
321
322
323
324
325
326
327
328
2009-11-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix acceptance check in scc_map: trivial SCCs are not accepting.
	Also compute useless SCCs.

	* src/tgbaalgos/scc.cc (scc_map::scc::trivial): New field.
	(scc_stats::useless_scc_map): New field.
	* src/tgbaalgos/scc.cc (scc_map::build_map): Mark SCCs that are
	not trivial.
	(scc_map::accepting): Always return false for trivial SCC.
	(build_scc_stats): Fill in useless_scc_map.

329
330
331
332
333
334
335
336
337
338
339
2009-11-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make it easy to filter states while iterating over an automaton.

	* src/tgbaalgos/reachiter.hh (tgba_reachable_iterator::want_state):
	New method.
	* src/tgbaalgos/reachiter.cc (tgba_reachable_iterator::want_state):
	Implement it.
	(tgba_reachable_iterator::run): Call want_state before processing
	a state.

340
341
342
343
344
345
346
2009-11-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/cutscc.cc (cut_scc): Pass `s' by reference instead
	of by pointer.
	* src/tgbaalgos/cutscc.cc, src/tgbaalgos/cutscc.hh: Fix copyright
	header.

347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
2009-11-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Replace the hash key construction of LTL formulae by a simple
	counter updated each time we create a new (unique) formula.

	Doing so saves a lot of memory during the translation of the
	ltlcounter formulae, because the formulae are quite big and
	storing a string representation of each formula on its node was a
	bad idea.  For instance with n=12, the translation now uses 40MB
	where it used 290MB.  (Note: in both cases, 20MB is being used by
	the BDD cache.)

	* src/ltlast/formula.hh (hash_key_): Rename as ...
	(count_): ... this.
	(hash): Adjust.
	(max_count): New static variable to count the number of
	formulae created.
	(formula): Update max_count and set count_.
	(dump): Make it a virtual pure method.
	(set_key_): Remove.
	(formula_ptr_less_than): Speed up and return false when
	the two formula pointer are equal.
	* src/ltlast/formula.cc (set_key_, dump): Remove.
	* src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
	src/ltlast/automatop.cc, src/ltlast/automatop.hh,
	src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/constant.cc,
	src/ltlast/constant.hh, src/ltlast/multop.cc,
	src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh:
	Empty the constructor (do not precompute the dump_ anymore),
	and add a dump() implementation.

378
379
380
381
382
383
384
385
2009-11-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use -l wherever we where expecting ltl2tgba to default to LaCIM.

	* bench/ltl2tgba/algorithms: Use -l for all LaCIM invocations.
	* src/tgbatest/dupexp.test, src/tgbatest/emptchk.test,
	src/tgbatest/spotlbtt.test: Likewise.

386
387
388
389
390
391
392
393
2009-11-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Cleanup the help of ltl2tgba.

	* src/tgbatest/ltl2tgba.cc (syntax): Reorganize the help text, so
	that we can find options without resorting to grep...  Also
	cleanup the program name if it is a libtool wrapper.

394
395
396
397
398
399
400
401
2009-11-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltl2tgba.cc (-l): New option to select the lacim
	translation.  It still is the default translation.
	(opt_fm, opt_taa): Replace these two variables by ...
	(translation): ... this enum.  And use a switch to call the
	correct translation.

402
403
404
405
406
407
2009-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove python bindings for ltl::clone and ltl::destroy.

	* wrap/python/spot.i: Do not include clone.hh and destroy.hh.

408
409
410
411
412
413
414
2009-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Typo from a previous patch.

	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Fix a typo
	introduced three patches ago in the handling of unobserved events.

415
416
417
418
419
420
421
422
423
424
425
426
427
2009-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Do not comment states in the never claim by default.  It takes too
	much time when the formula is large, and it is useless when the
	purpose is model-checking with Spin.

	* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Add the
	comments option.
	* src/tgbaalgos/neverclaim.cc (never_claim_bfs,
	never_claim_reachable): Honor the comment option.
	* src/tgba/tests/ltl2tgba.cc (-N): Do not comment states.
	(-NN) New option to output a commented never claim.

428
429
430
431
432
433
434
2009-11-10  Damien Lefortier <dam@lrde.epita.fr>

	* src/tgba/taa.cc, src/tgba/taa.hh: Fix it.
	* src/tgbaalgos/ltl2taa.cc: Do NOT use the same bdd_dict for both
	the translation and the language containment checker.
	* src/tgbatest/spotlbtt.test: Update TAA related tests.

435
436
437
438
439
440
441
442
443
444
445
446
2009-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use tgba_explicit_formula instead of tgba_explicit_string in FM.

	This gives a nice speedup (>1.4) in the ltlcounter benchmark,
	because we no longer have to generate a copy the string
	representations of the LTL formulae.

	* src/tgbaalgos/ltl2tgba_fm.cc: Adjust.  Also get rid of the
	formulae_seen map, since we can now ask the tgba_explicit_formula
	if it knows the state.

447
448
449
450
451
452
453
2009-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Ease debugging of LTL formulae leaks.

	* src/tgbatest/ltl2tgba.cc: Dump all LTLinstances with their
	reference count.

454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
2009-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce tgba_explicit_labelled<label> so that we can build
	tgba_explicit instances labelled by other objects than strings.

	* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
	Split tgba_explicit in two levels: tgba_explicit with unlabelled
	states, and tgba_explicit_labelled templated by the type of
	the label.  Define tgba_explicit_string (with the interface
	of the former tgba_explicit class) and tgba_explicit_formula
	for future use in ltl2tgba.cc.
	* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
	src/tgbaalgos/cutscc.cc, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/emptiness.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
	src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
	src/tgbatest/explicit.cc, src/tgbatest/ltl2tgba.cc: Adjust to
	use tgba_explicit_string when appropriate.

473
474
475
476
477
478
2009-11-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Do not use the Boost macro from the Autoconf macro archive.

	* m4/boost.m4: Rewrite like I already did in Vaucanson.

479
480
481
482
483
2009-11-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltlcounter.test (run): Do not run with n=12, as
	the test case might become too slow for the autobuilder.

484
485
486
487
488
489
490
491
492
493
494
2009-11-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a benchmark using Kristin Y. Rozier's LTLcounter scripts.

	* bench/ltlcounter/README, bench/ltlcounter/run,
	bench/ltlcounter/plot.gnu, bench/ltlcounter/defs.in,
	bench/ltlcounter/Makefile.am: New files.
	* bench/Makefile.am (SUBDIRS): Add ltlcounter.
	* configure.ac (AC_CONFIG_FILES): Adjust.
	* THANKS: Add her.

495
496
497
498
499
500
2009-11-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use a timer to clock the different phases of the translation.

	* src/tgbatest/ltl2tgba.cc: Add option -T.

501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
2009-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Deprecate ltl::destroy(f) in favor of f->destroy()

	* src/ltlast/formula.cc, src/ltlast/formula.hh (formula::clone):
	Transform this static function into a member function.
	* src/ltlvisit/destroy.hh (destroy): Document and declare as
	deprecated.
	* bench/split-product/cutscc.cc, iface/gspn/ltlgspn.cc,
	src/eltlparse/eltlparse.yy, src/eltltest/acc.cc,
	src/evtgbaalgos/tgba2evtgba.cc, src/evtgbatest/ltl2evtgba.cc,
	src/ltlast/automatop.cc, src/ltlast/binop.cc,
	src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlenv/declenv.cc,
	src/ltlenv/declenv.hh, src/ltlparse/ltlparse.yy,
	src/ltltest/equals.cc, src/ltltest/randltl.cc,
	src/ltltest/readltl.cc, src/ltltest/reduc.cc,
	src/ltltest/syntimpl.cc, src/ltltest/tostring.cc,
	src/ltlvisit/destroy.cc src/ltlvisit/basicreduce.cc,
	src/ltlvisit/contain.cc, src/ltlvisit/reduce.cc,
	src/ltlvisit/syntimpl.cc, src/tgba/bdddict.cc,
	src/tgba/bddprint.cc, src/tgba/taa.cc,
	src/tgba/tgbabddconcretefactory.cc, src/tgba/tgbaexplicit.cc,
	src/tgba/tgbafromfile.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/neverclaim.cc,
	src/tgbaalgos/randomgraph.cc, src/tgbaparse/tgbaparse.yy,
	src/tgbatest/complementation.cc, src/tgbatest/eltl2tgba.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
	src/tgbatest/mixprod.cc, src/tgbatest/randtgba.cc,
	src/tgbatest/reductgba.cc, wrap/python/cgi/ltl2tgba.in,
	wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
	wrap/python/tests/ltlsimple.py: Adjust destroy() usage, and remove
	the #include "destroy.hh" when appropriate.

535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
2009-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Deprecate ltl::clone(f) in favor of f->clone().

	* src/ltlvisit/clone.hh (clone): Document and declare as deprecated.
	* src/ltlast/formula_tree.cc, src/ltlvisit/basicreduce.cc,
	src/ltlvisit/clone.cc, src/ltlvisit/contain.cc,
	src/ltlvisit/lunabbrev.cc, src/ltlvisit/reduce.cc,
	src/ltlvisit/syntimpl.cc, src/tgba/bdddict.cc,
	src/tgba/formula2bdd.cc, src/tgba/tgbabddconcretefactory.cc,
	src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbatest/complementation.cc, wrap/python/tests/ltlsimple.py:
	Adjust clone() usage, and remove the #include "clone.hh" when
	appropriate.

550
551
552
553
554
555
556
2009-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make it possible to clone const formulae.

	* src/ltlast/formula.hh, src/ltlast/formula.cc (clone): Declare
	as const.

557
558
559
560
561
562
563
564
565
566
567
568
569
2009-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rename formula::ref and formula::unref as formula::clone
	and formula::destroy.

	* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
	src/ltlast/binop.cc, src/ltlast/formula.hh, src/ltlast/formula.cc,
	src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlenv/declenv.cc,
	src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc,
	src/ltlvisit/destroy.cc, src/ltlvisit/nenoform.cc,
	src/ltlvisit/randomltl.cc, src/ltlvisit/reduce.cc,
	src/tgbatest/randtgba.cc: Adjust.

570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
2009-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Change the way references are counted to speedup cloning.

	Before this patch, every time you cloned a formula, the clone
	visitor would recurse into the entire AST to increment the
	reference count of all nodes.  When running ltl2tgba_fm on
	the formula generated by "LTLcounterLinear.pl 8", approx 27% of
	the time was spent in the clone visitor.

	After this patch, cloning a formula is just an increment of the
	reference count of the top node.  Children are decremented only
	when the top node's ref count is decremented to zero.  With this
	change, clone() and destroy() become constant time, the
	ltl2tgba_fm spend only 0.01% of the time cloning formulae.


	* src/ltlast/automatop.cc (~automatop): Decrement children.
	(instance): Decrement children if the instance already exists.
	* src/ltlast/binop.cc, src/ltlast/multop.cc, src/ltlast/unop.cc:
	Likewise.
	* src/ltlvisit/clone.cc (clone): Simplify, now we only need to
	call ref().
	* src/ltlvisit/destroy.cc (destroy): Simplify, now we only need
	to call unref().
	(destroy_visitor): Remove, no longer needed.

597
598
599
600
601
602
603
604
605
606
607
2009-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make it easier to debug reference counts in LTL nodes.

	* src/ltlast/automatop.cc, src/ltlast/automatop.hh,
	src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/multop.cc,
	src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh:
	Add a dump_instance() static method to all class.
	* src/ltltest/readltl.cc: Add option -r to dump all instances
	with their reference count, after parsing and after deletion.

608
609
610
611
612
613
614
615
616
617
2009-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Better types for instance maps.

	* src/ltlast/unop.hh (map): Use unop* as values.
	* src/ltlast/binop.hh (map): Use binop* as values.
	* src/ltlast/multop.hh (map): Use multop* as values.
	* src/ltlast/automatop.hh (paircmp): Rename as tripletcmp.
	(map): Use automaton* as values, not formula*.

618
619
620
621
622
623
624
625
626
627
628
629
2009-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add missing instance_count() in automatop and eltl2tgba.

	* src/ltlast/automatop.hh, src/ltlast/automatop.cc: Add missing
	instance_count() functions.
	* src/tgbatests/eltl2tgba.cc: Add missing instance_count()
	assertions at the end.
	* src/tgbatests/ltl2tgba.cc: Also call automatop::instance_count(),
	even if automatop are not used in ltl2tgba yet.  This way we won't
	forget once eltl2tgba and ltl2tgba are merged.

630
631
632
633
2009-11-07  Damien Lefortier <dam@lrde.epita.fr>

	* src/tgba/taa.cc, src/tgbatest/taa.cc: Adjust.

634
635
636
637
638
639
2009-11-07  Damien Lefortier <dam@lrde.epita.fr>

	* src/tgba/taa.cc, src/tgba/taa.hh: Speed up the cartesian product
	in taa_succ_iterator and allow multiple initial states in taa.
	* src/tgba/ltl2taa.cc: Remove temporary printing.

640
641
642
643
644
645
646
647
648
649
2009-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix ltlcounter.test for VPATH builds and n > 2.

	* src/tgbatest/defs.in (srcdir): Adjust from VPATH builds.
	* src/tgbatest/ltlcounter.test (lcdir): Adjust definition to
	new value of $srcdir.
	(run): Fix setting of $run after $n = 2.  Using run=: would in
	fact disable all the big tests...

650
651
652
653
654
655
2009-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltlcounter.test (run): Only construct small
	formulae (i.e. n<=2) under valgrind.  The test case is too
	slow otherwise.

656
657
658
659
660
661
662
2009-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix spurious failure of style.test.

	* src/sanity/style.test: Make sure sh does not abort when read
	exits with false.

663
664
2009-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

665
	Fix a longstanding bug reported by Kristin Y. Rozier.
666
667
668
669
670
671
672
673

	* src/ltlast/formula.hh (formula_ptr_less_than::operator()):
	Fix a typo where `l' was typed as `1'.
	* src/tgbatest/ltlcounter/: New files from Kristin Y. Rozier.
	* src/tgbatest/ltlcounter.test: New
	* src/tgbatest/Makefile.am (TESTS): Add ltlcounter.test.
	(EXTRA_DIST): Add files in ltlcounter/.

674
675
676
677
678
679
680
2009-11-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix the help text of ltl2tgba.

	* src/tgbatest/ltl2tgba.cc (syntax): Add missing std::endl
	before -taa.  Remove -r8 and -fr8, since they do not exist.

681
682
683
684
685
686
687
2009-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbacomplement.cc (state_complement): Remove the copy
	constructor.  It does the same thing as the default copy
	constructor, and g++ 4.2.3 complained that the copy constructor
	of spot::state was not called.  Reported by Denis Poitrenaud.

688
689
690
691
692
693
2009-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlast/formula_tree.cc (instanciate, arity): Add a useless
	return 0 at the end to prevent g++ 4.2.3 from complaining about
	a missing return.  Reported by Denis Poitrenaud.

694
695
696
697
2009-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/kv.test: Don't run valgrind on dot!

698
699
700
701
702
703
704
705
706
2009-10-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Escape labels in -KV output.

	* src/tgbaalgos/scc.cc (dump_scc_dot): Escape labels and other
	strings output between quote in dot.
	* src/tgbatest/kv.test: New file.
	* src/tgbatest/Makefile.am (TESTS): Add it.

707
708
709
710
2009-10-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/ltl2tgba_fm.cc: Typos.

Damien Lefortier's avatar
Damien Lefortier committed
711
712
713
714
715
716
717
718
719
720
721
722
723
2009-10-22  Damien Lefortier <dam@lrde.epita.fr>

	Improve ltl_to_taa.

	* src/tgba/taa.cc, src/tgba/taa.hh: taa_succ_iterator is not
	on-the-fly anymore allowing some redundant transitions to be
	removed. Also a new function to output a TAA.
	* src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh: Add the
	refined rules from Tauriainen.
	* src/tgbatest/ltl2tgba.cc: Use -c to activate refined rules in
	ltl_to_taa.
	* src/tgbatest/spotlbtt.test: More tests.

Damien Lefortier's avatar
Damien Lefortier committed
724
725
726
727
728
729
2009-10-17  Damien Lefortier <dam@lrde.epita.fr>

	Fix make check in sanity.

	* src/tgba/taa.cc, src/tgbaalgos/ltl2taa.cc: Fix style.

Damien Lefortier's avatar
Damien Lefortier committed
730
731
732
733
734
735
736
737
738
739
740
2009-10-16  Damien Lefortier <dam@lrde.epita.fr>

	Minor fixes.

	* src/misc/bddop.hh, src/tgba/taa.hh, src/tgbaalgos/ltl2taa.hh:
	Fix sanity (incorrect include guard).
	* src/tgba/tgbacomplement.cc, src/tgba/tgbacomplement.hh:
	Copyright 2009.
	* src/tgbaalgos/eltl2tgba_lacim.cc: Use abbreviations.
	* src/tgbatest/taa.cc: Fix it.

741
742
743
744
745
746
747
748
2009-10-16  Damien Lefortier <dam@lrde.epita.fr>

	Add a new algorithm (from Tauriainen) to translate LTL formulae to
	TGBA which uses TAA as an intermediate representation.  This is a
	basic version, optimizations and enhancements will come later.

	* src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh: The algortihm.
	* src/tgbaalgos/Makefile.am: Adjust.
Damien Lefortier's avatar
Damien Lefortier committed
749
	* src/tgbatest/ltl2tgba.cc: New option: -taa, which uses this new
750
751
752
	translation algorithm.
	* src/tgbatest/spotlbtt.test: Add ltl2tgba -taa.

753
754
755
756
757
758
759
760
761
762
763
764
2009-10-04  Damien Lefortier <dam@lrde.epita.fr>

	Add a class to represent Transition-based Alternating Automata (TAA).

	* misc/Makefile.am, misc/bbop.cc, misc/bddop.hh: Factorize some
	code on BDDs to compute all_acceptance_conditions from
	neg_acceptance_condition.
	* src/tgba/Makefile.am, src/tgbatest/Makefile.am: Adjust.
	* src/tgba/taa.cc, src/tgba/taa.hh: The TAA class.
	* src/tgba/tgbaexplicit.hh: Use the factorized code in bddop.hh.
	* src/tgbatest/taa.cc, src/tgbatest/taa.test: Some test cases.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
765
766
767
768
769
2009-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Damien Lefortier, Guillaume Sadegh, and Flix
	Abecassis.

770
771
772
773
774
775
776
777
778
2009-10-01  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	The sgba proxy adds an acceptance condition to every states when
	the original automaton has no acceptance condition.

	* src/tgba/tgbasgba.cc, src/tgba/tgbasgba.hh: New option:
	when the original automaton has no accepting condition, it
	explicitly considers that every state is accepting.

779
780
781
782
783
784
785
786
2009-09-30  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	* src/tgba/tgbacomplement.cc: Move functions related to
	shared_ptr on states...
	* src/tgba/state.hh: ... here.
	* src/tgbatest/complementation.test: Do not apply some tests on
	the new algorithm because it takes to much time to run.

787
788
789
790
791
792
793
794
795
796
797
798
799
2009-09-29  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	A new complementation construction based on ranking.

	* src/tgba/tgbacomplement.cc, src/tgba/tgbacomplement.hh: The
	construction.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/complementation.cc: Add options to support this
	construction in addition to Safra construction.
	* src/tgba/Makefile.am: Adjust.
	* src/tgbatest/complementation.test: Adjust to test also this
	complementation.

800
801
802
803
804
2009-09-29  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	* src/ltltest/randltl.cc, src/ltltest/reduc.test,
	src/tgbatest/dfs.test: Adjust headers to 80 columns.

805
806
807
808
809
810
811
812
813
814
2009-09-24  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	A wrapper around tgba to produce state-labeled automata.

	* src/tgba/tgbasgba.hh, src/tgba/tgbasgba.hh: Here.
	* src/tgbatest/ltl2tgba.cc: New option `-lS' for state-labeled
	automata.
	* src/tgba/Makefile.am: Adjust and sort files in tgba_HEADERS
	and libtgba_la_SOURCES.

815
816
817
818
819
820
821
822
823
824
825
2009-09-21  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	Rename files related to Safra complementation.

	* src/tgba/tgbacomplement.cc, src/tgba/tgbacomplement.hh: Rename
	as...
	* src/tgba/tgbasafracomplement.cc,
	src/tgba/tgbasafracomplement.hh: ... these, and adjust class name.
	* src/tgba/Makefile.am, src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/complementation.cc: Adjust.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
826
827
828
829
830
831
832
2009-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix previous patch.

	* src/tgbaalgos/scc.cc (scc_map::update_supp_rec): Also take the
	label of the outgoing edges into account.

833
834
835
836
837
838
839
840
2009-09-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Optimize previous patch.

	* src/tgbaalgos/scc.hh (scc_map::scc::supp_rec): Initialize to
	bddfalse, since this cannot occur in reallife.
	* src/tgbaalgos/scc.cc (scc_map::update_supp_rec): Adjust.

841
842
843
844
845
846
847
848
849
850
851
852
2009-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Have scc_map keep track of APs that are reachable from a SCC.

	* src/tgbaalgos/scc.hh (scc_map::scc): Add a supp_rec member to
	hold reachable APs.
	* src/tgbaalgos/scc.cc (scc_map::update_supp_rec): New function,
	to update supp_rec.
	(scc_map::build_map): Call it.
	(scc_map::aprec_set_of): New function.
	(dump_scc_dot): Show the output of aprec_set_of().

853
854
855
856
857
858
859
860
861
2009-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Have scc_map keep track of APs that are occurring in a SCC.

	* src/tgbaalgos/scc.hh (scc_map::scc): Add a supp member to hold APs.
	* src/tgbaalgos/scc.cc (scc_map::build_map): Update supp.
	(scc_map::ap_set_of): New function.
	(dump_scc_dot): Show the output of ap_set_of().

Damien Lefortier's avatar
Damien Lefortier committed
862
863
864
865
866
867
868
869
2009-09-07  Damien Lefortier <dam@lrde.epita.fr>

	Fix some memory leaks.

	* src/eltlparse/eltlparse.yy: Free the automatop::vec when
	CHECK_ARITY fails while parsing an automatop.
	* src/eltltest/acc.cc: Free all constructed formulae.

870
871
872
873
874
875
876
2009-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a memory leak in reduce_tau03().

	* src/ltlvisit/contain.cc (reduce_tau03_visitor::visit): Free
	the operand array when a multop reduces to a constant.

877
878
879
880
881
882
883
2009-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a memory leak in randltl.

	* src/ltltest/randltl.cc: Free the atomic properties from AP
	before exit.

884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
2009-09-04  Damien Lefortier <dam@lrde.epita.fr>

	Add an algorithm (from Couvreur) working on BDDs to reduce the
	size of TGBAs represented as BDDs by deleting unaccepting SCCs.

	* src/eltlparse/eltlparse.yy: Remove a warning.
	* src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh,
	src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh: Add a
	new function delete_unaccepting_scc in both classes.
	* src/tgbatest/eltl2tgba.cc, src/tgbatest/spotlbtt.test: Use this
	new function in LaCIM for ELTL and bench it.
	* src/tgbatest/defs.in: Fix it.
	* bench/ltl2tgba/algorithms, bench/ltl2tgba/defs.in: Add LaCIM for
	ELTL in benchs.

899
900
901
902
903
904
905
906
2009-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix path to libtool in test suites.

	* src/ltltest/defs.in, src/eltltest/defs.in, src/tgbatest/defs.in,
	src/evtgbatest/defs.in (run): Use ../../../libtool instead of
	../../libtool, now that testcases have been moved down one directory.

907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
2009-08-31  Alexandre Duret-Lutz  <adl@va-et-vient.net>

	Use Automake 1.11's parallel-tests feature.

	* configure.ac: Enable parallel-tests.
	* src/eltltest/defs.in, src/evtgbatest/defs.in,
	src/ltltest/defs.in, src/tgbatest/defs.in: Always output verbose
	tests.  Make a subdirectory for each test case.
	* src/ltltest/Makefile.am, src/eltltest/Makefile.am,
	src/tgbatest/Makefile.am, src/evtgbatest/Makefile.am: Remove
	CLEANFILES and clean the test subdirectories in a distclean-local
	rule instead.
	* src/eltltest/acc.test, src/eltltest/nfa.test,
	src/evtgbatest/explicit.test, src/evtgbatest/ltl2evtgba.test,
	src/evtgbatest/product.test, src/evtgbatest/readsave.test,
	src/ltltest/equals.test, src/ltltest/lunabbrev.test,
	src/ltltest/nenoform.test, src/ltltest/parse.test,
	src/ltltest/parseerr.test, src/ltltest/reduc.test,
	src/ltltest/reduccmp.test, src/ltltest/syntimpl.test,
	src/ltltest/tostring.test, src/ltltest/tunabbrev.test,
	src/ltltest/tunenoform.test, src/tgbatest/bddprod.test,
	src/tgbatest/complementation.test, src/tgbatest/dfs.test,
	src/tgbatest/dupexp.test, src/tgbatest/eltl2tgba.test,
	src/tgbatest/emptchk.test, src/tgbatest/emptchke.test,
	src/tgbatest/emptchkr.test, src/tgbatest/explicit.test,
	src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
	src/tgbatest/explpro4.test, src/tgbatest/explprod.test,
	src/tgbatest/ltl2neverclaim.test, src/tgbatest/ltl2tgba.test,
	src/tgbatest/ltlprod.test, src/tgbatest/mixprod.test,
	src/tgbatest/readsave.test, src/tgbatest/reduccmp.test,
	src/tgbatest/reductgba.test, src/tgbatest/scc.test,
	src/tgbatest/spotlbtt.test, src/tgbatest/tgbaread.test,
	src/tgbatest/tripprod.test: Adjust to run from a subdirectory.

941
942
943
944
2009-08-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: Switch to Automake 1.11 and enable color-tests.

945
946
947
948
949
950
2009-08-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: Switch from Libtool 1.5.x to Libtool 2.x, and
	add an AC_CONFIG_MACRO_DIR call.
	* m4/libtool.m4, tools/ltmain.sh: Remove.

951
952
953
954
955
956
957
958
2009-07-30  Felix Abecassis <abecassis@lrde.epita.fr>

	Add TGBA union implementation.

	* src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh: New files.
	Union of two TGBAs.
	* src/tgba/Makefile.am: Adjust.

959
960
961
962
2009-07-09  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	* m4/intel.m4: Fix to support the cache.

963
964
965
2009-07-08  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	* src/tgba/tgbacomplement.cc: Stay on 80 columns.
966

Flix Abecassis's avatar
Flix Abecassis committed
967
968
969
970
971
972
973
974
975
976
977
978
979
2009-07-08  Flix Abecassis <abecassis@lrde.epita.fr>

	Add 2 benchmarks directories.
	Add an algorithm to split an automaton in several automata.

	* bench/scc-stats: New directory.  Contains input files and test
	program for computing statistics.
	* bench/split-product: New directory.  Contains test program for
	synchronised product on splitted automata.
	* bench/split-product/models: New directory.  Contains Promela
	files, and LTL formulae that should be verified by the models.
	* src/tgba/tgbafromfile.cc, src/tgba/tgbafromfile.hh:
	New files.  Small class to avoid long initializations with numerous
980
	constants when translating to TGBA many LTL formulae from a
Flix Abecassis's avatar
Flix Abecassis committed
981
982
983
984
985
986
987
	given file.
	* src/tgbaalgos/cutscc.cc, src/tgbaalgos/cutscc.hh:
	New file.  From a single automaton, create, at most,
	X sub automata.
	* src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh:
	Adjust to compute self-loops count.

988
989
990
991
992
2009-07-07  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	* src/tgba/tgbacomplement.cc: Fix the transformation from
	Streett to TGBA.
	* src/tgbatest/complementation.test: Modify tests.
993

994
995
996
997
2009-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/emptchk/pml2tgba.pl: Adjust to work with Spin 5.2.0.

998
999
1000
1001
1002
1003
1004
1005
2009-06-12  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	Adjust the build system for ICC.

	* m4/intel.m4: Remove the `-W' option from CXXFLAGS since icpc
	does not support it. Inhibit the warning ``method was declared
	but never referenced''.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1006
1007
1008
1009
1010
1011
1012
2009-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Kill a g++-4.2 warning.

	* src/tgba/tgbacomplement.cc (state_complement::state_complement)
	explicitly initialize the base class spot::state.

1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
2009-06-10  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	During the complementation, transform the auxiliary Streett
	automaton into a TGBA instead of a TBA.

	* src/tgba/tgbacomplement.hh, src/tgba/tgbacomplement.cc:
	Adjust the transformation from Streett to Bchi to support
	generalized acceptance conditions.
	* src/tgbatest/complementation.cc: Improve output messages.
	* src/tgbatest/complementation.test: New tests.

1024
1025
2009-06-09  Guillaume Sadegh  <sadegh@lrde.epita.fr>

1026
1027
	* src/tgba/tgbacomplement.cc, src/tgbatest/complementation.cc:
	Fix style.
1028

1029
1030
1031
1032
1033
2009-06-07  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	* src/tgba/tgbacomplement.cc (state_complement::hash): Improve
	the hash function.

1034
1035
1036
1037
1038
1039
2009-06-09  Damien Lefortier <dam@lrde.epita.fr>

	* src/eltlparse/eltlparse.yy: Fix a memory leak.
	* src/eltltest/nfa.cc: Adjust.
	* src/tgbaalgos/eltl2tgba_lacim.cc: Fix a memory leak.

1040
1041
1042
1043
1044
1045
1046
2009-06-05  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	Remove generated files that git follows.

        * INSTALL, lbtt/INSTALL, lbtt/doc/texinfo.tex: Do not track
	anymore these generated files.

1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
2009-06-05  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	Add an algorithm to complement Bchi automata.

	* src/tgba/tgbacomplement.hh, src/tgba/tgbacomplement.cc: New
	files. The complementation algorithm.
	* src/tgba/Makefile.am: Adjust.
	* src/tgbatest/complementation.test,
	src/tgbatest/complementation.cc: New files. Test suite for the
	complementation algorithm.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbaalgos/Makefile.am: Reformat the header using 80
	columns.

1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
2009-06-05  Damien Lefortier <dam@lrde.epita.fr>

	Modify the ELTL parser to be able to support PSL operators.  Add a
	new keyword in the ELTL format: finish, which applies to an
	automaton operator and tells whether it just completed.

	* src/eltlparse/eltlparse.yy: Clean it. Add finish.
	* src/eltlparse/eltlscan.ll: Add finish.
	* src/formula_tree.cc, src/formula_tree.hh: New files. Define a
	small AST representing formulae where atomic props are unknown
	which is used in the ELTL parser.
	* src/ltlast/automatop.cc, ltlast/automatop.hh, ltlast/nfa.cc,
	ltlast/nfa.hh: Adjust.
	* src/ltlast/unop.cc, src/ltlast/unop.hh: Finish is an unop.
	* src/ltlvisit/basicreduce.cc, src/ltlvisit/nenoform.cc,
	src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
	src/ltlvisit/tostring.cc, src/ltlvisit/tunabbrev.cc,
	src/tgba/formula2bdd.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/ltl2tgba_lacim.cc: Handle finish in switches.
	* src/tgbaalgos/eltl2tgba_lacim.cc: Translate finish.
	* src/tgbatest/eltl2tgba.test: More tests.

1083
1084
1085
1086
1087
1088
2009-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/scc.test: Redirect stdout into file `stdout'
	instead of `out', to conform to other tests, and add a missing
	call to diff.

1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
2009-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce some experimental kripke classes to simplify writing
	interfaces.

	* src/kripke/Makefile.am, src/kripke/fairkripke.cc,
	src/kripke/fairkripke.hh, src/kripke/kripke.cc,
	src/kripke/kripke.hh: New files.
	* src/Makefile.am: Recurse into kripke and link libkripke.la.
	* configure.ac: Output src/kripke/Makefile.

1100
1101
1102
1103
1104
1105
1106
1107
1108
2009-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/scc.test: New file.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbaalgos/scc.hh: More documentation.
	* src/tgbaalgos/scc.cc (scc_recurse): Fix computation of
	acc_paths and dead_paths.  Prevent recursions in states that
	have already been visited.

1109
1110
1111
1112
1113
1114
1115
1116
1117
2009-05-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Lift the SCC computation off future_condition_collectors, into
	a new tgba_scc class.

	* src/tgba/futurecondcol.cc, src/tgba/futurecondcol.hh: Move
	all delegation functions and scc_map into ...
	* src/tgba/tgbascc.cc, src/tgba/tgbascc.hh: ... these new files.

1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
2009-05-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Test "ltl2tgba -FC" and plug the memory leaks of scc_map.

	* src/tgbaalgos/scc.hh (scc_map::~scc_map): Declare it.
	* src/tgbaalgos/scc.cc (scc_map::~scc_map): Implement it.
	(scc_map::build_map): Delete duplicate states.
	* src/tbbatest/ltl2tgba.test: Run ltl2tgba -FV to catch
	memory leaks with valgrind.

1128
1129
1130
1131
1132
1133
1134
1135
1136
2009-05-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement spot::future_conditions_collector.

	* src/tgba/futurecondcol.hh, src/tgba/futurecondcol.cc:
	New files.
	* src/tgba/Makefile.am: Adjust.
	* src/tgbatest/ltl2tgba.cc: Add option -FC.

1137
1138
1139
1140
1141
2009-05-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/scc.cc (dump_scc_dot): Use a bit vector instead of
	a map to track visited SCC since they are sequentially numbered.

1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
2009-05-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Number states using negative values and SCCs using nonnegative
	values.

	Before this change states were numbered using positive values and
	SCCs using negative values.  That meant the user had to work with
	negative values.  With this changes, the nonnegative values used
	to label SCCs can also directly be used as index in the scc_map_.

	* src/tgbaalgos/scc.hh (scc_map::scc_of_state,
	scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of,
	scc_map::initial, scc_map::scc_type, scc_map::succ,
	scc_map::accepting): Adjust prototypes to take or return unsigned
	arguments.
	* src/tgbaalgos/scc.cc: Adjust prototypes of the above functions.
	(scc_map::build_map, scc_map::relabel_component): Number states
	using negative values, and SCCs using nonnegative values.
	(dump_scc_dot): Adjust to use nonnegative values.

1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
2009-05-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Store the scc_map_ as a vector instead of a std::map.  There is no
	point in using a map since the SCC are numbered in sequence.

	* src/tgbaalgos/scc.hh (scc_map::relabel_component): Return the
	number of the SCC instead of taking it as argument.
	(scc_map::scc_num_): Delete this variable.  scc_map_.size() gives
	the same information.
	(scc_map::scc_map_type): Define using std::vector instead of
	std::map.
	* src/tgbaalgos/scc.cc: Adjust all uses.

1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
2009-05-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Keep track of conditions in SCC, and add a more verbose dump.

	* src/tgbaalgos/scc.hh (scc_map::scc_of_state,
	scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of):
	New functions.
	(scc_map::scc::conds): New attribute.
	(dump_scc_dot): Take an optional VERBOSE argument.
	* src/tgbaalgos/scc.cc (scc_map::scc_of_state,
	scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of):
	Implement these new functions.
	(dump_scc_dot): Display number of states, conditions and
	acceptance conditions, with VERBOSE is set.
	(build_map): Fill the new scc_map::scc::cond field.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1191
1192
1193
1194
1195
1196
1197
2009-05-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/scc.cc (scc_map::relabel_component): Make sure
	that the old label of each state is strictly positive.  The
	previous assertion (inherited from gtec) of "!= -1" is wrong,
	because all negative values are now used to number SCCs.

1198
1199
1200
1201
1202
1203
2009-05-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgba.hh (format_state): s/automata who/automata that/.
	* src/evtgba/evtgba.hh (format_state): Likewise.
	* src/evtgba/product.hh (format_state): Likewise.

1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
2009-04-18  Damien Lefortier <dam@lrde.epita.fr>

	Extend the ELTL parser to support more complex aliases of
	automaton operators such as Strong=G(F($0))->G(F($1)) and
	G=R(false, $0).

	* src/eltlparse/eltlparse.yy, src/eltlparse/eltlscan.ll: Add
	support for more complex aliases.
	* src/eltltest/acc.cc, src/eltltest/acc.test: Adjust.
	* src/ltlast/nfa.cc, src/ltlast/nfa.hh (arity): Now returns an
	unsigned value.
	* src/tgbatest/eltl2tgba.test: Adjust.
	* src/tgbalagos/eltl2tgba_lacim.cc: Fix sanity.

1218
1219
1220
1221
1222
1223
1224
1225
1226
2009-04-09  Guillaume SADEGH  <sadegh@lrde.epita.fr>

	Minor fixes to compile with GCC 4.4.

	* src/eltlparse/eltlparse.yy (subformula): Avoid a comparaison
	between a signed and an unsigned value.
	* src/ltlast/automatop.hh, src/ltlast/automatop.cc (nfa): Avoid
	a name clash with the `nfa' class.

1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
2009-04-08  Damien Lefortier <dam@lrde.epita.fr>

	Correct LaCIM for ELTL and make it work with LBTT.

	* src/eltlparse/eltlparse.yy: Adjust.
	* src/ltlast/automatop.cc, src/ltlast/automatop.hh,
	src/ltlvisit/clone.cc, src/ltlvisit/nenoform.cc: Clean the way we
	handle the negation of automaton operators.
	* src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh: Add an
	optional argument to output a fully parenthesized string.
	* src/tgbaalgos/eltl2tgba_lacim.cc: Fix it.
	* src/tgbatest/eltl2tgba.cc: Add a new option (-L) to read formulae
	from an LBTT-compatible file.
	* src/tgbatest/eltl2tgba.test: A new tests.
	* src/tgbatest/spotlbtt.test: Add LaCIM for ELTL.

1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
2009-04-04  Damien Lefortier <dam@lrde.epita.fr>

	Extend the ELTL parser to support basic aliases of automaton
	operators such as F=U(true,$0) or R=!U(!$0,!$1), and infix
	notation for binary automaton operators.

	* README: Document the ELTL directories.
	* src/eltlparse/eltlparse.yy, src/eltlparse/eltlscan.ll: Add
	support for aliases and infix notation.
	* src/eltlparse/public.hh, src/ltlast/nfa.cc, src/ltlast/nfa.hh:
	Clean them.
	* src/eltltest/acc.test, src/tgbatest/eltl2tgba.test: Add tests
	for the ELTL parser's extensions.
	* src/tgbatest/eltl2tgba.cc: Adjust.

1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
2009-03-26  Damien Lefortier <dam@lrde.epita.fr>

	Add support for ELTL (AST & parser), and an adaptation of LaCIM
	for ELTL.

        * configure.ac: Adjust for src/eltlparse/ and src/eltltest/
	directories, and call AX_BOOST_BASE.
	* m4/boost.m4: New file defining AX_BOOST_BASE([MINIMUM-VERSION]).
	* src/Makefile.am: Add eltlparse and eltltest.
	* src/eltlparse/: New directory.  Contains the ELTL parser.
	* src/eltltest/: New directory.  Contains tests related to
	ELTL (parser and AST).
	* src/ltlast/Makefile.am: Adjust for ELTL AST files.
	* src/ltlast/automatop.cc, src/ltlast/automatop.hh: New files.
	Represent automaton operators nodes used in ELTL ASTs.
	* src/ltlast/nfa.cc, src/ltlast/nfa.hh: New files.  Represent
	simple NFAs used internally by automatop nodes.
	* src/ltlast/allnode.hh, src/ltlast/predecl.hh,
	src/ltlast/visitor.hh: Adjust for automatop.
	* src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc,
	src/ltlvisit/clone.hh, src/ltlvisit/contain.cc,
	src/ltlvisit/dotty.cc, src/ltlvisit/nenoform.cc,
	src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
	src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
	src/ltlvisit/tostring.cc: Because LTL and ELTL formulae share the
	same class hierarchy, LTL visitors need to handle automatop nodes
	to compile.  When it's meaningful the visitor applies on automatop
	nodes or simply assert(0) otherwise.
	* src/tgba/tgbabddconcretefactory.cc (create_anonymous_state),
	src/tgba/tgbabddconcretefactory.hh (create_anonymous_state): New
	function used by the LaCIM translation algorithm for ELTL.
	* src/tgbaalgos/Makefile.am: Adjust for eltl2tgba_lacim* files.
	* src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/eltl2tgba_lacim.hh: New files.  Implementation of
	the LaCIM translation algorithm for ELTL.
	* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc:
	Handle automatop nodes in the translation by an assert(0).
	* src/tgbatest/Makefile.am: Adjust for eltl2tgba.* files.
	* src/src/tgbatest/eltl2tgba.cc, src/tgbatest/eltl2tgba.test: New
	files.

1299
1300
1301
1302
2009-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/evtgbaparse/evtgbaparse.yy: Stay on 80 columns.

1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
2009-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Update parsers to work with Bison 2.4.1.

	* HACKING: Mention that we require Bison >= 2.4 for developers.
	* src/evtgbaparse/evtgbaparse.yy, src/tgbaparse/tgbaparse.yy,
	src/ltlparse/ltlparse.yy: The sections "%{ ... %}" should now be
	renamed "%code requires { ... }" or "%code { ... }" depending on
	whether they should end up in the parser's header file or its cc
	file.  Also use %language, %locations, %defines, instead of
	command-line arguments.
	* src/evtgbaparse/Makefile.am, src/tgbaparse/Makefile.am,
	src/ltlparse/Makefile.am: Remove the --locations, --defines
	and --languages in the call to bison.  Add -Wall -Werror to
	catch more errors.
	Thanks to Akim Demaille <akim@lrde.epita.fr> for the help.

1320
1321
1322
1323
2009-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/scc.hh: Add missing misc/hash.hh inclusion.

Alexandre Duret-Lutz's avatar
typo    
Alexandre Duret-Lutz committed
1324
1325
1326
1327
1328
2009-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbaproduct.cc (tgba_succ_iterator_product::first):
	Typo in comment.

Alexandre Duret-Lutz's avatar
typos    
Alexandre Duret-Lutz committed
1329
1330
1331
1332
2009-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgba.hh: Typos.

Alexandre Duret-Lutz's avatar
Typos    
Alexandre Duret-Lutz committed
1333
1334
1335
1336
1337
2009-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
	Typos.

1338
1339
1340
1341
1342
1343
2008-12-17  Guillaume SADEGH  <sadegh@lrde.epita.fr>
	Update to compile with GCC 4.4.0 (trunk).

	* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::succ_iter):
	Rename `state' as `local_state'.

1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
2008-12-11  Guillaume SADEGH  <sadegh@lrde.epita.fr>

	Update to compile with the Intel compiler.

  	* m4/intel.m4: New file.
	* configure.ac: Update.
	* src/tgbaalgos/emptiness.cc (tgba_run): Modify s.s->clone() in
	i->s->clone().
	* src/misc/optionmap.hh, src/misc/optionmap.cc: Remove the extra
	`;' after the namespace.
        * src/tgbaalgos/tau03opt.cc
	(tau03_opt_search::add_new_state): Remove unreferenced method.
        * src/tgbaalgos/ltl2tgba_fm.cc
	(translate_dict::dump): Remove unreferenced method.
        * src/tgbaalgos/lbtt.cc
	(acceptance_cond_splitter::count): Remove unreferenced method.
        * src/tgba/tgbabddconcreteproduct.cc
	(tgba_bdd_product_factory::get_dict): Remove unreferenced method.
        * src/ltlvisit/syntimpl.cc
        (eventual_universal_visitor::recurse): Remove unreferenced method.
	* src/tgbaalgos/reductgba_sim.cc: Reindent.

1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
2008-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Compute more statistics about SCCs.

	* src/tgbaalgos/scc.hh (scc_stats): Add new attributes:
	acc_scc, dead_scc, acc_paths, dead_paths.
	* src/tgbaalgos/scc.hh (scc_stats::dump): Display them.
	(build_scc_stats): Compute them.
	(scc_recurse_data, scc_recurse): New helper structure and function.

1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
2008-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix tracking of SCCs on the search stack.

	* src/tgbaalgos/scc.hh (scc::arc_): Rename as ...
	(scc::arc_acc_): ... this.
	(scc::arc_cond_): New attribute.
	* src/tgbaalgos/scc.cc (build_map): Adjust and keep
	track of transitions between SCCs on the search stack.

1386
1387
1388
1389
1390
1391
1392
2008-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/scc.hh, src/tgbaalgos/scc.cc: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/ltl2tgba.cc (-k): Also call build_scc_stats().
	(-K): New option that dumps the SCCs for dot.

1393
1394
1395
1396
1397
1398
1399
2008-12-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltl2tgba.cc (-k): New option that calls
	stats_reachable(a).dump().
	* src/tgbaalgos/stats.cc, src/tgbaalgos/stats.hh:
	Add tgba_statistics::dump().

1400
1401
1402
1403
1404
1405
1406
2008-08-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/gspn-ssp/tools/modelgen-create: Remove and fold into ...
	* bench/gspn-ssp/tools/bench-create: ... this.
	* bench/gspn-ssp/Makefile.am: Update.
	* bench/gspn-ssp/bench.mk: Regen.

1407
1408
1409
1410
1411
2008-08-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/gspn-ssp/tools/defs.in (TMPDIR): New variable.
	* bench/gspn-ssp/tools/runbench: Use it.

1412
1413
1414
1415
1416
1417
2008-08-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/gspn-ssp/tools/sum: Fix the order of stats in -e4.
	If the MAXLINES environment variable is defined, flush the page
	as needed.  Sort the models only once.

1418
1419
1420
1421
1422
2008-08-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/gspn-ssp/README: New file.
	* bench/gspn-ssp/Makefile.am (EXTRA_DIST): Distribute it.

1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
2008-08-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/gspn-ssp/tools/sum: Output WCSsym* and WCSasym* on
	separate lines.  Canonize the names used as keys to that
	WCSsymN appears always in the same column as WCSasymN.  Read the
	*.log files directly, we don't need the *.all files anymore.
	* bench/gspn-ssp/tools/collate: Delete.
	* bench/gspn-ssp/tools/Makefile.am: Adjust.
	* bench/gspn-ssp/tools/bench-create: Do not output rules to
	build *.all files.

1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
2008-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Build the benchmark in bench/gspn-ssp/ using makefiles, so we
	can run them easily in parallel using "make -j2".

	* bench/gspn-ssp/bench: Remove, it is now replaced by Makefile rules.
	* bench/gspn-ssp/benchaux: Remove, now implemented by...
	* bench/gspn-ssp/tools/runbench, bench/gspn-ssp/tools/collate:
	... these new files.
	* bench/gspn-ssp/defs.in: Use absolute filenames.
	* bench/gspn-ssp/gen: Remove, it is now replaced
	by tools/modelgen-create.
	* bench/gspn-ssp/sumall: Delete.
	* bench/gspn-ssp/templates/WCSsym/gen,
	bench/gspn-ssp/templates/bagrodia/gen,
	bench/gspn-ssp/templates/common,
	bench/gspn-ssp/templates/gen, bench/gspn-ssp/templates/predef/gen,
	* bench/gspn-ssp/Makefile.am: Inlucde modelgen.mk, bench.mk, as
	well as all the tools.
	* bench/gspn-ssp/bench.mk, bench/gspn-ssp/modelgen.mk: New
	files, generated by ...
	* bench/gspn-ssp/tools/bench-create,
	bench/gspn-ssp/tools/modelgen-create: ... these new files.
	* bench/gspn-ssp/sum: Rename as ...
	* bench/gspn-ssp/tools/sum: ... this, adjust for the new system,
	and keep track of the inclusion count created by the previous patch.

1461
1462
1463
1464
1465
2008-08-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/gspn/ssp.cc (numbered_state_heap_ssp_semi): Keep track
	of the number of inclusions detected.

1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
2008-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/gspn-ssp/Makefile.am, bench/gspn-ssp/trans2prop.pl: New files.
	* bench/gspn-ssp/config: Rename as bench/gspn-ssp/defs.in.
	* bench/Makefile.am (SUBDIRS): Add gspn-ssp.
	* configure.ac: Output bench/gspn-ssp/Makefile and bench/gspn-ssp/defs.
	* bench/gspn-ssp/bench: Include defs.

2008-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/gspn-ssp/: New directory.  Contains some of the benches
	used in baarir.06.tr03, baarir.07.acsd, and baarir.07.msr.

1479
1480
1481
1482
1483
1484
2008-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/gspn/ltlgspn.cc: New option: -e54.
	* iface/gspn/ssp.hh, iface/gspn/ssp.cc: Add the
	reversed_double_inclusion boolean for this.

1485
1486
1487
1488
1489
1490
2008-06-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/nips/nipstest/dotty.test,
	iface/nips/nipstest/emptiness.test: Prefix bytecode filenames
	with $srcdir so the tests work in VPATH builds.

1491
1492
2008-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

1493
1494
1495
	* iface/nips/dottynips.cc: Include ctsdlib for exit().
	* iface/nips/emptiness_check.cc: Likewise.

1496
1497
	* src/sanity/includes.test: Remove empty line at beginning of file.

1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
2008-06-02  Guillaume SADEGH  <sadegh@lrde.epita.fr>

	Test suite for the NipsVM front-end.

	* iface/nips/nipstest/Makefile.am, iface/nips/Makefile.am,
	configure.ac, iface/nips/nipstest/emptiness.test,
	iface/nips/nipstest/dotty.test: Test suite for the NipsVM
	front-end.
	* iface/nips/emptiness_check.cc, iface/nips/dottynips.cc: `catch'
	don't throw anymore an exception, but exit with 1.
	* iface/nips/common.cc, iface/nips/nips.cc (nips_interface):
	Change messages of nips_exception.

1511
1512
1513
1514
2008-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/sanity/includes.test (INCDIR): Remove any trailing slash.

1515
1516
1517
1518
1519
1520
1521
1522
2008-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Install interfaces' headers in the spot/iface/ directory, not
	directly in the spot/ directory.

	* iface/gspn/Makefile.am (gspndir): Install in spot/iface/gspn/.
	* iface/nips/Makefile.am (nipsdir): Install in spot/iface/nips/.

1523
1524
2008-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1525
1526
	* iface/nips/nips_vm/Makefile.am: Do not install NipsVM.

1527
1528
1529
1530
	* iface/nips/Makefile.am (empt_check_LDADD, dottynips_LDADD):
	Do not link libnipsvm.la here...
	(libspotnips_la_LIBADD): ... do it here.

1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
2008-05-29  Guillaume SADEGH  <sadegh@lrde.epita.fr>

	* iface/nips/nips.cc, iface/nips/nips.hh, iface/nips/common.cc,
	iface/nips/common.hh, iface/nips/Makefile.am: TGBA implementation
	with the NIPS library.
	* iface/nips/emptiness_check.cc: Emptiness check on a Promela
	interface.
	* iface/nips/dottynips.cc: Dot printer on the NIPS interface.
	* iface/nips/compile.sh: Add. Wrapper around nips compiler to
	compile Promela to NIPS bytecode.
	* iface/nips/nips_vm,iface/nips/nips_vm/bytecode.h,
	iface/nips/nips_vm/ChangeLog, iface/nips/nips_vm/COPYING,
	iface/nips/nips_vm/hashtab.c, iface/nips/nips_vm/hashtab.h,
	iface/nips/nips_vm/INSTALL, iface/nips/nips_vm/instr.c,
	iface/nips/nips_vm/instr.h, iface/nips/nips_vm/instr_step.c,
	iface/nips/nips_vm/instr_step.h,
	iface/nips/nips_vm/instr_tools.c,
	iface/nips/nips_vm/instr_tools.h,
	iface/nips/nips_vm/instr_wrap.c,
	iface/nips/nips_vm/instr_wrap.h,
	iface/nips/nips_vm/interactive.c,
	iface/nips/nips_vm/interactive.h, iface/nips/nips_vm/main.c,
	iface/nips/nips_vm/Makefile, iface/nips/nips_vm/Makefile.am,
	iface/nips/nips_vm/nips_asm_help.pl,
	iface/nips/nips_vm/nips_asm_instr.pl,
	iface/nips/nips_vm/nips_asm.pl,
	iface/nips/nips_vm/nips_disasm.pl, iface/nips/nips_vm/nipsvm.c,
	iface/nips/nips_vm/nipsvm.h, iface/nips/nips_vm/README,
	iface/nips/nips_vm/rt_err.c, iface/nips/nips_vm/rt_err.h,
	iface/nips/nips_vm/search.c, iface/nips/nips_vm/search.h,
	iface/nips/nips_vm/split.c, iface/nips/nips_vm/split.h,
	iface/nips/nips_vm/state.c, iface/nips/nips_vm/state.h,
	iface/nips/nips_vm/state_inline.h,
	iface/nips/nips_vm/state_parts.c,
	iface/nips/nips_vm/state_parts.h, iface/nips/nips_vm/timeval.h,
	iface/nips/nips_vm/tools.h: NIPS VM added to the SPOT
	distribution.
	* configure.ac, iface/Makefile.am: Build system updated for the
	NIPS front-end.

	* src/Makefile.am (_.cc): Fix for `make tags`.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
2008-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Kill some FIXMEs.

	* src/ltlenv/environment.hh, src/ltlvisit/basicreduce.cc: Remove
	useless FIXMEs.
	* src/ltlvisit/reduce.cc (reduce_visitor::visit(binop)): Compute
	syntactic implications only when needed.
	* src/tgbaalgos/reductgba_sim_del.cc
	(build_recurse_successor_spoiler): Remplace the FIXME by an assert.
	* src/tgba/tgbareduc.cc: Reword some comments, discard old
	commented code.

1586
1587
1588
1589
1590
1591
1592
2008-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/evtgbaparse/Makefile.am (AM_CXXFLAGS): Remove -Werror
	so we tolerate more flex versions.
	* src/ltlparse/Makefile.am (AM_CXXFLAGS): Likewise.
	* src/tgbaparse/Makefile.am (AM_CXXFLAGS): Likewise.

1593
1594
1595
1596
2008-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/hash.hh: Second thinko in #if/#else.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1597
1598
1599
1600
2008-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/hash.hh: Thinko in #if/#else.

1601
1602
1603
1604
2008-03-21  Damien Lefortier <dam@lrde.epita.fr>

	* src/misc/freelist.hh: Avoid <iostream> in headers, better use <iosfwd>.

1605
1606
1607
1608
1609
2008-03-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltl2tgba.cc, src/misc/hash.hh: Reformat the header
	using 80 columns.

1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
2008-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make sure Spot compiles with g++-4.3.

	* src/ltlast/formula.hh (hash): Remove const from return type.
	This kills a g++-4.3 warning.
	* src/misc/hash.hh: Adjust to use unordered_set and unordered_map
	from TR1 when g++-4.3 is used.
	* src/evtgba/product.cc, src/ltltest/randltl.cc,
	src/ltlvisit/randomltl.cc, src/ltlvisit/tostring.cc,
	src/misc/freelist.hh, src/misc/optionmap.cc,
	src/tgba/tgbareduc.hh, src/tgbaalgos/gv04.cc,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/randomgraph.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
	src/ltltest/equals.cc, src/ltltest/readltl.cc,
	src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
	src/ltltest/tostring.cc, src/tgbatest/ltlprod.cc,
	src/tgbatest/powerset.cc, src/tgbatest/explprod.cc,
	src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
	src/tgbatest/reductgba.cc, src/tgbatest/tgbaread.cc,
	src/tgbatest/tripprod.cc, src/evtgbatest/product.cc,
	src/evtgbatest/readsave.cc, src/evtgbatest/ltl2evtgba.cc,
	src/evtgbatest/readsave.cc: Add missing includes.
	* src/tgbatest/explicit.test, src/tgbatest/explprod.test,
	src/tgbatest/explpro2.test, src/tgbatest/troprod.test,
	src/tgbatest/emptchk.test: Cope with different outputs.

1637
1638
1639
2008-03-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Doxyfile.in (LATEX_HIDE_INDICES): Do not generate indices
Alexandre Duret-Lutz's avatar
typo    
Alexandre Duret-Lutz committed
1640
	until Doxygen is fixed.  Doxygen 1.5.5 generates incorrect LaTeX
1641
1642
	code.

1643
1644
1645
1646
2008-02-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/reachiter.hh: Typos in comments.

1647
1648
1649
1650
1651
2008-02-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbabddconcretefactory.hh (create_state):
	Clarify comments.

1652
1653
1654
1655
1656
2008-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::dump_queue):
	Remove superfluous semicolon.

1657
1658
1659
1660
1661
2008-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/reductgba_sim.cc (reduc_tgba_sim): Add two
	assert().  This patch has been lying in my tree since 2007-04-30.

1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
2008-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	This is something Soheib and I worked on back in July, but a
	intricate memory corruption bug prevented me to check the patch
	in.  It took me two days to realize why find_state() must do a
	double loop over the candidates to check for equality before
	checking for inclusion(s).

	* iface/gspn/ltlgspn.cc: New options, -e45 and -n.
	* iface/gspn/ssp.cc, iface/gspn/ssp.hh: Handle these.
	* src/tgbaalgos/gtec/gtec.cc (TRACE): Add some debugging traces.
	(couvreur99_check_shy::dump_queue): New function.
	* src/tgbaalgos/gtec/gtec.hh (couvreur99_check_shy::dump_queue):
	New function.

1677
1678
1679
1680
1681
1682
1683
1684
1685
2007-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Keep libtool's files under CVS so that we don't use the broken
	Debian versions installed in build hosts during automatic builds.

	* m4/libtool.m4: New file, from GNU Libtool 1.4.24.
	* tools/ltmain.sh: New file, from GNU Libtool 1.4.24.
	* HACKING: Installing Libtool is no longer required.

1686
1687
1688
1689
1690
2007-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* m4/valgrind.m4: New file.
	* configure.ac: Use it.

1691
1692
1693
1694
1695
2007-10-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/cgi/ltl2tgba.in: Adjust to newer versions of swig.

2007-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>
1696
1697
1698
1699
1700

	* src/misc/bddalloc.cc (bdd_allocator::initialize):
	Disable the default GC handler.  Reported by
	Kristin Yvonne Rozier <kyrozier@cs.rice.edu>.

1701
1702
1703
1704
1705
2007-07-26  Alexandre Duret-Lutz  <adl@gnu.org>

	* src/tgbatest/ltl2tgba.cc (main): Correctly destroy unobservable
	events.

1706
1707
2007-07-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1708
1709
1710
1711
	* iface/gspn/ltlgspn.cc: New option -L.
	* iface/gspn/ssp.cc, iface/gspn/ssp.hh (gspn_ssp_interface)
	support for a new option "pushfront".

1712
1713
	* NEWS, configure.in: Bump version to 0.4a.

1714
1715
1716
1717
1718
1719
2007-07-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* NEWS, configure.in: Bump version to 0.4.
	* HACKING, INSTALL, doc/Doxyfile.in, lbtt/INSTALL: Update to newer
	tools.

1720
1721
1722
1723
1724
1725
1726
1727
2007-07-16  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* iface/gspn/ssp.cc (tgba_gspn_ssp_private_::~tgba_gspn_ssp_private_):
	Fix the declaration for GCC 4.1.2.
	* iface/gspn/gspn.cc (tgba_gspn_private_::~tgba_gspn_private_):
	Likewise.

2007-06-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1728
1729
1730

	* src/tgbatest/spotlbtt.test: Do not check -R1q -R1t -R2q -R2t.

1731
2007-04-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1732

Alexandre Duret-Lutz's avatar
typo    
Alexandre Duret-Lutz committed
1733
	* src/tgbatest/ltl2tgba.cc (main): Fix handling of -R1q -R1t -R2q -R2t.
1734
1735
1736
1737
	Add support for -r8/-fr8.

	* src/tgbatest/spotlbtt.test: Also check -R1q -R1t -R2q -R2t.

1738
2007-04-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1739
1740
1741
1742
1743
1744

	* src/ltlvisit/reduce.cc (reduce): Repeat the reduction as
	long as the formula changes, it makes more sense when
	combining algorithm.  E.g. basic reductions can help language
	containment and vice-versa.

1745
2007-04-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1746
1747
1748
1749

	* src/tgbatest/spotlbtt.test: Disable formula rewriting during
	construction.

1750
2007-04-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1751

1752
1753
1754
1755
1756
1757
1758
	* src/ltltest/reduc.cc (main): More cases to test.
	* src/ltlvisit/basicreduce.cc (basic_reduce_visitor::visit):
	Simplify the formula again after FX->XF and GX->XG permutations.
	This is so that formulae like GFXXa become GFa and not just GFXa.
	* src/ltlvisit/contain.cc (reduce_tau03_visitor): Fix a typo
	in the rules for i|j or i&j, resulting in missing simplifications.

1759
1760
1761
	* src/ltlvisit/contain.cc (reduce_tau03_visitor): Simplify the
	rules for "a U b" and "a R b", an implication check is enough.

1762
2007-04-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1763
1764
1765
1766
1767

	* src/misc/bddalloc.cc (bdd_allocator::initialize): Call
	bdd_isrunning() and don't run bdd_init() if it has already been
	called.

1768
2007-02-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1769
1770
1771
1772
1773

	* src/tgbaalgos/randomgraph.cc (random_graph): Fix the
	generation of the graph.  Some states had no successors or
	duplicate transitions because of that bug.

1774
1775
2006-08-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1776
1777
	* HACKING: We need Bison 2.3.

1778
1779
1780
	* evtgbaparse/evtgbaparse.yy, ltlparse/ltlparse.yy,
	tgbaparse/tgbaparse.yy: Fix Bison warnings about unset $$.

1781
1782
1783
1784
1785
	* src/tgbaparse/Makefile.am (tgbaparse_HEADERS): Also
	install location.hh and position.hh, since we no longer share
	those of ltlvisit.
	* src/evtgbaparse/Makefile.am (evtgbaparse_HEADERS): Likewise.

1786
1787
1788
1789
1790
2006-08-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/ltlparse/public.hh: Work around Bison 2.3 unique guards.

2006-08-16  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806

	* src/evtgbaparse/public.hh: Work around Bison 2.3 unique guards.
	* src/ltlvisit/reduce.hh, src/ltlvisit/reduce.hh:
	Add Reduce_Containment_Checks and Reduce_Containment_Checks_Stronger
	flags, and call reduce_tau03.
	* src/ltlvisit/contain.hh (reduce_tau03): Make "stronger" the
	default.
	* src/ltlvisit/contain.cc: Style.
	* src/ltltest/reduc.cc: Simplify using the reduce() interface
	instead of reduce_tau03.
	* src/tgbatest/ltl2tgba.cc: Likewise.  Add -fr5, -fr6, and -fr7
	options.
	* src/tgbatest/spotlbtt.test: Remove cases using "-c", since its
	current implementation is not always correct (and apparently
	reduces less than -fr7).

1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
2006-08-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/evtgbatest/evtgbaparse.yy, src/evtgbaparse/evtgbascan.ll,
	src/evtgbaparse/parsedecl.hh, src/evtgbaparse/public.hh,
	src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
	src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
	src/ltlparse/public.hh, src/tgbaparse/parsedecl.hh,
	src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
	src/tgbaparse/tgbascan.ll: Adjust for Bison 2.3.  Use %name-prefix
	instead of the "#define yy ... " kludge.

1818
1819
1820
1821
1822
2006-07-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/ltlvisit/contain.hh, src/ltlvisit/contain.cc: Adjust to only
	check containment on demand.

1823
1824
2006-07-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
	* src/ltlvisit/contain.hh, src/ltlvisit/contain.cc (reduce_tau03):
	New function, performing LTL reduction a la tauriainen.03.a83.
	* src/ltltest/equals.cc, src/ltltest/reduc.cc: Add support for
	the new reduction.
	* src/ltltest/reduc.test: Cut the test in half, and additionally
	test the new reduction.
	* src/ltltest/reduccmp.test: Run on the new reduction.
	* src/ltltest/Makefile.am: Adjust.
	* src/tgbatest/ltl2tgba.cc: Add new options to apply the reduction.
	* src/tgbatest/spotlbtt.test: Use them.

1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
	* src/tgba/tgbaproduct.cc: Fix computation of common acceptance
	conditions.

	* src/tgba/bdddict.cc, src/tgba/bdddict.cc (register_clone_acc):
	New function.
	* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Use it to
	distinguish acceptance conditions that are identical in both
	operands.

	* src/tgbatest/explpro4.test: New file.
	* src/tgbatest/explpro2.test, src/tgbatest/Makefile.am: Adjust.

1848
1849
1850
1851
1852
	* src/tgbaalgos/ltl2tgba_fm.cc (language_containment_checker): Move ...
	* src/ltlvisit/contain.cc, src/ltlvisit/contain.hh
	(spot::ltl::language_containment_checker): ... in these new files.
	* src/ltlvisit/Makefile.am: Adjust.

1853
1854
1855
1856
1857
1858
1859
2006-07-18  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/misc/memusage.cc, src/misc/memusage.hh: New files.
	* src/misc/Makefile.am: Add them.
	* src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gtec/gtec.hh: Add a "vmsize" statistic.

1860
1861
2006-07-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1862
1863
1864
1865
1866
1867
1868
1869
1870
	* src/tgba/bdddict.cc, src/tgba/bdddict.hh (free_annonymous_list_of):
	Rename as ...
	(free_anonymous_list_of): ... this, and correct their update on
	release.  Also correct yesterday's the correction (ahem!).
	(dump): Improve verbosity.
	* src/misc/freelist.cc (free_list::remove, free_list::insert): Fix
	longstanding thinkos.
	(free_list::free_count): New function.

1871
1872
1873
	Merge this fix from proviso-branch:
	2006-05-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>
	* src/misc/bddalloc.cc (bdd_allocator::bdd_allocator): Count the
1874
1875
	number of BDD variable after they have been allocated.  Otherwise
	the first bdd_dict() created was leaking BDD variable #1.
1876

1877
1878
1879
1880
	* src/tgba/tgbabddconcrete.hh, src/tgba/tgbaexplicit.hh,
	src/tgba/tgbaproduct.hh, src/tgba/tgbareduc.hh, src/tgba/tgbatba.hh:
	Remove superfluous class qualifiers worrying gcc 4.1.2.

1881
1882
2006-07-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1883
1884
1885
1886
1887
1888
1889
1890
	* src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_fm.cc
	(ltl_to_tgba_fm): Add a new option "containment_checks" to enable
	some language containment checks (via emptiness checks) during the
	translation.  This first attempt currently only use containment
	checks to merge states bisimulating each other.
	* src/tgbatest/ltl2tgba.cc: Bind this to option "-c".
	* src/tgbatest/spotlbtt.test: Check it.

1891
1892
1893
1894
1895
1896
	* src/tgba/bdddict.cc (bdd_dict::unregister_variable): Correctly
	call release_n(), not remove() to repopulated the freelist of
	anonymous BDD variables.  New code I'm working on triggered an
	assertion inside remove(), but I'm surprised this bug hadn't
	manifested before !

1897
1898
1899
1900
1901
1902
2006-06-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* iface/gspn/common.hh, iface/gspn/common.cc, iface/gspn/gspn.cc,
	iface/gspn/ltlgspn.cc, iface/gspn/dottygspn.cc, iface/gspn/ssp.cc,
	iface/gspn/dottyssp.cc: s/exeption/exception/g.

1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
2006-04-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
	(couvreur99_check_shy_ssp): Add a onepass_ attribute to
	disable the "shyness", and do not increment pos before calling
	find_state since gspn's implementation uses it.
	* iface/gspn/ssp.cc: Enable "onepass_" for all "shy" variants,
	and also fix find_state for the case where onepass_ is
	disabled (but I do not yet know why the latter fix isn't enough).

1913
1914
2006-02-15  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1915
1916
1917
	* src/tgbaalgos/gtec/gtec.cc: Add a third level hash, to split
	each container into lists of states with identical formula states.

1918
1919
1920
1921
	* iface/gspn/ltlgspn.cc, src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gtec/gtec.hh: New option (-e6) to disable
	inclusion check in the stack.

1922
1923
1924
	* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
	Count the number of removed components.

1925
1926
1927
1928
1929
1930
1931
1932
1933
2006-02-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>
	    Soheib Baarir  <Souheib.Baarir@lip6.fr>

	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state,
	numbered_state_heap_ssp_semi): Implement a double hash_map using
	greatspn's new container() function.
	* iface/gspn/ssp.hh (gspn_ssp_interface): Add a doublehash option.
	* iface/gspn/ltlgspn.cc: Add option -1 to disable this optimization.

1934
1935
1936
1937
2006-02-11  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/ltl2tgba.cc: Pacify sanity.test.

1938
1939
2006-02-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
	* src/tgbaparse/public.hh (tgba_parse): Take two environments
	instead of one : one for the atomic propositions, and one
	for the acceptance conditions.  This way it's easy for
	the tools in iface/gspn/ to require some atomic proposition
	to be declared and allow any acceptance conditions (there is nothing
	to adjust in this files because of the default value of the argument).
	* src/tgbaparse/tgbaparse.yy: Adjust.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/readsave.cc,
	src/tgbatest/reductgba.cc, src/tgbatest/tgbaread.cc: Adjust calls.

1950
1951
1952
	* src/tgbaparse/tgbaparse.yy (acc_decl): Diagnose acceptance
	conditions rejected by the environment.

1953
1954
1955
1956
	* iface/gspn/ltlgspn.cc (display_stats): New function.
	(main): Use it.
	* iface/gspn/ssp.cc: Add more counters for statistics.

1957
1958
1959
1960
1961
	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Correctly
	update the emptiness statistics.

	* m4/gspnlib.m4: Typo.

1962
2006-02-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1963
1964
1965

	* iface/gspn/ssp.cc: Pacify sanity.test.

1966
1967
2006-02-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

Alexandre Duret-Lutz's avatar
typos    
Alexandre Duret-Lutz committed
1968
	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Typo.
1969

1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
2006-02-02  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::check):
	Reorganize this function so that syntactically there is only one
	loop over the successors, and not two.  Call reintroduce the call
	to couvreur99_check_shy::state_index(), needed by SSP, and
	suppress that to index_and_insert introduced on 2004-12-29.  Also
	split the "group" option in two: "group" and "group2".  "group2"
	is the equivalent of the older "group", while the new "group" is
	weaker and faster.
Alexandre Duret-Lutz's avatar
typos    
Alexandre Duret-Lutz committed
1980
	(couvreur99_check_shy::find_state): Change prototype as needed by
1981
1982
1983
1984
	the algorithm.
	* src/tgbaalgos/gtec/gtec.hh: Adjust.
	* src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gtec/nsheap.cc
	(index_and_insert): Remove.
Alexandre Duret-Lutz's avatar
typos    
Alexandre Duret-Lutz committed
1985
	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Adjust
1986
1987
1988
1989
	to new prototype.
	* bench/emptchk/README, bench/emptchk/algorithms: Adjust references
	to group/group2.

1990
1991
1992
1993
2006-01-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1994
1995
1996
1997
2006-01-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* NEWS, README, configure.ac: Update for version 0.3.

1998
1999
2000
2001
2002
2006-01-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* wrap/python/cgi/ltl2tgba.in: Fix degeneralisation and output of
	accepting runs.

2003
2006-01-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>
2004
2005
2006
2007
2008

	* wrap/python/spot.i: Wrap spot::emptiness_check_instantiator.
	* wrap/python/cgi/ltl2tgba.in: Offers all 6 emptiness
	check algorithms, and a text box for options.

2009
2006-01-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>
2010
2011
2012
2013

	* src/tgbaalgos/ndfs_result.hxx (ndfs_result::construct_cycle):
	Initialize tmp to suppress a GCC 4.0.1 warning (seen on Darwin).

2014
2015
2016
2017
2018
2019
2006-01-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/defs.in (VALGRIND): Use --log-fd instead of
	--logfile-fd to please newer versions of Valgrind.
	* src/ltltest/defs.in, src/evtgbatest/defs.in: Likewise.

2020
2021
2005-09-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2022
2023
2024
	* src/ltlparse/ltlparse.yy (result): Do not assign to $$, it's useless.
	Suggested by Akim.

2025
2026
2027
2028
	* src/tgbatest/randtgba.cc: New option -H.
	* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics_copy): New
	class.

2029
2030
2031
2032
2005-09-27  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/randtgba.cc: New option -S.

2033
2034
2035
2036
2005-09-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/lbtt.cc: Typo.

2037
2038
2039
2040
2041
2005-09-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/randtgba.cc (default_algos): Test the "ordering"
	heuristic.

2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2005-09-20  Heikki Tauriainen  <heikki.tauriainen@tkk.fi>

	* src/tgbaalgos/tau03opt.cc: Include <vector>.
	(tau03_opt_search): Add option "ordering" (off by default).
	If enabled, initialize an explicit ordering for acceptance
	conditions into the new member "cond" (a vector of bdds).
	(project_acc): New helper function for projecting a set of
	acceptance conditions to a subset that maximizes the number
	of initial consecutive conditions covered by the set in the
	condition ordering.
	(dfs_blue): Implement the ordering heuristic.
	(dfs_red): Use a sentinel in condition_stack to avoid explicit
	checks for the stack's emptiness.
	Consider also the conditions in acc when checking for the
	completion of an accepting cycle.
	Fix the implementation of condition heuristic.
	Implement the ordering heuristic.
	Simplify the removal of elements from condition_stack (due to
	the way in which elements are pushed on the stack, there can
	be at most one element with a given depth in the stack at any
	one time).

2064
2065
2066
2067
2068
2069
2005-09-05  Heikki Tauriainen  <heikki.tauriainen@tkk.fi>

	* src/tgbaalgos/ndfs_result.hxx (ndfs_result::construct_prefix):
	Initialize tmp to suppress a GCC 4.0 warning.
	* src/ltltest/randltl.cc (main): Likewise with another variable.

2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2005-09-05  Heikki Tauriainen  <heikki.tauriainen@tkk.fi>

	* src/ltlast/visitor.hh (visitor, const_visitor): Add empty
	virtual destructors.
	* src/tgba/tgbabddfactory.hh (tgba_bdd_factory): Likewise.
	* src/misc/hash.hh: Use the std namespace only with GCC 3.0,
	not with all compiler versions with minor version 0.
	* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator): Fix
	friend declaration of ::spot::tgba_tba_proxy.

2080
2081
2082
2083
2005-09-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/magic.hh: \fixme is not a doxygen command.  Use \bug.

2084
2085
2005-08-31  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2086
2087
	* README: Update lbtt references.

2088
2089
	* iface/gspn/ssp.cc: Typo in comment.

2090
2091
	* lbtt/: Merge lbtt 1.2.0.

2092
2093
2094
2095
2096
2097
2005-06-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/reductgba_sim_del.cc
	(parity_game_graph_delayed::get_relation): Disable for generalized
	automata, it's wrong.

2098
2099
2005-05-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2100
2101
2102
	* src/tgbaalgos/reductgba_sim_del.cc
	(parity_game_graph_delayed::nb_set_acc_cond): Simplify.

2103
2104
2105
2106
	* sanity/style.test: Catch misuses of Sgi::.
	* tgba/tgbareduc.hh, tgbaalgos/reductgba_sim.cc,
	tgbaalgos/reductgba_sim.hh, tgbaalgos/reductgba_sim_del.cc: Fix them.

2107
2108
2109
2110
2005-05-16  Denis Poitrenaud  <dp@src.lip6.fr>

	* src/ltlvisit/syntimpl.cc: Fix a typo.

2111
2112
2113
2114
2005-05-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/ltlvisit/syntimpl.cc: Fix detection of purely eventual formulae.

2115
2116
2117
2118
2005-05-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/ltl2tgba_fm.cc: Fix handling of fair_loop_approx.

2119
2120
2005-05-04  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2121
2122
2123
2124
2125
	* src/misc/hashfunc.hh (knuth32_hash): New function.
	* src/misc/hash.hh (ptr_hash): Use knuth32_hash.
	* src/tgba/tgbabddconcretefactory.hh (tgba_bdd_concrete_factory): Use
	ltl::formula_ptr_hash for acc_map_.

2126
2127
2128
2129
2130
2131
2132
	* src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_fm.cc: Add
	the reduce_ltl argument.
	* src/tgbatest/ltl2tgba.cc: Add options -fr1, -fr2, -fr3, and -fr4.
	* src/tgbatest/spotlbtt.test, bench/ltl2tgba/algorithms: Test -fr4.
	* bench/ltl2tgba/parseout.pl: Suppress Perl warnings on disabled
	algorithms.

2133
2134
2135
2136
2137
2138
2005-04-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* bench/ltl2tgba/README: More instructions.
	* bench/Makefile.am (SUBDIRS): Add ltl2tgba.
	* README: Mention bench/ltl2tgba.

2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2005-04-15  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* bench/ltl2tgba/Makefile.am, bench/ltl2tgba/README,
	bench/ltl2tgba/algorithms, bench/ltl2tgba/big,
	bench/ltl2tgba/defs.in, bench/ltl2tgba/formulae.ltl,
	bench/ltl2tgba/known, bench/ltl2tgba/parseout.pl,
	bench/ltl2tgba/small: New files.
	* src/tgbatest/ltl2baw.pl: Move ...
	* bench/ltl2tgba/ltl2baw.in: ... here.
	* src/tgbatest/Makefile.am: Adjust.
	* configure.ac: Adjust.

2151
2152
2153
2154
2155
2005-04-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/ltl2tgba.cc (main): Delete the reduced automaton
	before the degeneralized automaton.