ChangeLog 225 KB
Newer Older
1
2
3
4
5
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>
6
7
8
9
10

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

11
12
13
14
15
2007-07-26  Alexandre Duret-Lutz  <adl@gnu.org>

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

16
17
2007-07-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

18
19
20
21
	* iface/gspn/ltlgspn.cc: New option -L.
	* iface/gspn/ssp.cc, iface/gspn/ssp.hh (gspn_ssp_interface)
	support for a new option "pushfront".

22
23
	* NEWS, configure.in: Bump version to 0.4a.

24
25
26
27
28
29
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.

30
31
32
33
34
35
36
37
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>
38
39
40

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

41
2007-04-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>
42

Alexandre Duret-Lutz's avatar
typo    
Alexandre Duret-Lutz committed
43
	* src/tgbatest/ltl2tgba.cc (main): Fix handling of -R1q -R1t -R2q -R2t.
44
45
46
47
	Add support for -r8/-fr8.

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

48
2007-04-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>
49
50
51
52
53
54

	* 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.

55
2007-04-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>
56
57
58
59

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

60
2007-04-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>
61

62
63
64
65
66
67
68
	* 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.

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

72
2007-04-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>
73
74
75
76
77

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

78
2007-02-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>
79
80
81
82
83

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

84
85
2006-08-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

86
87
	* HACKING: We need Bison 2.3.

88
89
90
	* evtgbaparse/evtgbaparse.yy, ltlparse/ltlparse.yy,
	tgbaparse/tgbaparse.yy: Fix Bison warnings about unset $$.

91
92
93
94
95
	* 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.

96
97
98
99
100
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>
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

	* 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).

117
118
119
120
121
122
123
124
125
126
127
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.

128
129
130
131
132
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.

133
134
2006-07-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>

135
136
137
138
139
140
141
142
143
144
145
	* 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.

146
147
148
149
150
151
152
153
154
155
156
157
	* 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.

158
159
160
161
162
	* 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.

163
164
165
166
167
168
169
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.

170
171
2006-07-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

172
173
174
175
176
177
178
179
180
	* 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.

181
182
183
	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
184
185
	number of BDD variable after they have been allocated.  Otherwise
	the first bdd_dict() created was leaking BDD variable #1.
186

187
188
189
190
	* 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.

191
192
2006-07-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

193
194
195
196
197
198
199
200
	* 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.

201
202
203
204
205
206
	* 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 !

207
208
209
210
211
212
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.

213
214
215
216
217
218
219
220
221
222
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).

223
224
2006-02-15  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

228
229
230
231
	* iface/gspn/ltlgspn.cc, src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gtec/gtec.hh: New option (-e6) to disable
	inclusion check in the stack.

232
233
234
	* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
	Count the number of removed components.

235
236
237
238
239
240
241
242
243
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.

244
245
246
247
2006-02-11  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

248
249
2006-02-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

250
251
252
253
254
255
256
257
258
259
	* 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.

260
261
262
	* src/tgbaparse/tgbaparse.yy (acc_decl): Diagnose acceptance
	conditions rejected by the environment.

263
264
265
266
	* iface/gspn/ltlgspn.cc (display_stats): New function.
	(main): Use it.
	* iface/gspn/ssp.cc: Add more counters for statistics.

267
268
269
270
271
	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Correctly
	update the emptiness statistics.

	* m4/gspnlib.m4: Typo.

272
2006-02-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>
273
274
275

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

276
277
2006-02-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

280
281
282
283
284
285
286
287
288
289
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
290
	(couvreur99_check_shy::find_state): Change prototype as needed by
291
292
293
294
	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
295
	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Adjust
296
297
298
299
	to new prototype.
	* bench/emptchk/README, bench/emptchk/algorithms: Adjust references
	to group/group2.

300
301
302
303
2006-01-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

304
305
306
307
2006-01-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

308
309
310
311
312
2006-01-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

313
2006-01-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>
314
315
316
317
318

	* 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.

319
2006-01-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>
320
321
322
323

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

324
325
326
327
328
329
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.

330
331
2005-09-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

332
333
334
	* src/ltlparse/ltlparse.yy (result): Do not assign to $$, it's useless.
	Suggested by Akim.

335
336
337
338
	* src/tgbatest/randtgba.cc: New option -H.
	* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics_copy): New
	class.

339
340
341
342
2005-09-27  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

343
344
345
346
2005-09-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/lbtt.cc: Typo.

347
348
349
350
351
2005-09-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
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).

374
375
376
377
378
379
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.

380
381
382
383
384
385
386
387
388
389
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.

390
391
392
393
2005-09-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

394
395
2005-08-31  Alexandre Duret-Lutz  <adl@src.lip6.fr>

396
397
	* README: Update lbtt references.

398
399
	* iface/gspn/ssp.cc: Typo in comment.

400
401
	* lbtt/: Merge lbtt 1.2.0.

402
403
404
405
406
407
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.

408
409
2005-05-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

410
411
412
	* src/tgbaalgos/reductgba_sim_del.cc
	(parity_game_graph_delayed::nb_set_acc_cond): Simplify.

413
414
415
416
	* 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.

417
418
419
420
2005-05-16  Denis Poitrenaud  <dp@src.lip6.fr>

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

421
422
423
424
2005-05-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

425
426
427
428
2005-05-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

429
430
2005-05-04  Alexandre Duret-Lutz  <adl@src.lip6.fr>

431
432
433
434
435
	* 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_.

436
437
438
439
440
441
442
	* 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.

443
444
445
446
447
448
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.

449
450
451
452
453
454
455
456
457
458
459
460
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.

461
462
463
464
465
2005-04-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

466
467
468
469
2005-04-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* doc/Makefile.am (doc, $(srcdir)/stamp): Ignore rm's errors.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
470
471
472
473
2005-04-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* README: Typos.

474
475
476
477
2005-04-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

478
479
2005-04-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>

480
481
	* NEWS, configure.ac: Bump version to 0.2.

482
483
484
	* bench/emptchk/README: Mention
	http://spot.lip6.fr/wiki/EmptinessCheckOptions for the syntax.

485
486
2005-04-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

487
488
489
490
	* src/tgbaparse/tgbaparse.yy (acc_list): Do not explicitly delete
	an undeclared acceptance condition.
	* src/tgbaalgos/save.cc (print_acc): Unquote atomic propositions.

491
492
493
494
495
496
	* bench/emptchk/Makefile.am: Create reduced versions of the graphs.
	* bench/emptchk/pml2tgba.pl: Add option -r.
	* bench/emptchk/pml-clserv.sh, bench/emptchk/pml-eeaean.sh:
	Also run on reduced graphs (this is fast).
	* bench/emptchk/README: Adjust.

497
498
499
500
501
2005-02-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/ltlvisit/length.cc (length_visitor): Rewrite using
	postfix_visitor.

502
503
2005-02-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

504
505
506
	* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Add options "weights"
	and "redweights" (on by default).

507
508
509
	* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Do not
	account for the size of condition_stack.

510
511
2005-02-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>

512
513
514
515
516
517
518
519
520
521
522
523
	* src/sanity/style.test: Catch occurrences of "accepting condition".
	* bench/emptchk/ltl-human.sh, bench/emptchk/ltl-random.sh,
	src/sanity/style.test, src/tgba/bdddict.cc,
	src/tgba/succiterconcrete.hh, src/tgba/tgbabddcoredata.hh,
	src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
	src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh,
	src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
	src/tgbaalgos/se05.cc, src/tgbaalgos/se05.hh,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
	src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
	src/tgbatest/dfs.test: Replace them by "acceptance condition".

524
525
526
	* src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03.hh: Include
	misc/optionmap.hh.

527
528
2005-02-18  Alexandre Duret-Lutz  <adl@src.lip6.fr>

