ChangeLog 281 KB
Newer Older
1
2
3
4
5
2009-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

6
7
8
9
10
11
12
13
14
15
16
17
2009-11-30  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	An algorithm to complement TGBA into SABA.

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

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

38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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.

53
54
55
56
57
2009-11-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

58
59
60
61
62
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.

63
64
65
66
67
2009-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

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

80
81
82
83
84
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.

85
86
87
88
89
90
91
92
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.

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

111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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.

132
133
134
135
136
2009-11-20  Alexandre Duret-Lutz  <adl@va-et-vient.net>

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

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

147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
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().

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

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

183
184
185
186
187
188
189
190
191
192
193
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.

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

201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
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.

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

240
241
242
243
244
245
246
247
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.

248
249
250
251
252
253
254
255
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.

256
257
258
259
260
261
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.

262
263
264
265
266
267
268
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.

269
270
271
272
273
274
275
276
277
278
279
280
281
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.

282
283
284
285
286
287
288
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.

289
290
291
292
293
294
295
296
297
298
299
300
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.

301
302
303
304
305
306
307
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.

308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
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.

327
328
329
330
331
332
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.

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

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

349
350
351
352
353
354
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.

355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
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.

389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
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.

404
405
406
407
408
409
410
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.

411
412
413
414
415
416
417
418
419
420
421
422
423
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.

424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
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.

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

462
463
464
465
466
467
468
469
470
471
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*.

472
473
474
475
476
477
478
479
480
481
482
483
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.

484
485
486
487
2009-11-07  Damien Lefortier <dam@lrde.epita.fr>

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

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

494
495
496
497
498
499
500
501
502
503
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...

504
505
506
507
508
509
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.

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

517
518
2009-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

519
	Fix a longstanding bug reported by Kristin Y. Rozier.
520
521
522
523
524
525
526
527

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

528
529
530
531
532
533
534
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.

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

542
543
544
545
546
547
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.

548
549
550
551
2009-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

552
553
554
555
556
557
558
559
560
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.

561
562
563
564
2009-10-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/ltl2tgba_fm.cc: Typos.

Damien Lefortier's avatar
Damien Lefortier committed
565
566
567
568
569
570
571
572
573
574
575
576
577
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
578
579
580
581
582
583
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
584
585
586
587
588
589
590
591
592
593
594
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.

595
596
597
598
599
600
601
602
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
603
	* src/tgbatest/ltl2tgba.cc: New option: -taa, which uses this new
604
605
606
	translation algorithm.
	* src/tgbatest/spotlbtt.test: Add ltl2tgba -taa.

607
608
609
610
611
612
613
614
615
616
617
618
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
619
620
621
622
623
2009-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

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

633
634
635
636
637
638
639
640
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.

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

654
655
656
657
658
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.

659
660
661
662
663
664
665
666
667
668
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.

669
670
671
672
673
674
675
676
677
678
679
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
680
681
682
683
684
685
686
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.

687
688
689
690
691
692
693
694
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.

695
696
697
698
699
700
701
702
703
704
705
706
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().

707
708
709
710
711
712
713
714
715
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
716
717
718
719
720
721
722
723
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.

724
725
726
727
728
729
730
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.

731
732
733
734
735
736
737
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.

738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
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.

753
754
755
756
757
758
759
760
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.

761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
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.

795
796
797
798
2009-08-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

799
800
801
802
803
804
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.

805
806
807
808
809
810
811
812
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.

813
814
815
816
2009-07-09  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

817
818
819
2009-07-08  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

Flix Abecassis's avatar
Flix Abecassis committed
821
822
823
824
825
826
827
828
829
830
831
832
833
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
834
	constants when translating to TGBA many LTL formulae from a
Flix Abecassis's avatar
Flix Abecassis committed
835
836
837
838
839
840
841
	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.

842
843
844
845
846
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.
847

848
849
850
851
2009-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

852
853
854
855
856
857
858
859
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
860
861
862
863
864
865
866
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.

867
868
869
870
871
872
873
874
875
876
877
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.

878
879
2009-06-09  Guillaume Sadegh  <sadegh@lrde.epita.fr>

880
881
	* src/tgba/tgbacomplement.cc, src/tgbatest/complementation.cc:
	Fix style.
882

883
884
885
886
887
2009-06-07  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

888
889
890
891
892
893
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.

894
895
896
897
898
899
900
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.

901
902
903
904
905
906
907
908
909
910
911
912
913
914
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.

915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
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.

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

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

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

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

972
973
974
975
976
977
978
979
980
981
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.

982
983
984
985
986
987
988
989
990
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.

991
992
993
994
995
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.

996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
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.

1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
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.

1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
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
1045
1046
1047
1048
1049
1050
1051
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.

1052
1053
1054
1055
1056
1057
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.

1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
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.

1072
1073
1074
1075
1076
1077
1078
1079
1080
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.

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

