ChangeLog 280 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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.

21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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.

36
37
38
39
40
2009-11-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

41
42
43
44
45
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.

46
47
48
49
50
2009-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

51
52
53
54
55
56
57
58
59
60
61
62
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.

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

68
69
70
71
72
73
74
75
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.

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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.

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

115
116
117
118
119
2009-11-20  Alexandre Duret-Lutz  <adl@va-et-vient.net>

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

120
121
122
123
124
125
126
127
128
129
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.

130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
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().

146
147
148
149
150
151
152
153
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.

154
155
156
157
158
159
160
161
162
163
164
165
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.

166
167
168
169
170
171
172
173
174
175
176
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.

177
178
179
180
181
182
183
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.

184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
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.

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

223
224
225
226
227
228
229
230
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.

231
232
233
234
235
236
237
238
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.

239
240
241
242
243
244
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.

245
246
247
248
249
250
251
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.

252
253
254
255
256
257
258
259
260
261
262
263
264
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.

265
266
267
268
269
270
271
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.

272
273
274
275
276
277
278
279
280
281
282
283
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.

284
285
286
287
288
289
290
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.

291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
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.

310
311
312
313
314
315
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.

316
317
318
319
320
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.

321
322
323
324
325
326
327
328
329
330
331
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.

332
333
334
335
336
337
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.

338
339
340
341
342
343
344
345
346
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
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.

372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
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.

387
388
389
390
391
392
393
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.

394
395
396
397
398
399
400
401
402
403
404
405
406
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.

407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
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.

434
435
436
437
438
439
440
441
442
443
444
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.

445
446
447
448
449
450
451
452
453
454
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*.

455
456
457
458
459
460
461
462
463
464
465
466
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.

467
468
469
470
2009-11-07  Damien Lefortier <dam@lrde.epita.fr>

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

471
472
473
474
475
476
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.

477
478
479
480
481
482
483
484
485
486
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...

487
488
489
490
491
492
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.

493
494
495
496
497
498
499
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.

500
501
2009-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

502
	Fix a longstanding bug reported by Kristin Y. Rozier.
503
504
505
506
507
508
509
510

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

511
512
513
514
515
516
517
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.

518
519
520
521
522
523
524
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.

525
526
527
528
529
530
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.

531
532
533
534
2009-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

535
536
537
538
539
540
541
542
543
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.

544
545
546
547
2009-10-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/ltl2tgba_fm.cc: Typos.

Damien Lefortier's avatar
Damien Lefortier committed
548
549
550
551
552
553
554
555
556
557
558
559
560
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
561
562
563
564
565
566
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
567
568
569
570
571
572
573
574
575
576
577
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.

578
579
580
581
582
583
584
585
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
586
	* src/tgbatest/ltl2tgba.cc: New option: -taa, which uses this new
587
588
589
	translation algorithm.
	* src/tgbatest/spotlbtt.test: Add ltl2tgba -taa.

590
591
592
593
594
595
596
597
598
599
600
601
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
602
603
604
605
606
2009-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

607
608
609
610
611
612
613
614
615
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.

616
617
618
619
620
621
622
623
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.

624
625
626
627
628
629
630
631
632
633
634
635
636
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.

637
638
639
640
641
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.

642
643
644
645
646
647
648
649
650
651
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.

652
653
654
655
656
657
658
659
660
661
662
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
663
664
665
666
667
668
669
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.

670
671
672
673
674
675
676
677
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.

678
679
680
681
682
683
684
685
686
687
688
689
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().

690
691
692
693
694
695
696
697
698
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
699
700
701
702
703
704
705
706
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.

707
708
709
710
711
712
713
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.

714
715
716
717
718
719
720
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.

721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
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.

736
737
738
739
740
741
742
743
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.

744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
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.

778
779
780
781
2009-08-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

782
783
784
785
786
787
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.

788
789
790
791
792
793
794
795
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.