529
530
	* bench/emptchk/README: Document the file `algorithms'.

531
532
533
534
	* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Implement the
	"condition heuristic".  Suggested by Heikki Tauriainen.
	* src/tgbatest/randtgba.cc: Test it.

535
536
537
538
539
540
541
542
543
	* src/tgbatest/randtgba.cc: Remplace the -O option by -A, reading
	all algorithms from a file.  Use the emptiness_check_instantiator
	syntax as name in the output.
	* bench/emptchk/defs.in: DEfine ALGORITHMS here.
	* bench/emptchk/ltl-human.sh, bench/emptchk/ltl-random.sh,
	bench/emptchk/pml-clserv.sh, bench/emptchk/pml-clserv.sh: Use
	$ALGORITHMS.
	* src/misc/timer.cc: Truncate long keys in display.

544
545
546
547
548
549
550
551
552
553
	* src/tgbatest/ltl2tgba.cc: Simplify using
	emptiness_check_instantiator.
	* src/tgba/tgba.cc, src/tgba/tgba.hh
	(tgba::number_of_acceptance_conditions): Return an unsigned.
	* bench/emptchk/algorithms, bench/emptchk/README,
	src/tgbatest/emptchk.test, src/tgbatest/emptchke.test: Adjust
	references to algorithms.
	* bench/emptchk/pml-clserv.sh, bench/emptchk/pml-eeaean.sh: Quote
	variables properly.

554
555
2005-02-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

556
557
558
559
560
561
	* src/tgbaalgos/emptiness.hh, src/tgbaalgos/emptiness.cc
	(emptiness_check_instantiator): New class.
	* src/misc/optionmap.hh (set (const option_map&)): New method.
	* src/tgbatest/randtgba.cc: Create every emptiness check via
	emptiness_check_instantiator.

562
563
564
565
566
567
	* src/tgbaalgos/emptiness.hh,
	src/tgbaalgos/emptiness.cc (emptiness_check::safe): New method.
	* src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
	src/tgbaalgos/se05.hh, src/tgbaalgos/se05.cc: Implement it.
	* src/tgbatest/randtgba.cc: Simplify.

568
569
570
571
572
	* src/tgbaalgos/magic.hh, src/tgbaalgos/magic.cc,
	src/tgbaalgos/se05.hh, src/tgbaalgos/se05.cc: Provide wrapper
	functions that read the hash-map size from a "bsh" option.
	* src/tgbatest/randtgba.cc: Simplify.

573
574
575
576
577
578
579
580
581
	* src/misc/optionmap.hh, src/misc/optionmap.cc
	(option_map::parse_options): Rewrite.  Do not modify the input
	string, allow !foo as a shorthand for foo=0, and support K and
	M suffixes for values.
	* src/tgbatest/randtgba.cc (cons_emptiness_check): Simplify.
	* wrap/python/spot.i: Process optionmap.hh.
	* wrap/python/tests/optionmap.py: New file.
	* wrap/python/tests/Makefile.am (TESTS): Add it.

582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
2005-02-16  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/misc/optionmap.cc, src/misc/optionmap.hh (option_map::get,
	option_map::set): Handle default values.
	(anonymous::to_int): Do not print anything.
	* src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
	src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
	src/tgbaalgos/ce.cc, src/tgbaalgos/ce.hh: Take an option_map in
	the constructor.
	* src/tgbaalgos/gtec.cc, src/tgbaalgos/gtec.hh: Likewise.  Handle
	the "poprem", "group", and "shy" options via the option_map.
	Supply a couvreur99() wrapper to the shy/non-shy variant.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
	iface/gspn/ssp.cc: Adjust.

598
599
600
601
602
603
2005-02-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/randtgba.cc: Factorize more code using the
	unsigned_statistics interface.
	* bench/emptchk/README: Adjust description of output.

604
605
606
607
608
609
2005-02-07  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/sanity/style.test: Strip all strings before checking the
	file, so that strings are not checked for our C++ style.
	Reported by Denis (with a chainsaw).

610
611
612
613
2005-02-07  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/misc/optionmap.cc, src/misc/optionmap.hh: Typo (Hummm).

614
615
616
617
618
619
620
621
622
623
624
2005-02-07  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/misc/optionmap.cc, src/misc/optionmap.hh (option_map): New class.
	* src/misc/Makefile.am: Add it.
	* src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh: Add option
	facilities to the classes emptiness_check and emptiness_result
	* src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
	src/tgbaalgos/se05.cc, src/tgbaalgos/se05.hh: Compute optionnaly
	accepting runs from stack.
	* src/tgbatest/randtgba.cc: Make this option public.

625
626
627
628
2005-02-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/misc/ltstr.hh: Include <functional>

629
630
2005-02-04  Alexandre Duret-Lutz  <adl@src.lip6.fr>

631
632
633
634
635
636
	* src/tgbatest/randtgba.cc (stat_collector): New class, replacing...
	(ec_stat, acss_stat, ars_stat, print_ec_stats, print_acss_stats,
	print_ars_stats): ... these.
	* tgbaalgos/emptiness_stats.hh (unsigned_statistics): Make the
	map public.

637
638
639
	* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics::stats_map_):
	Use char_ptr_less_than.

640
641
642
	* src/misc/ltstr.hh: New file.
	* src/misc/Makefile.am (misc_HEADERS): Add it.

643
644
645
	* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics::stats_map_):
	Use char* for keys, not std::string.

646
647
2005-02-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

648
649
650
651
652
653
654
655
656
657
658
	* tgbaalgos/emptiness_stats.hh (unsigned_statistics): New base
	class for ec_statistics and ars_statistics.
	(acss_statistics): Inherit from ars_statistics.
	* tgbaalgos/emptiness.cc, tgbaalgos/emptiness.hh:
	(emptiness_check::statistics, emptiness_check_result::statistics):
	New methods.
	* tgbatest/randtgba.cc: Adjust to use the above.
	* tgbaalgos/gv04.cc, tgbaalgos/ndfs_result.hxx, tgbaalgos/gtec/ce.cc,
	tgbaalgos/gtec/ce.hh: Do not inherit from ars_statistics if
	acss_statistics is used.

659
660
	* src/tgbaalgos/gtec/gtec.hh (couvreur99_check): Add pseudo code.

661
662
2005-02-02  Alexandre Duret-Lutz  <adl@src.lip6.fr>

663
664
665
	* src/tgbaalgos/randomgraph.cc (random_graph): Make sure n > 0.
	* src/tgbatest/randtgba.cc: Check the range of all arguments.

666
667
668
669
670
671
672
673
	* bench/emptchk/models/eeaean1.pml: New file, from schwoon.05.tacas.
	* bench/emptchk/Makefile.am: Distribute models/eeaean1.pml
	and build models/eeaean1.tgba.
	* bench/emptchk/pml-eeaean.sh: Check models/eeaean1.pml.
	* bench/emptchk/README: Adjust.
	* bench/emptchk/defs.in (RANDTGBA, LTL2TGBA): These tools are in
	the build tree, not the source tree...

674
675
676
677
678
679
	These tests are huge, and are obsoleted by randtgba-based checks,
	and by bench/emptchk/.
	* src/tgbatest/tba_samples_from_spin.test: Delete.
	* src/tgbatest/tba_samples_from_spin/: Delete.
	* src/tgbatest/Makefile.am: Adjust.

680
681
2005-02-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

682
683
684
685
686
687
688
689
690
	* src/evtgbaparse/evtgbaparse.yy, src/evtgbaparse/evtgbascan.ll,
	src/evtgbaparse/fmterror.cc, src/evtgbaparse/parsedecl.hh,
	src/evtgbaparse/public.hh, src/evtgbatest/product.cc,
	src/evtgbatest/readsave.cc, src/ltlparse/fmterror.cc,
	src/ltlparse/ltlparse.yy, src/ltlparse/parsedecl.hh,
	src/ltlparse/public.hh, src/tgbaparse/parsedecl.hh,
	src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy: Update
	to Bison 2.0.

691
692
	* bench/emptchk/pml2tgba.pl (usage): Correct description.  From Denis.

693
694
	* bench/emptchk/README: Timing info from Denis.

695
696
697
	* src/tgbatest/randtgba.cc (main): Skip empty lines.
	(syntax): Categorize options.

698
699
2005-01-31  Alexandre Duret-Lutz  <adl@src.lip6.fr>

700
701
702
703
704
	* src/tgbatest/explicit.test, src/tgbatest/explpro2.test,
	src/tgbatest/explprod.test, src/tgbatest/tripprod.test,
	src/evtgbatest/explicit.test: Do not reorder the output.
	It's pointless since 2005-01-20.

705
706
	* configure.ac, NEWS: Bump version to 0.1a.

707
708
	* configure.ac, NEWS: Bump version to 0.1.

709
710
711
712
713
714
715
716
2005-01-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* bench/emptchk/Makefile.am (dist_noinst_SCRIPTS): Add pml-clserv.sh
	and pml-eeaean.sh.
	* bench/emptchk/ltl-human.sh: Typo in densities.
	Reported by Denis.

2005-01-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>
717

718
719
	* doc/mainpage.dox: More text, and a link to "Modules".

720
721
722
	* src/tgbatest/ltl2tgba.cc (main): Silence the "filename.tgba read"
	message if -0 is used.

723
724
	* bench/emptchk/formulae.ltl: New file.

725
726
	* src/tgbaalgos/gtec/gtec.hh (couvreur99_check): Document poprem.

727
728
	* bench/emptchk/README: Make clearer that spin is needed.

729
730
	* src/tgbatest/randtgba.cc (syntax): Missing std::endl.

731
2005-01-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>
732
733
	    Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
	* bench/Makefile.am, bench/emptchk/Makefile.am,
	bench/emptchk/README, bench/emptchk/algorithms,
	bench/emptchk/defs.in, bench/emptchk/ltl-human.sh,
	bench/emptchk/ltl-random.sh, bench/emptchk/pml-clserv.sh,
	bench/emptchk/pml-eeaean.sh, bench/emptchk/pml2tgba.pl,
	bench/emptchk/models/cl3serv1.pml,
	bench/emptchk/models/cl3serv3.pml,
	bench/emptchk/models/clserv.ltl, bench/emptchk/models/eeaean.ltl,
	bench/emptchk/models/eeaean2.pml: New files.
	* README: Adjust.
	* configure.ac: Output bench/Makefile and bench/emptchk/Makefile.
	Check for PERL, and define the NEVER conditional.
	* Makefile.am (SUBDIRS) [NEVER]: Add bench.


749
750
751
752
753
754
755
756
757
758
759
2005-01-28  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/emptiness_stats.hh: Make sure depth() >= 0.
	* src/tgbaalgos/gtec/gtec.hh (couvreur99_check, couvreur99_check_shy):
	Add the poprem option.
	* src/tgbaalgos/gtec/gtec.cc: Implement it.
	* src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh
	(scc_stack::rem, scc_stack::clear_rem,
	scc_stack::connected_component::rem): New.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Add rem variants.

760
761
762
763
764
765
766
2005-01-28  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbatest/dfs.test, src/tgbatest/emptchk.test,
	src/tgbatest/emptchke.test, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/randtgba.cc, src/tgbatest/tba_samples_from_spin.test:
	Adjust names of emptiness check algorithms.

767
768
769
770
771
772
2005-01-27  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaalgos/gtec/gtec.cc: Adjust statistics count to match
	how the algorithm will behave once remove_component() is revamped. From
	Alexandre.

773
774
775
776
777
2005-01-27  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_cycle):
	More ref in comment.

778
779
780
781
782
783
784
2005-01-26  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/gv04.cc, src/tgbaalgos/ndfs_result.hxx,
	src/tgbaalgos/gtec/ce.cc: Do not account for states that are
	computed but not visited by the BFS&DFS used to construct
	accepting runs.

785
786
787
788
789
790
791
792
2005-01-25  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbatest/randtgba.cc: Complete performance measurements.

	* src/tgbatest/ltl2tgba.cc: Typo.

	* src/tgbaalgos/magic.hh: Correct pseudo-code.

793
794
2005-01-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

795
796
797
	* src/tgbaalgos/tau03opt.hh, src/tgbaalgos/se05.hh: Correct
	pseudo-code.  From Denis.

798
799
800
	* src/tgbaalgos/gtec/gtec.cc: Fake statistics count to match
	how the algorithm will behave once remove_component() is revamped.

801
802
803
804
805
806
	* src/tgbaalgos/emptiness_stats.hh (ars_statistics): Distinguish
	states visited to compute the prefix and those for the cycle.
	* src/tgbaalgos/gv04.cc, src/tgbaalgos/ndfs_result.hxx,
	src/tgbaalgos/gtec/ce.cc: Adjust.
	* src/tgbatest/randtgba.cc: Print both statistics.

807
808
809
2005-01-24  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbatest/randtgba.cc, src/tgbatest/ltl2tgba.cc: Add options
810
	dedicated to display of stats.
811

812
813
814
815
2005-01-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/randtgba.cc: Some fixes from Denis for ratio stats.

816
817
2005-01-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>

818
819
820
	* src/ltlast/formula.hh (formula_ptr_less_than): Two
	formulae with the same hash key are not necessary equal!

821
822
823
824
825
826
827
828
829
830
831
	* src/ltlast/formula.hh (hash, dump, dump_, hash_key_): New members.
	(formula_ptr_less_than, formula_ptr_hash): New class.
	* src/ltlast/atomic_prop.cc, src/ltlast/binop.cc,
	src/ltlast/constant.cc, src/ltlast/formula.cc,
	src/ltlast/multop.cc, src/ltlast/unop.cc: Adjust to handle dump_.
	* src/ltlvisit/apcollect.cc, src/ltlvisit/apcollect.hh:
	Sort the set using formula_ptr_less_than.
	* src/ltlvisit/dump.cc: Simplify using ->dump().
	* src/tgbaalgos/ltl2tgba_fm.cc: Sort all maps to get deterministic
	results.

832
833
2005-01-18  Alexandre Duret-Lutz  <adl@src.lip6.fr>

834
835
	* src/tgbaalgos/tau03opt.hh (explicit_tau03_opt_search): Doco.

836
837
838
839
840
841
842
843
844
845
846
	* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::clear_todo,
	couvreur99_check_shy::check): Sum all successors in the
	todo stack AND all items on the stack.

2005-01-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/emptiness_stats.hh (ec_statistics::depth): New function.
	* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::clear_todo,
	couvreur99_check_shy::check): Count all successors in the
	todo stack rather than all items on the stack.

847
848
849
850
2005-01-13  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbatest/randtgba.cc: Close the formula file and remove a trace.

851
852
853
854
855
856
2005-01-13  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbatest/randtgba.cc: Add products with formulae issued of a file
	and more statistics.
	* src/tgbatest/readsave.test: Undo previous change.

857
858
859
860
2005-01-13  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbatest/readsave.test: Fix parameter of randtgba call.

861
862
863
2005-01-12  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbatest/randtgba.cc: Add products with randomized formulae and
864
	more statistics.
865

866
867
868
869
870
2005-01-11  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/gv04.cc (result): Implement the acss_statistics,
	and ars_statistics interfaces.

871
872
873
874
2005-01-11  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/ltltest/randltl.cc: Typo.

875
876
877
878
879
880
2005-01-11  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaparse/tgbaparse.yy: Accept automaton without state.

	* src/ltltest/randltl.cc: Typo.

881
882
883
884
2005-01-10  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbatest/randtgba.cc: Typo.

885
886
2005-01-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

887
888
	* src/tgbatest/ltl2tgba.cc: Typo.

889
890
	* src/tgbatest/randtgba.cc: Add option -P.

891
892
893
894
895
2005-01-10  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaalgos/tau03.cc: Typo.
	* src/tgbatest/ltl2tgba.cc: Add option -b.

896
897
898
899
900
901
902
2005-01-07  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/ndfs_result.hxx (ndfs_result, acss_interface):
	Conditionally inherit from acss_statistics.
	* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03opt.cc: Define Has_Size in all heaps.

903
904
905
906
907
908
909
910
911
912
2005-01-06  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/ltltest/randltl.cc: Include cassert.

	* src/tgbaalgos/ndfs_result.hxx: Implement the spot::acss_statistics
	interface.
	* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03opt.cc: Add to each heap class a method returning its
	size.

913
914
915
916
917
2005-01-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/ltltest/randltl.cc: Add options -r and -u.
	* src/ltltest/reduc.test: Use randltl -u, and run it through valgrind.

918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
2005-01-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh: New files.
	* src/ltlvisit/Makefile.am (ltlvisit_HEADERS,
	libltlvisit_la_SOURCES): Distribute them.
	* src/ltltest/randltl.cc: New file.
	* src/ltltest/Makefile.am (LDADD): Link with ../libspot.la directly.
	(noinst_PROGRAMS, randltl_SOURCES): New.
	(EXTRA_DIST, CLEANFILES): The list of random formulae is now generated.
	* src/ltltest/formulae.txt: Delete.
	* src/ltltest/reduc.test: Use randltl to generate formulae.
	* src/ltlvisit/length.cc (length_visitor): Fix computation
	of the length of multops.
	* src/ltlvisit/length.hh (length): Document the length of multops.

933
934
935
936
937
2005-01-04  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/sanity/includes.test: Also check *.hxx files.
	* src/tgbaalgos/ndfs_result.hxx: Rename the include guard.

938
939
2005-01-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

940
941
942
943
944
945
946
947
948
949
	* doc/Doxyfile.in (FILE_PATTERNS): Remove *.hxx.
	* src/sanity/80columns.test, src/sanity/style.test: Process *.hxx files.
	* src/tgbaalgos/ndfs_result.hh: Rename as ..
	* src/tgbaalgos/ndfs_result.hxx: ... this, so it does not get
	documented (and so Doxygen do not complain).
	* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03opt.cc: Adjust include.
	* src/tgbaalgos/Makefile.am: Rename ndfs_result.hh as ndfs_result.hxx
	and do not install it, this is a private header.

950
951
952
953
	* src/tgbaalgos/emptiness.hh: Declare Doxygen group
	emptiness_check_stats.
	* src/tgbaalgos/emptiness_stats.hh: Use it.

954
955
956
957
958
	* doc/Doxyfile.in: Update for Doxygen 1.4.0, set
	DOT_MULTI_TARGETS, and disable GROUP_GRAPH (it causes segfault).
	* src/tgbaparse/public.hh (format_tgba_parse_errors): Complete
	Doxygen comment.

959
960
961
962
963
964
965
966
967
968
969
970
971
	* src/tgbaalgos/emptiness_stats.hh (ars_statistics): New class.
	* src/tgbaalgos/ndfs_result.hh (ndfs_result): Inherit from
	ars_statistics.
	(ndfs_result::dfs): Call inc_ars_states().
	(ndfs_result::test_path, ndfs_result::min_path): Update ars_statistics.
	* tgbaalgos/gtec/ce.hh (couvreur99_check_result): Inherit
	from ars_statistics.
	* tgbaalgos/gtec/ce.cc (shortest_path,
	couvreur99_check_result::accepting_cycle::scc_bfs):
	Update ars_statistics.
	* src/tgbatest/randtgba.cc: Display statistics about accepting run
	search.

972
973
	* src/tgbaalgos/bfssteps.hh (bfs_steps::finalize): Document.

974
975
976
977
978
979
980
	* src/tgbaalgos/emptiness_stats.hh (accs_statistics): New class.
	* src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh
	(couvreur99_check_result): Inherit from acss_statistics.
	(couvreur99_check_result::acss_states): Implement it.
	* src/tgbatest/randtgba.cc: Display statistics about accepting cycle
	search space.

981
982
983
	* src/tgbaalgos/ndfs_result.hh (construct_prefix): Do not call
	erase() after splice(), splice() already removes the elements.

984
985
986
987
988
989
990
991
992
993
994
	* src/evtgba/evtgbaiter.hh, src/ltlast/formula.hh,
	src/ltlast/refformula.hh, src/ltlenv/defaultenv.hh,
	src/misc/bareword.hh, src/tgba/succiter.hh,
	src/tgba/tgbabddfactory.hh, src/tgba/tgbareduc.hh,
	src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptiness_stats.hh,
	src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.hh,
	src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/tau03opt.hh: Add
	or fix include guards.
	* src/sanity/includes.test: Check the presence of the include
	guard.

995
996
997
998
999
1000
1001
1002
1003
1004
1005
2004-12-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gtec/nsheap.cc
	(index_and_insert): New function.
	* src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::check): Rewrite.
	(couvreur99_check_shy::clear_todo): New method.
	* src/tgbaalgos/gtec/gtec.hh (couvreur99_check_shy::todo_item): New
	struct.
	* iface/gspn/ssp.cc (numbered_state_heap_ssp_semi::index_and_insert):
	New method.

1006
1007
1008
1009
1010
2004-12-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* doc/Doxyfile.in (EXCLUDE_SYMLINKS): Set to YES, since we have no
	legitimate symlink in our source tree.  Requested by Akim Demaille.

1011
1012
1013
1014
1015
1016
1017
2004-12-20  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaalgos/ndfs_result.hh: Rewrite the computation of accepting
	runs.
	* src/tgbaalgos/bfssteps.hh, src/tgbaalgos/bfssteps.cc: Add the method
	finalize witch compute (by default) the traversed path.
	* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc: Fix a bug concerning
1018
	the heap used for bit state hashing version and adjust the prototype of
1019
	has_been_visited and pop_notify.
1020
1021
	* src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: adjust the
	prototype of has_been_visited and pop_notify.
1022

1023
1024
1025
1026
2004-12-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/ndfs_result.hh: Include misc/hash.hh.

1027
1028
2004-12-16  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1029
	* src/tgbaalgos/reducerun.cc (reduce_run): Do not call erase() after
1030
	splice(), splice() already removes the elements.
1031
1032
1033
	* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_run):
	Likewise.

1034
1035
1036
	* src/tgbatest/randtgba.cc: Add option -O, so we can profile each
	emptiness-check on its own.

1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
	* src/ltlparse/ltlscan.ll: Pass yyleng to the std::string constructor,
	so it doesn't have to compute it.
	* src/tgbaparse/tgbascan.ll: Likewise.
	(YY_USER_INIT, current_file): Remove, it is too costly to use
	yy::Location::filename in the current implementation
	of yy::Location (this attribute is duplicated for each token).
	Leaving it empty divides the parsing time by 3.
	* src/tgbaparse/fmterror.cc, src/tgbaparse/public.hh
	(format_tgba_parse_errors): Take the filename as argument.
	* src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/mixprod.cc, src/tgbatest/powerset.cc,
	src/tgbatest/readsave.cc, src/tgbatest/reductgba.cc,
	src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc,
	iface/gspn/dottyssp.cc, iface/gspn/ltlgspn.cc: Adjust calls
	to format_tgba_parse_errors.

1053
1054
2004-12-15  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1055
1056
1057
	* src/tgbaparse/tgbaparse.yy: Cache parsed formulae to speedup
	reading of TGBAs with lots of identical conditions.

1058
1059
1060
1061
1062
1063
1064
1065
	* src/tgba/bdddict.hh (bdd_dict) <fv_map, vf_map, ref_set,
	vr_map, free_annonymous_list_of_type>: Redeclare as std::map,
	instead of Sgi::hash_map.  It proved to be faster.
	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict) <fv_map, vf_map>:
	Use the same definition as in bdd_dict.
	* tgbaalgos/reachiter.hh, tgbaalgos/replayrun.cc: Explicitly
	include misc/hash.hh.

1066
1067
1068
1069
1070
1071
1072
1073
	Adjust Swig rules for Swig 1.3.24 (and probably 1.3.23 too).
	Compiling the runtime in a separate modules is no longer required,
	and actually it does not work anymore...
	* wrap/python/swigpy.i: Remove.
	* wrap/python/Makefile.am (_swigpy.la): Remove all references.
	($(srcdir)/spot_wrap.cxx, $(srcdir)/buddy_wrap.cxx): Do not
	use -noruntime.

1074
1075
1076
1077
2004-12-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1078
1079
1080
1081
2004-12-14  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaalgos/ndfs_result.hh: Define the trace output stream.

1082
1083
1084
1085
1086
1087
1088
1089
1090
2004-12-13  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaalgos/ndfs_result.hh: New file factorizing the computation of
	accepting runs for ndfs emptiness check algoritms.
	* src/tgbaalgos/Makefile.am: Add it.
	* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: Remove the old
	result classes and use the new one.

1091
1092
2004-12-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
	* src/tgbaalgos/gtec/status.hh
	(couvreur99_check_status::cycle_seed): New attribute.
	* src/tgbaalgos/gtec/gtec.cc (couvreur99_check::check,
	couvreur99_check_shy::check): Fill cycle_seed.
	* src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/ce.cc:
	(couvreur99_check_result::accepting_run,
	couvreur99_check_result::accepting_cycle): Revamp to compute a
	cycle from the cycle_start, and then the shortest prefix to this
	cycle.

	* iface/gspn/ltlgspn.cc, iface/gspn/ssp.hh, iface/gspn/ssp.cc: Disable
	the functions that were using the interface I have just broken.

1106
1107
1108
1109
1110
1111
	* src/tgbaalgos/gtec/nsheap.hh (numbered_state_heap::find): Clarify
	comment.

	* src/tgba/tgbareduc.hh: Include tgbaalgos/gtec/nsheap.hh,
	not tgbaalgos/gtec/status.hh.

1112
1113
1114
1115
2004-12-10  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/misc/timer.cc, src/tgbatest/randtgba.cc: Format the statistics.

1116
1117
2004-12-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1118
1119
1120
	* src/tgbatest/emptchkr.test: Tune the "big degeneralized" test
	so it actually explore some accepting automata.

1121
1122
1123
1124
1125
1126
1127
1128
1129
	* src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/gtec.cc
	(couvreur99_check_shy::couvreur99_check_shy): Add the group option,
	and redefine todo as a list so it can be iterated over.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Introduce
	couvreur99_shy- (for group=false) in addition to couvreur99_shy
	(for group=true).
	* iface/gspn/ssp.cc (couvreur99_check_ssp_shy_semi,
	couvreur99_check_ssp_shy): Use group=true;

1130
1131
1132
1133
	* src/tgbaalgos/randomgraph.cc (random_graph): Do not use the
	pointer of the state created as keys in sets; otherwise the graph
	created depends on the memory layout.

1134
1135
1136
1137
1138
2004-12-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgba/tgbaexplicit.cc (tgba_explicit::create_transition):
	Make sure to create the source state before the destination state.

1139
1140
1141
1142
1143
2004-12-08  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaalgos/emptiness.cc: Suppress a horrible space before a ')'.

2004-12-08  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>
1144
1145
1146
1147

	* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
	(set_init_state): Return a pointer to the initial state.

1148
	* src/tgbaalgos/emptiness.hh, src/tgbaalgos/emptiness.cc
1149
	(tgba_run_to_tgba): New function.
1150
	* src/tgbatest/ltl2tgba.cc: Add option -G.
1151

1152
1153
2004-12-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1154
1155
	* src/tgbaalgos/replayrun.cc (replay_tgba_run): More comments.

1156
1157
1158
1159
1160
1161
	* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh
	(tgba_explicit::create_transition(state*, const state*)): New function.
	* src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh:
	(random_graph): Revamp the algorithm to call rand() less often.
	* src/tgbatest/randtgba.cc: Add option -0 to easy profiling.

1162
1163
	* src/misc/random.hh: Add include guard.

1164
1165
2004-12-07  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1166
1167
1168
1169
1170
	* src/misc/random.hh (nrand, bmrand, prand): New functions.
	(barand): New class.
	* src/misc/random.cc (nrand, bmrand, prand): New functions.
	* wrap/python/spot.i: Process src/misc/random.hh.

1171
1172
1173
	* src/misc/timer.cc: Do not include cassert, then.

2004-12-07  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>
1174
1175
1176
1177
1178
1179

	* src/tgbaalgos/tau03opt.cc: Fix a memory leak in the computation of
	accepting runs

	* src/misc/timer.hh: Include cassert.

1180
1181
1182
1183
2004-12-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/misc/timer.cc: Include cassert.

1184
1185
1186
1187
1188
1189
1190
1191
2004-11-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/misc/timer.hh, src/misc/timer.cc: New files.
	* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
	* src/tgbatest/randtgba.cc: Use time_map to measure the algorithms.
	Add the -R option.
	* src/sanity/style.sh: Let me use `for (.*;;)'.