1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
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.

1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
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.

1153
1154
1155
1156
2009-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
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.

1174
1175
1176
1177
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
1178
1179
1180
1181
1182
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
1183
1184
1185
1186
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
1187
1188
1189
1190
1191
2009-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1192
1193
1194
1195
1196
1197
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'.

1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
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.

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

1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
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.

1240
1241
1242
1243
1244
1245
1246
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.

1247
1248
1249
1250
1251
1252
1253
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().

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

1261
1262
1263
1264
1265
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.

1266
1267
1268
1269
1270
1271
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.

1272
1273
1274
1275
1276
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.

1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
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.

1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
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.

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

1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
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.

1333
1334
1335
1336
1337
1338
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.

1339
1340
1341
1342
1343
1344
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.

1345
1346
2008-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

1347
1348
1349
	* iface/nips/dottynips.cc: Include ctsdlib for exit().
	* iface/nips/emptiness_check.cc: Likewise.

1350
1351
	* src/sanity/includes.test: Remove empty line at beginning of file.

1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
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.

1365
1366
1367
1368
2008-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1369
1370
1371
1372
1373
1374
1375
1376
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/.

1377
1378
2008-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1381
1382
1383
1384
	* iface/nips/Makefile.am (empt_check_LDADD, dottynips_LDADD):
	Do not link libnipsvm.la here...
	(libspotnips_la_LIBADD): ... do it here.

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
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
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
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
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.

1440
1441
1442
1443
1444
1445
1446
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.

1447
1448
1449
1450
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
1451
1452
1453
1454
2008-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1455
1456
1457
1458
2008-03-21  Damien Lefortier <dam@lrde.epita.fr>

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

1459
1460
1461
1462
1463
2008-03-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
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.

1491
1492
1493
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
1494
	until Doxygen is fixed.  Doxygen 1.5.5 generates incorrect LaTeX
1495
1496
	code.

1497
1498
1499
1500
2008-02-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1501
1502
1503
1504
1505
2008-02-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1506
1507
1508
1509
1510
2008-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1511
1512
1513
1514
1515
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.

1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
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.

1531
1532
1533
1534
1535
1536
1537
1538
1539
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.

1540
1541
1542
1543
1544
2007-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1545
1546
1547
1548
1549
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>
1550
1551
1552
1553
1554

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

1555
1556
1557
1558
1559
2007-07-26  Alexandre Duret-Lutz  <adl@gnu.org>

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

1560
1561
2007-07-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1562
1563
1564
1565
	* iface/gspn/ltlgspn.cc: New option -L.
	* iface/gspn/ssp.cc, iface/gspn/ssp.hh (gspn_ssp_interface)
	support for a new option "pushfront".

1566
1567
	* NEWS, configure.in: Bump version to 0.4a.

1568
1569
1570
1571
1572
1573
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.

1574
1575
1576
1577
1578
1579
1580
1581
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>
1582
1583
1584

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

1585
2007-04-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1586

Alexandre Duret-Lutz's avatar
typo    
Alexandre Duret-Lutz committed
1587
	* src/tgbatest/ltl2tgba.cc (main): Fix handling of -R1q -R1t -R2q -R2t.
1588
1589
1590
1591
	Add support for -r8/-fr8.

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

1592
2007-04-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1593
1594
1595
1596
1597
1598

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

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

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

1604
2007-04-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1605

1606
1607
1608
1609
1610
1611
1612
	* 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.

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

1616
2007-04-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1617
1618
1619
1620
1621

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

1622
2007-02-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1623
1624
1625
1626
1627

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

1628
1629
2006-08-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1630
1631
	* HACKING: We need Bison 2.3.

1632
1633
1634
	* evtgbaparse/evtgbaparse.yy, ltlparse/ltlparse.yy,
	tgbaparse/tgbaparse.yy: Fix Bison warnings about unset $$.

1635
1636
1637
1638
1639
	* 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.

1640
1641
1642
1643
1644
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>
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660

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

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

1672
1673
1674
1675
1676
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.

1677
1678
2006-07-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
	* 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.

1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
	* 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.

1702
1703
1704
1705
1706
	* 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.

1707
1708
1709
1710
1711
1712
1713
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.

1714
1715
2006-07-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1716
1717
1718
1719
1720
1721
1722
1723
1724
	* 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.

1725
1726
1727
	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
1728
1729
	number of BDD variable after they have been allocated.  Otherwise
	the first bdd_dict() created was leaking BDD variable #1.
1730

1731
1732
1733
1734
	* 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.

1735
1736
2006-07-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1737
1738
1739
1740
1741
1742
1743
1744
	* 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.

1745
1746
1747
1748
1749
1750
	* 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 !

1751
1752
1753
1754
1755
1756
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.

1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
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).