796
797
798
799
2009-07-09  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

800
801
802
2009-07-08  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

Flix Abecassis's avatar
Flix Abecassis committed
804
805
806
807
808
809
810
811
812
813
814
815
816
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
817
	constants when translating to TGBA many LTL formulae from a
Flix Abecassis's avatar
Flix Abecassis committed
818
819
820
821
822
823
824
	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.

825
826
827
828
829
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.
830

831
832
833
834
2009-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

835
836
837
838
839
840
841
842
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
843
844
845
846
847
848
849
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.

850
851
852
853
854
855
856
857
858
859
860
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.

861
862
2009-06-09  Guillaume Sadegh  <sadegh@lrde.epita.fr>

863
864
	* src/tgba/tgbacomplement.cc, src/tgbatest/complementation.cc:
	Fix style.
865

866
867
868
869
870
2009-06-07  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

871
872
873
874
875
876
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.

877
878
879
880
881
882
883
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.

884
885
886
887
888
889
890
891
892
893
894
895
896
897
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.

898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
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.

920
921
922
923
924
925
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.

926
927
928
929
930
931
932
933
934
935
936
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.

937
938
939
940
941
942
943
944
945
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.

946
947
948
949
950
951
952
953
954
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.

955
956
957
958
959
960
961
962
963
964
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.

965
966
967
968
969
970
971
972
973
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.

974
975
976
977
978
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.

979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
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.

999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
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.

1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
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
1028
1029
1030
1031
1032
1033
1034
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.

1035
1036
1037
1038
1039
1040
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.

1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
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.

1055
1056
1057
1058
1059
1060
1061
1062
1063
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.

1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
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.

1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
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.

1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
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.

1136
1137
1138
1139
2009-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
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.

1157
1158
1159
1160
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
1161
1162
1163
1164
1165
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
1166
1167
1168
1169
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
1170
1171
1172
1173
1174
2009-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1175
1176
1177
1178
1179
1180
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'.

1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
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.

1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
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.

1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
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.

1223
1224
1225
1226
1227
1228
1229
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.

1230
1231
1232
1233
1234
1235
1236
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().

1237
1238
1239
1240
1241
1242
1243
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.

1244
1245
1246
1247
1248
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.

1249
1250
1251
1252
1253
1254
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.

1255
1256
1257
1258
1259
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.

1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
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.

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

1298
1299
1300
1301
1302
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.

1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
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.

1316
1317
1318
1319
1320
1321
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.

1322
1323
1324
1325
1326
1327
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.

1328
1329
2008-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

1330
1331
1332
	* iface/nips/dottynips.cc: Include ctsdlib for exit().
	* iface/nips/emptiness_check.cc: Likewise.

1333
1334
	* src/sanity/includes.test: Remove empty line at beginning of file.

1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
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.

1348
1349
1350
1351
2008-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1352
1353
1354
1355
1356
1357
1358
1359
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/.

1360
1361
2008-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1364
1365
1366
1367
	* iface/nips/Makefile.am (empt_check_LDADD, dottynips_LDADD):
	Do not link libnipsvm.la here...
	(libspotnips_la_LIBADD): ... do it here.

1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
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
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
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.

1423
1424
1425
1426
1427
1428
1429
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.

1430
1431
1432
1433
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
1434
1435
1436
1437
2008-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1438
1439
1440
1441
2008-03-21  Damien Lefortier <dam@lrde.epita.fr>

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

1442
1443
1444
1445
1446
2008-03-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
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.

1474
1475
1476
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
1477
	until Doxygen is fixed.  Doxygen 1.5.5 generates incorrect LaTeX
1478
1479
	code.

1480
1481
1482
1483
2008-02-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1484
1485
1486
1487
1488
2008-02-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1489
1490
1491
1492
1493
2008-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1494
1495
1496
1497
1498
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.

1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
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.