1192
1193
1194
1195
1196
2004-11-29  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaalgos/tau03opt.cc: Add a first version of the computation of
	accepting runs

1197
1198
2004-11-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1199
1200
1201
1202
1203
1204
1205
	* src/tgbaalgos/minimizerun.cc, src/tgbaalgos/minimizerun.hh
	(minimize_run): Rename as ...
	* src/tgbaalgos/reducerun.cc, src/tgbaalgos/reducerun.hh:
	(reduce_run): ... this.
	* src/tgbaalgos/Makefile.am, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/randtgba.cc: Adjust all references.

1206
1207
1208
1209
	* src/tgbatest/emptchkr.test: Try degeneralized automata.
	* src/tgbatest/randtgba.cc (main): Pass the correct automaton to
	minimize_run().

1210
1211
2004-11-28  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1212
1213
1214
1215
1216
	* src/ltltest/equals.cc (main): Add option -E.
	* src/ltltest/parseerr.test: Use `equals -E' instead of `readltl'
	to check the parsing of erroneous strings without being sensible
	to the ordering for formulae in memory.

1217
1218
1219
	* src/tgbatest/randtgba.cc (to_float): Use strtod() instead of
	strtof() to please Solaris 9.

1220
1221
1222
	* configure.ac (AM_INIT_AUTOMAKE): Use option tar-ustar, we have
	filenames longer than 99 bytes.