1767
1768
2006-02-15  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1772
1773
1774
1775
	* iface/gspn/ltlgspn.cc, src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gtec/gtec.hh: New option (-e6) to disable
	inclusion check in the stack.

1776
1777
1778
	* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
	Count the number of removed components.

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

1788
1789
1790
1791
2006-02-11  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1792
1793
2006-02-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
	* 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.

1804
1805
1806
	* src/tgbaparse/tgbaparse.yy (acc_decl): Diagnose acceptance
	conditions rejected by the environment.

1807
1808
1809
1810
	* iface/gspn/ltlgspn.cc (display_stats): New function.
	(main): Use it.
	* iface/gspn/ssp.cc: Add more counters for statistics.

1811
1812
1813
1814
1815
	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Correctly
	update the emptiness statistics.

	* m4/gspnlib.m4: Typo.

1816
2006-02-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1817
1818
1819

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

1820
1821
2006-02-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
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
1834
	(couvreur99_check_shy::find_state): Change prototype as needed by
1835
1836
1837
1838
	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
1839
	* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Adjust
1840
1841
1842
1843
	to new prototype.
	* bench/emptchk/README, bench/emptchk/algorithms: Adjust references
	to group/group2.

1844
1845
1846
1847
2006-01-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1848
1849
1850
1851
2006-01-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1852
1853
1854
1855
1856
2006-01-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1857
2006-01-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1858
1859
1860
1861
1862

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

1863
2006-01-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>
1864
1865
1866
1867

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

1868
1869
1870
1871
1872
1873
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.

1874
1875
2005-09-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1876
1877
1878
	* src/ltlparse/ltlparse.yy (result): Do not assign to $$, it's useless.
	Suggested by Akim.

1879
1880
1881
1882
	* src/tgbatest/randtgba.cc: New option -H.
	* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics_copy): New
	class.

1883
1884
1885
1886
2005-09-27  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1887
1888
1889
1890
2005-09-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/lbtt.cc: Typo.

1891
1892
1893
1894
1895
2005-09-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
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).

1918
1919
1920
1921
1922
1923
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.

1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
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.

1934
1935
1936
1937
2005-09-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1938
1939
2005-08-31  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1940
1941
	* README: Update lbtt references.

1942
1943
	* iface/gspn/ssp.cc: Typo in comment.

1944
1945
	* lbtt/: Merge lbtt 1.2.0.

1946
1947
1948
1949
1950
1951
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.

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

1954
1955
1956
	* src/tgbaalgos/reductgba_sim_del.cc
	(parity_game_graph_delayed::nb_set_acc_cond): Simplify.

1957
1958
1959
1960
	* 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.

1961
1962
1963
1964
2005-05-16  Denis Poitrenaud  <dp@src.lip6.fr>

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

1965
1966
1967
1968
2005-05-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1969
1970
1971
1972
2005-05-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1973
1974
2005-05-04  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1975
1976
1977
1978
1979
	* 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_.

1980
1981
1982
1983
1984
1985
1986
	* 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.

1987
1988
1989
1990
1991
1992
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.

1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
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.

2005
2006
2007
2008
2009
2005-04-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

2010
2011
2012
2013
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
2014
2015
2016
2017
2005-04-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* README: Typos.

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

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

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

2024
2025
	* NEWS, configure.ac: Bump version to 0.2.

2026
2027
2028
	* bench/emptchk/README: Mention
	http://spot.lip6.fr/wiki/EmptinessCheckOptions for the syntax.

2029
2030
2005-04-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2031
2032
2033
2034
	* src/tgbaparse/tgbaparse.yy (acc_list): Do not explicitly delete
	an undeclared acceptance condition.
	* src/tgbaalgos/save.cc (print_acc): Unquote atomic propositions.

2035
2036
2037
2038
2039
2040
	* 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.

2041
2042
2043
2044
2045
2005-02-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

2046
2047
2005-02-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2048
2049
2050
	* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Add options "weights"
	and "redweights" (on by default).

2051
2052
2053
	* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Do not
	account for the size of condition_stack.

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

2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
	* 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".

2068
2069
2070
	* src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03.hh: Include
	misc/optionmap.hh.

2071
2072
2005-02-18  Alexandre Duret-Lutz  <adl@src.lip6.fr>

2073
2074
	* bench/emptchk/README: Document the file `algorithms'.

2075
2076
2077
2078
	* src/tgbaalgos/tau03opt.cc (tau03_opt_search): Implement the
	"condition heuristic".  Suggested by Heikki Tauriainen.
	* src/tgbatest/randtgba.cc: Test it.

2079
2080
2081
2082
2083
2084
2085
2086
2087
	* 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.

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

2098
2099
2005-02-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

2106
2107
2108
2109
2110
2111
	* 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.

2112
2113
2114
2115
2116
	* 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.

2117
2118
2119
2120
2121
2122
2123
2124
2125
	* 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.

2126
2127
2128
2129
2130
2131
2132
2133