1514
1515
1516
1517
1518
1519
1520
1521
1522
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.

1523
1524
1525
1526
1527
2007-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1528
1529
1530
1531
1532
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>
1533
1534
1535
1536
1537

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

1538
1539
1540
1541
1542
2007-07-26  Alexandre Duret-Lutz  <adl@gnu.org>

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

1543
1544
2007-07-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1545
1546
1547
1548
	* iface/gspn/ltlgspn.cc: New option -L.
	* iface/gspn/ssp.cc, iface/gspn/ssp.hh (gspn_ssp_interface)
	support for a new option "pushfront".

1549
1550
	* NEWS, configure.in: Bump version to 0.4a.

1551
1552
1553
1554
1555
1556
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.

1557
1558
1559
1560
1561
1562
1563
1564
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>
1565
1566
1567

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

1568
2007-04-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1569

Alexandre Duret-Lutz's avatar
typo    
Alexandre Duret-Lutz committed
1570
	* src/tgbatest/ltl2tgba.cc (main): Fix handling of -R1q -R1t -R2q -R2t.
1571
1572
1573
1574
	Add support for -r8/-fr8.

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

1575
2007-04-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1576
1577
1578
1579
1580
1581

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

1582
2007-04-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1583
1584
1585
1586

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

1587
2007-04-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1588

1589
1590
1591
1592
1593
1594
1595
	* 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.

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

1599
2007-04-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1600
1601
1602
1603
1604

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

1605
2007-02-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1606
1607
1608
1609
1610

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

1611
1612
2006-08-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1613
1614
	* HACKING: We need Bison 2.3.

1615
1616
1617
	* evtgbaparse/evtgbaparse.yy, ltlparse/ltlparse.yy,
	tgbaparse/tgbaparse.yy: Fix Bison warnings about unset $$.

1618
1619
1620
1621
1622
	* 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.

1623
1624
1625
1626
1627
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>
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643

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

1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
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.

1655
1656
1657
1658
1659
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.

1660
1661
2006-07-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
	* 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.

1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
	* 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.

1685
1686
1687
1688
1689
	* 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.

1690
1691
1692
1693
1694
1695
1696
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.

1697
1698
2006-07-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1699
1700
1701
1702
1703
1704
1705
1706
1707
	* 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.

1708
1709
1710
	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
1711
1712
	number of BDD variable after they have been allocated.  Otherwise
	the first bdd_dict() created was leaking BDD variable #1.
1713

1714
1715
1716
1717
	* 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.

1718
1719
2006-07-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1720
1721
1722
1723
1724
1725
1726
1727
	* 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.

1728
1729
1730
1731
1732
1733
	* 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 !

1734
1735
1736
1737
1738
1739
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.

1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
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).

1750
1751
2006-02-15  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1755
1756
1757
1758
	* iface/gspn/ltlgspn.cc, src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gtec/gtec.hh: New option (-e6) to disable
	inclusion check in the stack.

1759
1760
1761
	* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
	Count the number of removed components.

1762
1763
1764
1765
1766
1767
1768
1769
1770
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.

1771
1772
1773
1774
2006-02-11  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1775
1776
2006-02-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
	* 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.

1787
1788
1789
	* src/tgbaparse/tgbaparse.yy (acc_decl): Diagnose acceptance
	conditions rejected by the environment.

1790
1791
1792
1793
	* iface/gspn/ltlgspn.cc (display_stats): New function.
	(main): Use it.
	* iface/gspn/ssp.cc: Add more counters for statistics.

1794
1795
1796
1797
1798
	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Correctly
	update the emptiness statistics.

	* m4/gspnlib.m4: Typo.

1799
2006-02-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1800
1801
1802

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

1803
1804
2006-02-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
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
1817
	(couvreur99_check_shy::find_state): Change prototype as needed by
1818
1819
1820
1821
	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
1822
	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Adjust