1223
1224
1225
1226
	* wrap/python/tests/run.in: Do not override PYTHONPATH, just add
	to it.
	Report from Akim Demaille.

1227
1228
1229
	* src/sanity/style.test: Make sure grep supports the options put
	into GREP_OPTIONS.

1230
1231
1232
1233
	* wrap/python/tests/run.in: Define DYLD_LIBRARY_PATH so that
	Darwin finds non-installed libraries.
	Report from Akim Demaille.

1234
1235
	* src/tgbatest/ltl2tgba.cc (syntax): Mention gv04 in help text.

1236
1237
1238
1239
1240
2004-11-27  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/minimizerun.cc: Shut up a GCC warning when assert
	are disabled.

1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
2004-11-27  Alexandre Duret-Lutz  <adl@src.lip6.fr>
	    Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaalgos/minimizerun.hh, src/tgbaalgos/minimizerun.cc: New
	files.
	* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
	libtgbaalgos_la_SOURCES): Add them/
	* src/tgbatest/randtgba.cc, src/tgbatest/ltl2tgba.cc: Add option -m.
	* src/tgbatest/emptchkr.test: Use -m.

1251
1252
1253
1254
1255
1256
1257
1258
1259
2004-11-25  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>

	* src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
	src/tgbaalgos/se05.cc, src/tgbaalgos/se05.hh,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.hh,
	src/tgbaalgos/tau03opt.cc: Fix comments and debug traces

	* src/tgbatest/randtgba.cc: Adjust names of algorithms.

1260
1261
2004-11-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1262
1263
	* src/tgbatest/randtgba.cc: Add option -D.

1264
1265
1266
1267
1268
1269
1270
1271
	* src/tgbaalgos/emptiness.hh (emptiness_check, emptiness_check_result):
	Add the TGBA considered as a protected attribute, and provide an
	automaton() accessor.
	* src/tgbaalgos/gv04.cc, src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc,
	src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/gtec.cc: Adjust to follow
	this new interface.

1272
1273
2004-11-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1274
1275
1276
1277
	* src/tgbaalgos/bfssteps.hh, src/tgbaalgos/bfssteps.cc: Revert
	previous change (bfs_steps_with_path_conditions turned up
	useless), and document bfs_step.

1278
1279
1280
1281
	* src/tgbaalgos/bfssteps.hh (bfs_steps_with_path_conditions): New
	class.
	* src/tgbaalgos/bfssteps.cc: Remove includes that are now superfluous.

1282
1283
1284
1285
	* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_run,
	couvreur99_check_result::accepting_cycle): Rewrite the BFSs using
	the bfs_steps class.

1286
1287
1288
1289
1290
1291
	* src/tgbaalgos/bfssteps.hh, src/tgbaalgos/bfssteps.cc: New files.
	* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
	libtgbaalgos_la_SOURCES): Add them.
	* src/tgbaalgos/gv04.cc (gv04::result::accepting_run): Use
	the new bfs_steps class.