1823
1824
1825
1826
	to new prototype.
	* bench/emptchk/README, bench/emptchk/algorithms: Adjust references
	to group/group2.

1827
1828
1829
1830
2006-01-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1831
1832
1833
1834
2006-01-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1835
1836
1837
1838
1839
2006-01-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1840
2006-01-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1841
1842
1843
1844
1845

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

1846
2006-01-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1847
1848
1849
1850

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

1851
1852
1853
1854
1855
1856
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.

1857
1858
2005-09-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1859
1860
1861
	* src/ltlparse/ltlparse.yy (result): Do not assign to $$, it's useless.
	Suggested by Akim.

1862
1863
1864
1865
	* src/tgbatest/randtgba.cc: New option -H.
	* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics_copy): New
	class.

1866
1867
1868
1869
2005-09-27  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1870
1871
1872
1873
2005-09-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/lbtt.cc: Typo.

1874
1875
1876
1877
1878
2005-09-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
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).

1901
1902
1903
1904
1905
1906
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.

1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
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.

1917
1918
1919
1920
2005-09-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1921
1922
2005-08-31  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1923
1924
	* README: Update lbtt references.

1925
1926
	* iface/gspn/ssp.cc: Typo in comment.

1927
1928
	* lbtt/: Merge lbtt 1.2.0.

1929
1930
1931
1932
1933
1934
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.

1935
1936
2005-05-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1937
1938
1939
	* src/tgbaalgos/reductgba_sim_del.cc
	(parity_game_graph_delayed::nb_set_acc_cond): Simplify.

1940
1941
1942
1943
	* 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.

1944
1945
1946
1947
2005-05-16  Denis Poitrenaud  <dp@src.lip6.fr>

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

1948
1949
1950
1951
2005-05-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1952
1953
1954
1955
2005-05-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1956
1957
2005-05-04  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1958
1959
1960
1961
1962
	* 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_.

1963
1964
1965
1966
1967
1968
1969
	* 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.

1970
1971
1972
1973
1974
1975
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.

1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
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.

1988
1989
1990
1991
1992
2005-04-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1993
1994
1995
1996
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
1997
1998
1999
2000
2005-04-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* README: Typos.

2001
2002
2003
2004
2005-04-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

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

2007
2008
	* NEWS, configure.ac: Bump version to 0.2.

2009
2010
2011
	* bench/emptchk/README: Mention
	http://spot.lip6.fr/wiki/EmptinessCheckOptions for the syntax.

2012
2013
2005-04-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2014
2015
2016
2017
	* src/tgbaparse/tgbaparse.yy (acc_list): Do not explicitly delete
	an undeclared acceptance condition.
	* src/tgbaalgos/save.cc (print_acc): Unquote atomic propositions.

2018
2019
2020
2021
2022
2023
	* 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.

2024
2025
2026
2027
2028
2005-02-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

2029
2030
2005-02-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2031
2032
2033
	* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Add options "weights"
	and "redweights" (on by default).

2034
2035
2036
	* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Do not
	account for the size of condition_stack.

2037
2038
2005-02-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
	* 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".

2051
2052
2053
	* src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03.hh: Include
	misc/optionmap.hh.

2054
2055
2005-02-18  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2056
2057
	* bench/emptchk/README: Document the file `algorithms'.

2058
2059
2060
2061
	* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Implement the
	"condition heuristic".  Suggested by Heikki Tauriainen.
	* src/tgbatest/randtgba.cc: Test it.

2062
2063
2064
2065
2066
2067
2068
2069
2070
	* 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.

2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
	* 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.

2081
2082
2005-02-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2083
2084
2085
2086
2087
2088
	* 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.

2089
2090
2091
2092
2093
2094
	* 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.

2095
2096
2097
2098
2099
	* 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.

2100
2101
2102
2103
2104
2105
2106
2107
2108
	* 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.

2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
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.

2125
2126
2127
2128
2129
2130
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.