1292
1293
1294
1295
1296
1297
1298
2004-11-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/gv04.cc (gv04::result): New struct to compute
	counter examples.
	(gv04:check): Return a gv04::result.

2004-11-23  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>
1299
1300
1301

	* src/tgbaalgos/tau03opt.cc: Fix a warning.

1302
1303
2004-11-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1304
1305
1306
1307
1308
	* src/tgbaalgos/gv04.cc (gv04): Inherit from ec_statistics.
	(gv04::check, gv04::push, gv04::pop): Update the statistics for
	randtgba.
	(gv04::print_stats): Print them here too.

1309
1310
1311
1312
1313
	* src/tgbaalgos/gtec/gtec.cc (couvreur99_check::check,
	couvreur99_check_shy::check): Compute more statistics for
	randtgba.
	(couvreur99_check::print_stats): Print these here too.

1314
1315
	* src/sanity/style.test: Allow "'" after ",".

1316
1317
1318
1319
1320
1321
1322
1323
1324
	* src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh: New files, partly
	based on Thomas Martinez's src/tgbaalgos/tarjan_on_fly.cc and
	src/tgbaalgos/tarjan_on_fly.hh former implementation.
	* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES,
	tgbaalgos_HEADERS): Add them.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Bind the
	new algorithm.
	* src/tgbatest/emptchk.test: Test it.

1325
2004-11-22  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339

	* src/tgbaalgos/emptiness_stats.hh, src/tgbaalgos/weight.cc,
	src/tgbaalgos/weight.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbaalgos/magic.cc, src/tgbaalgos/se05.cc,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/status.cc,
	src/tgbaalgos/gtec/status.hh, : Add emptiness check statistics
	capability.
	* src/tgbatest/randtgba.cc: Print these statistics.
	* src/tgbatest/ltl2tgba.cc: tau03opt search can deal without acceptance
	condition.
	* src/tgbatest/emptchk.test: Test tau03opt search.

1340
1341
1342
1343
1344
1345
1346
1347
1348
2004-11-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/magic.hh, src/tgbaalgos/magic.cc,
	src/tgbaalgos/se05.hh, src/tgbaalgos/se05.cc,
	src/tgbaalgos/tau03.hh, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03opt.cc: Fix
	copyright year, and do not include <iterator>.

2004-11-18  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1349
1350
1351
1352

	* src/tgbatest/randtgba.cc (main): Add options -z and -Z for statistics.
	(ce_stat): New struct.

1353
2004-11-17  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363

	* src/tgbaalgos/se05.hh, src/tgbaalgos/tau03.hh: Typo.
	* src/tgbaalgos/tau03.cc: Suppress optimisations, the algorithm is now
	the original one.
	* src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03opt.cc: New files
	implementing most of all the optimisations of tau03.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Make them public.
	* src/tgbatest/tba_samples_from_spin.test: Test them.

1364
1365
2004-11-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1366
1367
1368
	* src/tgba/tgba.hh, src/tgbaalgos/ltl2tgba_fm.hh,
	src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/stats.hh: Typos.

1369
1370
1371
1372
1373
1374
	* src/tgbatest/Makefile.am (EXTRA_DIST): Distribute the files
	from tba_samples_from_spin.
	* src/tgbatest/tba_samples_from_spin.test: Get these example files
	from $srcdir, for the sake of VPATH builds.
	(light_run): Remove, not needed.

1375
1376
1377
1378
1379
1380
	* src/misc/bareword.hh, src/misc/bddalloc.hh, src/misc/bddlt.hh,
	src/misc/escape.hh, src/misc/freelist.hh, src/misc/hash.hh,
	src/misc/hashfunc.hh, src/misc/minato.hh, src/misc/modgray.hh,
	src/misc/random.hh, src/misc/version.hh, src/tgba/state.hh: More
	Doxygen groups.

1381
2004-11-17  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391

	* src/tgbaalgos/magic.hh: Fix a comment and remove se05 interface.
	* src/tgbaalgos/magic.cc: Fix a comment.
	* src/tgbaalgos/se05.hh: New file.
	* src/tgbaalgos/se05.cc: Fix a comment.
	* src/tgbaalgos/tau03.hh: New file.
	* src/tgbaalgos/tau03.cc: New file.
	* src/tgbaalgos/Makefile.am: Add it.
	* src/tgbatest/ltl2tgba.cc: Add tau03 new emptiness check.
	* src/tgbatest/randtgba.cc: Add tau03 new emptiness check.
1392
	* src/tgbatest/emptchkr.test: Fix a comment.
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
	* src/tgbatest/tba_samples_from_spin/explicit1_1.tba,
	src/tgbatest/tba_samples_from_spin/explicit1_2.tba,
	src/tgbatest/tba_samples_from_spin/explicit1_3.tba,
	src/tgbatest/tba_samples_from_spin/explicit1_4.tba,
	src/tgbatest/tba_samples_from_spin/explicit1_5.tba,
	src/tgbatest/tba_samples_from_spin/explicit1_6.tba,
	src/tgbatest/tba_samples_from_spin/explicit1_7.tba,
	src/tgbatest/tba_samples_from_spin/explicit1_8.tba,
	src/tgbatest/tba_samples_from_spin/explicit1_9.tba,
	src/tgbatest/tba_samples_from_spin/explicit2_1.tba,
	src/tgbatest/tba_samples_from_spin/explicit2_2.tba,
	src/tgbatest/tba_samples_from_spin/explicit2_3.tba,
	src/tgbatest/tba_samples_from_spin/explicit2_4.tba,
	src/tgbatest/tba_samples_from_spin/explicit2_5.tba,
	src/tgbatest/tba_samples_from_spin/explicit2_6.tba,
	src/tgbatest/tba_samples_from_spin/explicit2_7.tba,
	src/tgbatest/tba_samples_from_spin/explicit2_8.tba,
	src/tgbatest/tba_samples_from_spin/explicit2_9.tba: New files
	* src/tgbatest/tba_samples_from_spin.test : New test.
	* src/tgbatest/Makefile.am: Add it.

1414
1415
2004-11-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
	* src/tgba/tgba.hh, src/tgbaalgos/dotty.hh,
	src/tgbaalgos/dottydec.hh, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/emptiness.hh, src/tgbaalgos/lbtt.hh,
	src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.hh,
	src/tgbaalgos/neverclaim.hh, src/tgbaalgos/powerset.hh,
	src/tgbaalgos/projrun.hh, src/tgbaalgos/randomgraph.hh,
	src/tgbaalgos/reachiter.hh, src/tgbaalgos/reductgba_sim.hh,
	src/tgbaalgos/replayrun.hh, src/tgbaalgos/rundotdec.hh
	src/tgbaalgos/save.hh, src/tgbaalgos/stats.hh,
	src/tgbaparse/public.hh: Add Doxygen groups for TGBA algorithms.

1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
	* src/ltlast/atomic_prop.hh, src/ltlast/binop.hh,
	src/ltlast/constant.hh, src/ltlast/formula.hh,
	src/ltlast/multop.hh, src/ltlast/refformula.hh,
	src/ltlast/unop.hh, src/ltlast/visitor.hh, src/ltlenv/declenv.hh,
	src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
	src/ltlparse/public.hh, src/ltlvisit/apcollect.hh,
	src/ltlvisit/basicreduce.hh, src/ltlvisit/clone.hh,
	src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh,
	src/ltlvisit/dump.hh, src/ltlvisit/length.hh,
	src/ltlvisit/lunabbrev.hh, src/ltlvisit/nenoform.hh: Add Doxygen
	groups for LTL algorithms and types.
	* doc/Makefile.am (fast-doc): New target.

1440
1441
1442
	* src/misc/hashfunc.hh: Include cstddef to define size_t, and guard
	the file for multiple inclusions.

1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
	* src/tgba/bdddict.hh, src/tgba/state.hh, src/tgba/statebdd.hh,
	src/tgba/succiter.hh, src/tgba/succiterconcrete.hh,
	src/tgba/tgba.hh, src/tgba/tgbabddconcrete.hh,
	src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbaexplicit.hh,
	src/tgba/tgbaproduct.hh, src/tgba/tgbareduc.hh,
	src/tgba/tgbatba.hh, src/tgbaalgos/emptiness.hh,
	src/tgbaalgos/magic.hh, src/tgbaalgos/replayrun.hh,
	src/tgbaalgos/gtec/gtec.hh, iface/gspn/ssp.hh: Introduce Doxygen
	groups in the documentation.  Presently this only covers the
	tgba/ directory, and the emptiness-check algorithms.
	* doc/Doxyfile.in (EXCLUDE_PATTERNS): Skip Bison-generated files
	in src/evtgbaparse/.

1456
1457
2004-11-16  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
	* src/tgba/tgbatba.hh (tgba_sba_proxy): New class, with the
	functionality of the old tgba_tba_proxy.
	* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator,
	tgba_tba_proxy): Rewrite to produce TBA with at most N copies of
	each state, skipping the `bddtrue' stage now used only in
	tgba_sba_proxy.  Doing so removes approximately 6% of states in
	the degeneralized tests of spotlbtt.test.
	(tgba_sba_proxy): Implement it.
	* src/tgbaalgos/neverclaim.hh, src/tgbaalgos/neverclaim.cc: Adjust
	to take a tgba_sba_proxy.
	* src/tgbatest/ltl2tgba.cc: Add option -DS and adjust call to
	never_claim_reachable().

1471
1472
1473
	* src/tgba/tgbatba.cc (state_tba_proxy::hash): Use wang32_hash.
	* src/tgba/tgbaproduct.cc (state_product::hash): Likewise.

1474
1475
1476
1477
1478
	* src/misc/hashfunc.hh (wang32_hash): New file and function,
	extracted from...
	* src/evtgba/product.cc (evtgba_product_state::hash): ... here.
	* src/misc/Makefile.am (misc_HEADERS): Add hashfunc.hh.

1479
2004-11-15  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1480
1481
1482
1483
1484
1485
1486

	* src/tgbatest/ltl2tgba.cc (main): For non-generalized emptiness
	check, degeneralize the automaton only if it has too much
	acceptance conditions.  This makes it easier to reproduce runs
	of randtgba.
	* src/tgbatest/emptchk.test: Adjust.

1487
2004-11-15  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>
1488
1489
1490
1491
1492

	* src/tgbaalgos/magic.cc: Fix a stupid bug.
	* src/tgbaalgos/se05.cc: Fix the same bug.
	* src/tgbatest/Makefile.am: Signify that emptchkr.test pass.

1493
1494
2004-11-15  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1495
1496
1497
1498
	* tgbatest/randtgba.cc: Add options -e and -r.
	* tgbatest/emptchkr.test: New file.
	* src/tgbatest/Makefile.am (TESTS, XFAIL_TESTS): Add emptchkr.test.

1499
1500
1501
	* src/tgbaalgos/replayrun.cc (replay_tgba_run): Fix a memory leak
	if debug==false.

1502
1503
1504
1505
	* src/tgbaalgos/randomgraph.cc (random_graph): Do declare all the
	acceptance conditions in the produced automaton, in case they are
	not actually used.

1506
1507
1508
	* src/tgbaalgos/replayrun.cc (replay_tgba_run): Write to the
	supplied stream, not std::cout.

1509
2004-11-15  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>
1510
1511
1512
1513
1514
1515
1516
1517

	* src/tgbaalgos/magic.cc: Add a bit state hashing version.
	* src/tgbaalgos/se05.cc: Add a bit state hashing version.
	* src/tgbaalgos/magic.hh: Make them public.
	* src/tgbatest/ltl2tgba.cc: Add the two new emptiness checks.
	* src/tgbatest/emptchk.test: Incorporate tests of src/tgbatest/dfs.test.
	* src/tgbatest/dfs.test: Introduce new characteristic explicit tests.

1518
1519
1520
1521
1522
1523
1524
2004-11-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* wrap/python/cgi/ltl2tgba.in: Add options to check the produced
	automata for emptiness, using the existing algorithms.
	* wrap/python/spot.i: Declare spot::explicit_magic_search,
	and spot::explicit_se05_search as allocating their output.

1525
1526
2004-11-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1527
1528
1529
1530
	* configure.ac: Check for srand48 and drand48.
	* src/misc/random.cc (srand, drand): Use srand48 and drand48 if
	available.

1531
1532
1533
1534
1535
1536
1537
1538
	* src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh: New files.
	* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS)
	(libtgbaalgos_la_SOURCES): Add them.
	* src/tgba/tgbaexplicit.hh (tgba_explicit::add_state): Make it public.
	* src/tgbatest/randtgba.cc: New file.
	* src/tgbatest/Makefile.am (noinst_PROGRAMS, readsave_SOURCES): Add it.
	* src/tgbatest/readsave.test: Check a random graph.

1539
1540
1541
	* misc/random.cc, misc/random.hh: New files.
	* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.

1542
1543
2004-11-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1544
1545
1546
	* src/evtgbaparse/public.hh (evtgba_parse): Fix doxygen comments.
	* src/tgbaalgos/projrun.hh (project_tgba_run): Likewise.

1547
1548
	* src/tgbaalgos/emptiness.hh (print_tgba_run): Document it.

1549
1550
1551
1552
1553
1554
1555
	* src/tgbaalgos/replayrun.hh,
	src/tgbaalgos/replayrun.cc (replay_tgba_run): Take a `debug'
	option to decide whether the output should look like that of
	print_tgba_run() or a complete debug trace.
	* src/tgbatest/ltl2tgba.cc (main): Call replay_tgba_run() with
	debug=true.

1556
1557
1558
1559
1560
	* iface/gspn/ltlgspn.cc (main): Adjust to recent changes to
	src/tgbaalgos/magic.cc, call explicit_magic_search() instead of
	building a spot::magic_search.
	* iface/gspn/udcseltl.test: Adjust to new output of print_tgba_run().

1561
1562
2004-11-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1563
1564
1565
	* src/tgbatest/Makefile.am (TESTS): Remove non-existing magic.test
	and se05.test.

1566
1567
1568
	* src/tgbatest/ltl2tgba.cc (syntax): Fix old typos and reword
	some help strings.

1569
2004-11-09  Denis Poitrenaud  <Denis.Poitrenaud@lip6.fr>
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581

	* src/tgbaalgos/magic.cc: rewrite to externalize the heap and
	prepare it to a bit state hashing version.
	* src/tgbaalgos/magic.hh: adapt to the new interface of
	magic_search and se05_search.
	* src/tgbaalgos/se05.cc: new file.
	* src/tgbaalgos/Makefile.am: Add it.
	* src/tgbatest/ltl2tgba.cc: Add new emptiness check.
	* src/tgbatest/emptchk.test: more tests.
	* src/tgbatest/dfs.test: new file.
	* src/tgbatest/Makefile.am: Add it.

1582
1583
1584
1585
1586
2004-11-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/emptiness.cc (print_tgba_run): Output the
	labels as formulae rather than bdd sets.

1587
1588
2004-11-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1589
1590
1591
1592
1593
1594
1595
	* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_path):
	Rewrite as ...
	(couvreur99_check_result::accepting_cycle): ... this less complex
	implementation.
	(couvreur99_check_result::complete_cycle): Delete.
	* src/tgbatest/emptchke.test: More explicit examples.

1596
1597
1598
	* src/tgbaalgos/replayrun.cc (replay_tgba_run): Do not leak
	the initial state when no valid outgoing transition is found.

1599
1600
1601
1602
1603
	* src/tgbaparse/tgbaparse.yy: Add `%destructor's so the parser
	does not leak on errors.
	* src/tgbatest/ltl2tgba.cc: Free the automata if it could not be
	fully parsed.

1604
1605
1606
	* src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_run):
	Remove spurious FIXME.

1607
1608
2004-11-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1609
1610
1611
1612
	* src/evtgbaalgos/save.cc (save_bfs::output_acc_set): Sort
	acceptance conditions in the output.
	* src/evtgbatest/readsave.test, src/evtgbatest/product.test: Adjust.

1613
1614
1615
	* src/tgbaalgos/rundotdec.cc (tgba_run_dotty_decorator::link_decl):
	Typo.

1616
1617
2004-11-04  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1618
1619
1620
	* src/tgbaalgos/neverclaim.cc (never_claim_bfs::process_link):
	Adjust prototype.

1621
1622
1623
1624
	* src/tgba/tgba.hh, src/tgba/tgba.cc
	(tgba::number_of_acceptance_conditions): New method.
	* src/tgbaalgos/lbtt.cc (lbtt_bfs::lbtt_bfs): Use it.

1625
1626
1627
1628
	* wrap/python/spot.i: Generate bindings for tgbaalgos/dottydec.hh,
	tgbaalgos/emptiness.hh, tgbaalgos/gtec/gtec.hh, and
	tgbaalgos/rundotdec.hh.

1629
1630
	* src/tgbaalgos/lbtt.cc (lbtt_bfs::process_link): Adjust prototype.

1631
1632
2004-11-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
	* src/tgbaalgos/dottydec.cc, src/tgbaalgos/dottydec.hh,
	src/tgbaalgos/rundotdec.cc, src/tgbaalgos/rundotdec.hh: New files.
	* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
	libtgbaalgos_la_SOURCES): Add them.
	* src/tgbaalgos/dotty.hh (dotty_reachable): Take a dotty_decorator
	as third parameter.
	* src/tgbaalgos/dotty.cc (dotty_bfs::process_state,
	dotty_bfs::process_link): Use the decorator.
	* src/tgbatest/ltl2tgba.cc: Graph the accepting run if the -g option
	is given.
1643
	* src/tgbatest/emptchk.test: Exercise -g.
1644

1645
1646
	* src/tgbaalgos/replayrun.cc (replay_tgba_run): Add missing std::endl.

1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
	* tgbaalgos/reachiter.hh, tgbaalgos/reachiter.cc
	(tgba_reachable_iterator::process_link): Take the state* as arguments
	in addition to the state numbers.
	* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
	(tgba_explicit::copy_acceptance_conditions_of): New method.
	* tgbaalgos/dupexp.cc (dupexp_iter::dupexp_iter): Call
	copy_acceptance_conditions_of.
	(dupexp_iter::process_state, duplex_iter::declare_state,
	dupexp_iter::name_): Remove.
	(dupexp_iter::process_link): Adjust prototype, and format
	the state here rather than in process_state.
	* tgbaalgos/stats.cc, tgbaalgos/dotty.cc: Adjust prototype
	of process_link.

1661
1662
2004-11-02  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1663
1664
	* src/ltlvisit/reduce.hh (is_eventual, is_universal): More doc.

1665
1666
1667
1668
1669
	* src/tgbaalgos/projrun.hh, src/tgbaalgos/projrun.cc: New files.
	* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
	libtgbaalgos_la_SOURCES): Add them.
	* iface/gspn/ltlgspn.cc (main): Call project_tgba_run if -P.

1670
1671
1672
1673
1674
1675
1676
	* src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/emptiness.hh (print_tgba_run): Take the tgba*
	argument before the tgba_run* argument (for consistency with
	replay_tgba_run).
	* src/tgbatest/ltl2tgba.cc, iface/gspn/ltlgspn.cc: Adjust
	calls to print_tgba_run().

1677
1678
	* src/ltlast/formula.hh (ltl::formula::~formula): Make it protected.

1679
1680
2004-10-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
	A tgba can now annotate a transition (i.e., the position of a
	tgba_succ_iterator) with some string.  This comes handy to
	associate that transition to its high-level name.
	* src/tgba/tgba.hh, src/tgba/tgba.cc (tgba::transition_annotation):
	New method.
	* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
	(tgba_product::transition_annotation): Implement it.
	* src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
	(tgba_tba_proxy::transition_annotation): Likewise.
	* src/tgbaalgos/replayrun.cc (print_annotation): New function.
	(replay_tgba_run): Use it.

1693
1694
1695
1696
	* src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gtec/gtec.hh (couvreur99_check::print_stats): New.
	* src/tgbatest/ltl2tgba.cc: Print emptiness-check statistics.

1697
1698
1699
1700
1701
1702
	* src/sanity/style.test: Diagnose superfluous constructs such
	as `if (x) delete x;'.
	* iface/gspn/gspn.cc, iface/gspn/ssp.cc, src/ltlvisit/basicreduce.cc,
	src/tgba/tgba.cc, src/tgba/tgbaproduct.cc, src/tgbaalgos/magic.cc,
	src/tgbatest/ltl2tgba.cc: Remove such constructs.

1703
1704
1705
1706
	* src/tgbatest/ltl2tgba.cc: Replace -e, -E, -m, -M, and -n by
	-eALGO and -EALGO to ease the addition of new algorithms.
	* src/tgbatest/emptchk.test, src/tgbatest/emptchke.test: Adjust.

1707
1708
1709
	* src/misc/version.cc: Fix trailing whitespace.
	* src/sanity/style.test: Diagnose trailing whitespace.