ChangeLog 312 KB
Newer Older
1
2
3
4
2010-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention W and M.

5
6
7
8
9
10
11
12
13
14
15
2010-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More LTL reductions for W and M.

	* src/ltlvisit/basicreduce.cc: Perform the following reductions:
	(a R b) | Gb = a R b
	(a M b) | Gb = a R b
	(a U b) & Fb = a U b
	(a W b) & Fb = a U b
	* src/ltltest/reduccmp.test: Test them.

16
17
18
19
2010-04-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/cgi-bin/ltl2tgba.in: Document W and M operators.

20
21
22
23
24
25
26
27
28
29
30
2010-04-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More LTL reductions for W and M.

	* src/ltlvisit/basicreduce.cc: Perform the following reductions:
	(a U b) & (c W b) = (a & c) U b
	(a W b) & (c W b) = (a & c) W b
	(a R b) | (c M b) = (a | c) R b
	(a M b) | (c M b) = (a | c) M b
	* src/ltltest/reduccmp.test: Test them.

31
32
33
34
35
36
37
38
39
40
41
42
43
44
2010-04-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add LTL reductions for strong release.

	* src/ltlvisit/basicreduce.cc: Perform the following reductions.
	a R (b & F(a)) = a M b
	a M (b & F(a)) = a M b
	a R Fa = Fa
	a M Fa = Fa
	a R b & Fa = a M b
	a R b & a M c = a M (b & c)
	a M b & a M c = a M (b & c)
	* src/ltltest/reduccmp.test: More tests.

45
46
47
48
49
50
51
52
53
54
55
56
57
58
2010-04-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add LTL reductions for weak until.

	* src/ltlvisit/basicreduce.cc: Perform the following reductions.
	a U (b | Ga) = a W b
	a W (b | Ga) = a W b
	a U b | Ga = a W b
	a U b | a W c = a W (b | c)
	a W b | a W c = a W (b | c)
	a U Ga = Ga
	a W Ga = Ga
	* src/ltltest/reduccmp.test: More tests.

59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
2010-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for W (weak until) and M (strong release) operators.

	* src/ltlast/binop.cc, src/ltlast/binop.cc: Add support for
	these new operators.
	* src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Parse them.
	* src/ltltest/reduccmp.test: Add new tests for W and M.
	* src/ltlvisit/basicreduce.cc, src/ltlvisit/contain.cc,
	src/ltlvisit/lunabbrev.cc, src/ltlvisit/nenoform.cc,
	src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh,
	src/ltlvisit/reduce.cc, src/ltlvisite/simpfg.cc,
	src/ltlvisit/simpfg.hh, src/ltlvisit/syntimpl.cc,
	src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc,
	src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc:
	Add support for W and M.
	* src/tgbatest/ltl2neverclaim.test: Test never claim output
	using LBTT, this is more thorough.  Also we cannot use -N
	any more in the spotlbtt.test.
	* src/tgbatests/ltl2tgba.cc: Define M and W for ELTL.
	* src/tgbatest/ltl2neverclaim.test: Test W and M, and use
	-DS instead of -N, because lbtt-translate does not want
	to translate these operators for tools that masquerade as Spin.

84
85
86
87
88
89
90
91
92
93
2010-04-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust ltl2tgba.py to call scc_filter() with the "full" option as
	appropriate.

	* wrap/python/spot.i (spot::scc_filter): Make it available.
	* wrap/python/cgi-bin/ltl2tgba.in (reduce_scc): Call scc_filter.
	Use the "full" option unless the show_degen_png or
	show_never_claim are set.  Also reduce_scc the default.

94
95
96
97
2010-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/basicreduce.cc: Typo in comment.

98
99
100
101
2010-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent noteworthy changes.

102
103
104
105
106
107
108
109
110
111
2010-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Modernize Bison parsers.

	* src/ltlparse/ltlparse.yy, src/tgbaparse/tgbaparse.yy,
	src/evtgbaparse/evtgbaparse.yy, src/eltlparse/eltlparse.yy: Use
	token types for %destructor and %printer.  Remove the yylex hack,
	since %name-prefix is now honored by Bison.  Also remove the
	useless <token> type.  Suggested by Akim Demaille.

112
113
114
115
116
117
118
119
120
2010-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix column in LTL error messages, it was off by one.

	* src/ltlparse/fmterror.cc (format_parse_errors): Count columns
	starting at 1.  Older Bison used to start at 0 but changed to
	match the GNU Coding Standards.
	* src/ltltest/parseerr.test: Add a test case.

121
122
123
124
125
126
127
128
2010-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Do not rewrite F(a & GF(b)) = F(a) & GF(b), this can be harmful.

	* src/ltlvisit/basicreduce.cc (basic_reduce_visitor::recurse):
	Disable this rule unconditionally.
	* src/ltltest/reduccmp.test: Adjust tests.

129
130
131
132
2010-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbatba.cc: Fix English in comments.

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

	Reverse the order of expected acceptance conditions in
	degeneralization.

	* src/tgba/tgbatba.cc (tgba_sba_proxy::tgba_tba_proxy): Build the
	list of acceptance condition in the reverse order.  The order is
	still arbitrary, but the bdd_satone() call seems to output the
	acceptance conditions that are more used first, and this helps the
	degeneralization process.

144
145
146
147
148
149
150
151
152
2010-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Tweak precedence of "->" and <->.

	* src/ltlparse/ltlparse.yy: Change the precedence of "->" and
	"<->" so that "a & b -> c" is interpreted as "(a & b) -> c"
	instead of "a & (b -> c)".  The new interpretation is more
	intuitive, and matches that of LBTT.

153
154
155
156
157
2010-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/ltl2tgba/formulae.ltl: Fix three formulae to match the
	original paper by Somenzi and Bloem.  Reported by Ruediger Ehlers.

158
159
160
161
162
163
164
2010-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix memory leak introduced in yesterday's change.

	* src/tgba/tgbatba.cc (tgba_sba_proxy::tgba_sba_proxy): Do not
	forget to free the initial state after usage.

165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
2010-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Keep acceptance conditions on transitions going to accepting SCCs
	by default in scc_filter().

	Doing so helps the degeneralization algorithm, because it will
	have more opportunity to be in an accepting level when it reaches
	the accepting SCCs.

	* src/tgbaalgos/sccfilter.cc (filter_iter::filter_iter): Take a
	remove_all_useless argument.
	(filter_iter::process_link): Use the flag to decide whether to
	filter acceptance conditions going to accepting SCCs.
	(scc_filter): Take a remove_all_useless argument and pass it to
	filter_iter.
	* src/tgbaalgos/sccfilter.hh (filter_iter): Add the new argument
	and document the function.
	* src/tgbatest/tgbatests/ltl2tgba.cc (main): Add option use -R3
	for remove_all_useless=false and add -R3f for
	remove_all_useless=true.
	* src/tgbatest/ltl2tgba.test: Show one case where -R3f makes
	the degeneralization worse than -R3.

188
189
190
191
192
2010-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify F(a)|F(b) as F(a|b).  Add similar rule for G(a)&G(b).

	* src/ltlvisit/basicreduce.cc (basic_reduce_visitor): Replace
193
	the FG(a)|FG(b) == F(Ga|Gb) rule by the above more generic one.
194
195
196
197
	Add the dual rule for G(a)&G(b), as we had none (this one won't
	improve anything in the translation, but it is more symmetric
	this way).  Also simplify some pointer checks.

198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
2010-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Better selection of the acceptance of the initial state in SBA.

	* src/tgba/tgbatba.cc (tgba_sba_proxy::tgba_sba_proxy): Set
	cycle_start_ to start in the accepting layer of the degeneralized
	automaton if the initial state has an accepting self-loop.
	Otherwise, starts at the level of the first acceptance condition
	as previously.
	(tgba_sba_proxy::get_init_state): Use cycle_start_.
	* src/tgba/tgbatba.hh (tgba_tba_proxy::a_): Make it protected so
	that we can use it in tgba_sba_proxy::tgba_sba_proxy.
	(tgba_sba_proxy::cycle_start_, tgba_sba_proxy::get_init_state):
	Declare.
	* src/tgbatest/ltl2tgba.test: More tests.

214
215
216
217
218
219
220
221
222
2010-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Generalize the previous patch to accepting states in SBA.

	* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::sync_): Move
	the optimization step added by the previous patch outside the
	before the bddtrue check, so that it also applies to accepting
	states in SBA.

223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
2010-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Optimize tgba_tba_proxy and tgba_sba_proxy for states that share
	an acceptance condition on all outgoing transitions.

	This was motivated by experiments from Rdiger Ehlers, showing
	that "ltl2ba -f 'a U (b U c)'" outperformed "ltl2tgba -f -N -R3 'a
	U (b U c)'".  With this change and the previous one, it is no
	longer the case.

	* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::aut_): Store
	a pointer to the source automaton and...
	(tgba_tba_proxy_succ_iterator::sync_): ... use it in an extra
	optimization step to gather the acceptance conditions common
	to all outgoing transitions of the destination state, and pretend
	they are on the current (ingoing) transition.
	(tgba_tba_proxy::succ_iter): Pass the
	source automaton to the constructed iterator.
	* src/tgbatest/spotlbtt.test: Test -f -N -R3 -r7.
	* src/tgbatest/ltl2tgba.test: Add a test case for 'a U (b U c)'.

244
245
246
247
248
249
250
251
252
2010-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba: apply -R3 before -D or -DS.

	* src/tgbatest/ltl2tgba.cc (main): Call scc_filter() before the
	degeneralization, because it might remove useless acceptance
	conditions.  I realized this while looking at experiments from
	Rdiger Ehlers.

253
254
255
256
2010-02-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/sanity/style.test: Better fix for the previous error.

257
258
259
260
261
262
263
264
265
2010-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Work around a spurious style.test error.

	* src/saba/sabacomplementtgba.hh (spot): Rewrite Bchi as B\"uchi
	is the BibTex entry used as comment, because some version of sed
	will choke on non-ascii character and cause sanity/style.test to
	fail.

266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
2010-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix random_graph() not to generate dead states.

	This is actually the third time I fix random_graph().  On
	2007-02-06 I changed the function not to generated dead states,
	but in a way that made it non-deterministic.  On 2010-01-20 I made
	the function deterministic again, but it started to generate dead
	states as a side effect.  This time, I'm making sure that dead
	states won't come again with a test-case that we should have had
	from the beginning.

	* src/tgbaalgos/randomgraph.cc (random_graph): Add an extra
	indirection array, state_randomizer[], so that we can reorder
	states indices after a random selection without actually changing
	the value of the indices used by unreachable_states and
	nodes_to_process.
	* src/tgbatest/randtgba.test: New file.
	* src/tgbatest/Makefile.am: Add randtgba.test.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
286
287
288
289
290
291
292
293
294
295
296
297
298
299
2010-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba cgi updates.

	* wrap/python/cgi-bin/ltl2tgba.in (dot): Use the value computed by
	configure.
	(os.system): Cleanup stale files only when the form has been
	submitted.
	(list options): Keep track of the selected value.
	(draw_acc_run|print_acc_run): set ec=0 to detect if it has been
	later set or not.  Fix error message when using generalized
	automata with degeneralized emptiness checks.
	* wrap/python/cgi-bin/Makefile.am (ltl2tgba.py): Substitute @DOT@.

300
301
302
303
2010-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/cgi-bin/ltl2tgba.in: Reword description of svg_output.

304
305
306
307
308
309
310
311
2010-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add SVG output and language containment options to the cgi script.

	* wrap/python/cgi-bin/ltl2tgba.in (new): Mark new options as new.
	(svg_output, reduce_langcout): Add these new options.
	(render_dot): Support svg_output.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
312
313
314
315
2010-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo.

316
317
318
319
2010-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
320
321
322
323
324
325
2010-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 0.5.

	* NEWS, configure.in: Bump version to 0.5.

326
327
328
329
330
331
2010-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Makefile.am ($(srcdir)/stamp): Do not depend on dot
	explicitly, otherwise the documentation is always built and
	distcheck fails.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
332
333
334
335
336
337
338
339
340
2010-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More Doxygen fixes.

	* src/sabaalgos/sabareachiter.hh (process_link): Document argument SI.
	* src/eltlparse/public.hh (format_parse_errors): Remove the
	non-existing eltl_string argument from the description.
	(parse_file): Fix name of parameters in documentation.

341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
2010-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Build doxygen pictures with libgd to reduce their size.

	Doxygen only knows how to call dot with -Tpng, while using
	-Tpng:gd produces pictures that are 10 times smaller.  Use a
	simple wrapper around dot to simplify this.

	* doc/dot.in: New file, that wrap the system's dot and replace
	-Tpng by -Tpng:gd.
	* doc/Makefile.am ($(srcdir)/stamp): Depend on dot.
	* doc/Doxyfile.in: Update to 1.6.2.
	(DOT_PATH): Set to @srcdir@ to use doc/dot instead of the
	system's dot.
	* configure.ac: Find the absolute path of dot, and generate
	the doc/dot script.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
358
359
360
361
362
363
364
365
2010-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More Doxygen fixes.

	* src/tgba/tgbakvcomplement.hh: Use \verbatim around the bibtex
	entry.
	* src/saba/sabacomplementtgba.hh: Use latin1.

366
367
368
369
370
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/split-product/Makefile.am (nodist_noinst_DATA): Do not
	depend on files that cannot be built.

371
372
373
374
375
376
377
378
379
380
381
382
383
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Replace spot::ltl_file by a rewritten spot::ltl::ltl_file.

	* src/tgba/tgbafromfile.cc, src/tgba/tgbafromfile.hh: Delete these
	files.
	* src/tgba/Makefile.am: Remove them.
	* src/ltl/ltlparse/ltlfile.hh, src/ltl/ltlparse/ltlfile.cc: New
	files.
	* src/ltl/ltlparse/Makefile.am: Add them.
	* bench/scc-stats/stats.cc, bench/split-product/cutscc.cc: Rewrite
	using the new class.

384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Check for missing Copyright blurbs, and add them.

	* src/sanity/style.test: Check for missing Copyrights blurbs.
	* src/sanity/Makefile.am: Run style.test before includes.test.
	* iface/gspn/dcswave.test, iface/gspn/dcswaveeltl.test,
	iface/gspn/dcswavefm.test, iface/gspn/dcswaveltl.test,
	iface/gspn/simple.test, iface/gspn/udcsefm.test,
	iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
	iface/gspn/udcsltl.test, iface/nips/nipstest/dotty.test,
	iface/nips/nipstest/emptiness.test, src/eltltest/acc.test,
	src/eltltest/nfa.test, src/saba/sabacomplementtgba.cc,
	src/sabatest/sabacomplementtgba.cc, src/tgbatest/eltl2tgba.test,
	src/tgbatest/taatgba.test: Add missing Copyright blurb.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
400
401
402
403
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: More text.

404
405
406
407
408
409
410
411
412
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Touch up some doxygen comments and copyrights.

	* eltlparse/public.hh, saba/saba.hh, tgba/tgbakvcomplement.hh,
	tgba/tgbasafracomplement.hh, tgbaalgos/eltl2tgba_lacim.cc,
	tgbaalgos/eltl2tgba_lacim.hh, tgbaalgos/ltl2taa.hh: Comment
	changes.

413
414
415
416
417
418
419
420
421
422
423
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add SCC pruning options to the CGI script.

	* wrap/python/cgi-bin/ltl2tgba.in: Add options to symbolically
	prune unaccepting SCCs in LaCIM, and explicitely pruns unaccepting
	SCCs in all algorithms.
	* src/tgbaalgos/reductgba_sim.hh: Conceal most of the file to
	SWIG.
	* wrap/python/spot.i: Include reductgba_sim.hh.

424
425
426
427
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/evtgbatest/ltl2evtgba.test: Replace * by &.

428
429
430
431
432
433
434
435
436
437
438
439
440
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make it possible to use the cgi script without installing a web
	server.

	* wrap/python/cgi-bin/ltl2tgba.in: Starts a web server if the
	script is not called as a CGI.  Arrange to load libraries from
	the build directory.  Create the spotimg/ if needed when run as
	a web server.
	* wrap/python/cgi-bin/Makefile.am: Adjust build rule and clean
	the spotimg directory.
	* wrap/python/cgi-bin/README, NEWS: Update.

441
442
443
444
445
446
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More * -> & replacements.

	* src/ltltest/parse.test, src/ltltest/syntimpl.test: Replace * by &.

447
448
449
450
451
452
453
454
455
456
457
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove the theoretically bogus "containment" option of ltl2tgba_fm.

	* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh:
	Remove the containment option.
	* src/tgbafromfile.cc, src/tgbafromfile.hh: Remove the
	containment_ member.
	* src/tgbatest/ltl2tgba.cc (syntax): Remove -c option for
	FM algorithm, use it exclusively for TAA.

458
459
460
461
462
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbasafracomplement.hh: Add missing copyright and
	fix some comments.

463
464
465
466
467
468
469
470
471
472
473
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rename tgba_complement as tgba_kv_complement.

	* src/tgba/tgbacomplement.hh, src/tgba/tgbacomplement.cc: Rename
	as...
	* src/tgba/tgbakvcomplement.hh, src/tgba/tgbakvcomplement.cc:
	... these. It makes more sense since we also have
	tgba_safra_complement.
	* src/tgba/Makefile.am, src/tgbatest/complement.cc, NEWS: Adjust.

474
475
476
477
478
479
480
481
482
483
484
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Do not recognize "*" as "and".  This leaves room for an
	implementation of rational operators in a future version.

	* src/ltlparse/ltlscan.ll: Do not recognize "*".
	* wrap/python/cgi-bin/ltl2tgba.in: Undocument it.
	* NEWS: Mention this.
	* src/tgbatest/kv.test, src/tgbatest/ltl2tgba.test,
	src/tgbatest/reductgba.test: Replace "*" by "&".

485
486
487
488
489
490
491
492
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make Couvreur/FM the default translation.

	* src/tgbatest/ltl2tgba.cc (syntax, main): Do it.
	* NEWS: Mention it.
	* src/tgbatest/emptchk.test: Add missing -l.

493
494
495
496
497
498
499
500
501
502
503
504
505
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Overhaul LaCIM's ELTL options.

	* src/tgbatest/ltl2tgba.cc (syntax, main): Introduce -le to select
	this algorithm and -lo to add the default LTL operators.  This
	replace the undocumented hack to add LTL operators when the
	formula with read for command-line, or the automaton was output
	for LBTT.
	* src/tgbatest/eltl2tgba.test, src/tgbatest/spotlbtt.test: Update
	call syntax.
	* NEWS: Mention -le, -lo, and -taa.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
506
507
508
509
510
511
512
513
514
515
516
2010-01-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Touch up -R3b handling.

	* src/tgbatest/ltl2tgba.cc (syntax): Move -R3b with the other
	LaCIM options.
	(main): Speak of "symbolic SCC pruning" instead of "deleting
	unaccepting SCC", and do that right after the translation, before
	degeneralization.  Also error out when -R3b is used on non
	symbolic automata.

517
518
519
520
521
522
523
524
525
526
2010-01-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Update some text files for upcoming 0.5.

	* NEWS: Update for upcoming 0.5.
	* HACKING: Update Automake requirement.
	* README: Mention the mailing list.
	* bench/ltlcounter/README: More text.
	* configure.ac: Report bugs to spot@lrde.epita.fr.

527
528
529
530
531
532
533
534
2010-01-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rename wrap/python/cgi/ as wrap/python/cgi-bin/.

	* wrap/python/cgi/: Rename as ...
	* wrap/python/cgi-bin/: ... this.
	* configure.ac, spot/wrap/python/Makefile.am, README: Adjust.

535
536
537
538
2010-01-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/gtec/gtec.hh: Fix copyright.

539
540
541
542
543
2010-01-29  Felix Abecassis <felix.abecassis@lrde.epita.fr>

	* src/tgba/taatgba.cc, src/tgba/taatbga.hh: Fix a memory issue on
	Darwin.

544
545
546
547
548
2010-01-25  Damien Lefortier <dam@lrde.epita.fr>

	* wrap/python/cgi/ltl2tgba.in, wrap/python/spot.i: Add a new
	translation algorithm: Tauriainen/TAA.

549
550
551
552
553
554
2010-01-25  Damien Lefortier <dam@lrde.epita.fr>

	* wrap/python/cgi/ltl2tgba.in: Use the uuid Python module instead
	of the UNIQUE_ID environment variable to avoid being
	Apache-specific.

Guillaume Sadegh's avatar
Guillaume Sadegh committed
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
2010-01-24  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	Fix copyrights.

	* bench/Makefile.am, bench/gspn-ssp/Makefile.am,
	bench/gspn-ssp/defs.in, bench/scc-stats/Makefile.am,
	bench/split-product/Makefile.am, configure.ac,
	iface/Makefile.am, iface/gspn/Makefile.am, iface/gspn/ssp.hh,
	iface/nips/Makefile.am, iface/nips/common.cc,
	iface/nips/common.hh, iface/nips/dottynips.cc,
	iface/nips/nips.cc, iface/nips/nips.hh, src/Makefile.am,
	src/eltlparse/Makefile.am, src/eltlparse/eltlparse.yy,
	src/eltlparse/eltlscan.ll, src/eltlparse/fmterror.cc,
	src/eltlparse/parsedecl.hh, src/eltltest/Makefile.am,
	src/eltltest/defs.in, src/eltltest/nfa.cc, src/evtgba/evtgba.hh,
	src/evtgba/product.cc, src/evtgba/product.hh,
	src/evtgbaalgos/tgba2evtgba.cc, src/evtgbaparse/Makefile.am,
	src/evtgbaparse/evtgbaparse.yy, src/evtgbatest/defs.in,
	src/evtgbatest/explicit.test, src/evtgbatest/ltl2evtgba.cc,
	src/evtgbatest/ltl2evtgba.test, src/evtgbatest/product.cc,
	src/evtgbatest/product.test, src/evtgbatest/readsave.cc,
	src/evtgbatest/readsave.test, src/ltlast/atomic_prop.cc,
	src/ltlast/atomic_prop.hh, src/ltlast/binop.cc,
	src/ltlast/binop.hh, src/ltlast/constant.cc,
	src/ltlast/constant.hh, src/ltlast/formula.cc,
	src/ltlast/formula.hh, src/ltlast/formula_tree.cc,
	src/ltlast/formula_tree.hh, src/ltlast/multop.cc,
	src/ltlast/multop.hh, src/ltlast/nfa.cc, src/ltlast/nfa.hh,
	src/ltlast/unop.cc, src/ltlast/unop.hh, src/ltlenv/declenv.cc,
	src/ltlenv/declenv.hh, src/ltlenv/environment.hh,
	src/ltlparse/Makefile.am, src/ltlparse/ltlparse.yy,
	src/ltltest/Makefile.am, src/ltltest/defs.in,
	src/ltltest/equals.cc, src/ltltest/equals.test,
	src/ltltest/lunabbrev.test, src/ltltest/nenoform.test,
	src/ltltest/parse.test, src/ltltest/parseerr.test,
	src/ltltest/randltl.cc, src/ltltest/readltl.cc,
	src/ltltest/reduccmp.test, src/ltltest/syntimpl.cc,
	src/ltltest/syntimpl.test, src/ltltest/tostring.cc,
	src/ltltest/tostring.test, src/ltltest/tunabbrev.test,
	src/ltltest/tunenoform.test, src/ltlvisit/basicreduce.cc,
	src/ltlvisit/clone.cc, src/ltlvisit/clone.hh,
	src/ltlvisit/contain.cc, src/ltlvisit/destroy.cc,
	src/ltlvisit/destroy.hh, src/ltlvisit/lunabbrev.cc,
	src/ltlvisit/nenoform.cc, src/ltlvisit/randomltl.cc,
	src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
	src/ltlvisit/tostring.cc, src/misc/bddalloc.cc,
	src/misc/bddop.cc, src/misc/bddop.hh, src/misc/freelist.hh,
	src/misc/hash.hh, src/misc/minato.cc, src/misc/minato.hh,
	src/misc/optionmap.cc, src/misc/timer.cc, src/misc/timer.hh,
	src/saba/Makefile.am, src/saba/explicitstateconjunction.cc,
	src/saba/explicitstateconjunction.hh, src/saba/saba.cc,
	src/saba/saba.hh, src/saba/sabacomplementtgba.cc,
	src/saba/sabacomplementtgba.hh, src/saba/sabastate.hh,
	src/saba/sabasucciter.hh, src/sabaalgos/Makefile.am,
	src/sabaalgos/sabadotty.cc, src/sabaalgos/sabadotty.hh,
	src/sabaalgos/sabareachiter.cc, src/sabaalgos/sabareachiter.hh,
	src/sabatest/Makefile.am, src/sabatest/defs.in,
	src/sanity/Makefile.am, src/tgba/Makefile.am,
	src/tgba/bdddict.cc, src/tgba/bddprint.cc,
	src/tgba/formula2bdd.cc, src/tgba/state.hh,
	src/tgba/succiterconcrete.cc, src/tgba/taatgba.hh,
	src/tgba/tgba.hh, src/tgba/tgbabddconcretefactory.cc,
	src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbacomplement.cc,
	src/tgba/tgbacomplement.hh, src/tgba/tgbaexplicit.cc,
	src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.cc,
	src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
	src/tgba/tgbasgba.hh, src/tgba/tgbaunion.cc,
	src/tgba/tgbaunion.hh, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/ltl2taa.cc,
	src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/reachiter.cc,
	src/tgbaalgos/reachiter.hh, src/tgbaalgos/reductgba_sim.cc,
	src/tgbaalgos/reductgba_sim.hh,
	src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/stats.cc,
	src/tgbaalgos/stats.hh, src/tgbaparse/Makefile.am,
	src/tgbaparse/tgbaparse.yy, src/tgbatest/Makefile.am,
	src/tgbatest/bddprod.test, src/tgbatest/complementation.cc,
	src/tgbatest/complementation.test, src/tgbatest/defs.in,
	src/tgbatest/dfs.test, src/tgbatest/dupexp.test,
	src/tgbatest/explicit.cc, src/tgbatest/explicit.test,
	src/tgbatest/explpro3.test, src/tgbatest/explpro4.test,
	src/tgbatest/explprod.cc, src/tgbatest/explprod.test,
	src/tgbatest/ltl2neverclaim.test, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/ltl2tgba.test, src/tgbatest/ltlprod.cc,
	src/tgbatest/ltlprod.test, src/tgbatest/mixprod.cc,
	src/tgbatest/mixprod.test, src/tgbatest/powerset.cc,
	src/tgbatest/readsave.cc, src/tgbatest/readsave.test,
	src/tgbatest/reduccmp.test, src/tgbatest/reductgba.cc,
	src/tgbatest/reductgba.test, src/tgbatest/taatgba.cc,
	src/tgbatest/tgbaread.cc, src/tgbatest/tgbaread.test,
	src/tgbatest/tripprod.cc, src/tgbatest/tripprod.test,
	wrap/python/cgi/ltl2tgba.in, wrap/python/tests/ltl2tgba.py,
	wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py:
	Fix copyrights.

654
655
656
657
2010-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/ltl2tgba_fm.cc: More comments.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
658
659
2010-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

660
661
662
663
664
665
666
667
	Check that all directories are documented.

	* src/sanity/readme.test: For each AC_OUTPUT Makefile, check that
	the directory is documented in README.  Also skip non distributed
	directories in readme.test.
	* README: Fit on 80 columns.

2010-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>
668

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
669
670
	* README: Typo.

671
672
673
674
2010-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/sanity/Makefile.am (EXTRA_DIST): Distribute readme.test.

675
676
677
678
679
2010-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* README: Add descriptions for subdirectories of bench/, src/sanity,
	and src/kripke.

680
681
682
683
684
685
686
2010-01-24  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	* src/sanity/readme.test: A script to check whether all the
	directories referenced in README exist.
	* src/sanity/Makefile.am: Adjust to call `readme.test' when make
	check is invoked.

Guillaume Sadegh's avatar
Guillaume Sadegh committed
687
688
689
690
691
692
693
2010-01-24  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	Update the README.

	* README: Reference src/saba/, src/sabaalgos/, src/sabatest/,
	iface/nips/, iface/nips/nipstest/ and iface/nips/nips_vm/.

694
695
696
697
698
699
700
701
702
2010-01-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Turn parse_error_list into an opaque type for Swig.  This
	kills a memory leak warning from swig/python.

	* src/ltlparse/public.hh (parse_error_list): Declare
	as an empty struct for Swig.
	* wrap/python/tests/ltlparse.py: Fix copyright.

703
704
705
706
707
708
709
710
2010-01-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix the computation of the length of multops.

	* src/ltlvisit/length.cc (visit(multop*)): New function. "a & b &
	c" has length 5, not 4, even though it is stored as And(a,b,c).
	This caused reduc.test to fail on some formulae.

711
712
713
714
715
716
717
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Please the style checks...

	* src/tgbaalgos/randomgraph.cc: Fix the copyright and make it fit
	on 80 columns.

718
719
720
721
722
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

723
724
725
726
727
728
729
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix taa_tgba_formula's destructor.

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

730
731
732
733
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

734
735
736
737
738
739
740
741
742
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

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

743
744
745
746
747
748
749
750
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

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

751
752
753
754
755
756
757
758
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a memory leak in Cou99 statistics.

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

759
760
761
762
763
764
765
766
767
768
2010-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a longstanding bug in our implementation of GV04.

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

769
770
771
772
773
774
775
776
2010-01-20  Damien Lefortier <dam@lrde.epita.fr>

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

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

777
778
779
780
781
782
783
784
785
786
787
788
2010-01-20  Damien Lefortier <dam@lrde.epita.fr>

	Minor fixes to compile with GCC 3.3

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

789
790
791
792
793
794
795
796
797
798
2010-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove some non-determinism in random_graph()

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

799
2010-01-19  Damien Lefortier <dam@lrde.epita.fr>
800
801
802

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

803
804
805
806
807
808
809
2010-01-18  Damien Lefortier <dam@lrde.epita.fr>

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

810
811
812
813
2010-01-16  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

814
815
816
817
818
819
820
821
822
2010-01-16  Damien Lefortier <dam@lrde.epita.fr>

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

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

823
824
825
826
827
828
829
830
831
832
833
834
835
836
2010-01-16  Damien Lefortier <dam@lrde.epita.fr>

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

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

837
838
839
840
841
842
2010-01-06  Damien Lefortier <dam@lrde.epita.fr>

	Fix a longstanding bug reported by Guillaume Sadegh.

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

843
844
845
846
847
848
849
850
851
2010-01-05  Damien Lefortier <dam@lrde.epita.fr>

	Merge eltl2tgba.cc into ltl2tgba.cc.

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

854
855
856
857
858
859
2009-11-10  Damien Lefortier <dam@lrde.epita.fr>

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

860
861
862
863
2009-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

864
865
866
867
868
2009-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

869
870
871
872
873
874
875
876
877
878
879
880
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'.

881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
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.

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

916
917
918
919
920
2009-11-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

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

926
927
928
929
930
2009-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

931
932
933
934
935
936
937
938
939
940
941
942
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.

943
944
945
946
947
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.

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

956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
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.

974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
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.

995
996
997
998
999
2009-11-20  Alexandre Duret-Lutz  <adl@va-et-vient.net>

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

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

1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
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().

1026
1027
1028
1029
1030
1031
1032
1033
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.

1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
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.

1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
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.

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

1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
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.

1095
1096
1097
1098
1099
1100
1101
1102
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.

1103
1104
1105
1106
1107
1108
1109
1110
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.

1111
1112
1113
1114
1115
1116
1117
1118
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.

1119
1120
1121
1122
1123
1124
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.

1125
1126
1127
1128
1129
1130
1131
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.

1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
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.

1145
1146
1147
1148
1149
1150
1151
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.

1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
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.

1164
1165
1166
1167
1168
1169
1170
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.

1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
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.

1190
1191
1192
1193
1194
1195
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.

1196
1197
1198
1199
1200
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.

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

1212
1213
1214
1215
1216
1217
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.

1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
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.

1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
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.

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

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

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

1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
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.

1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
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*.

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

1347
1348
1349
1350
2009-11-07  Damien Lefortier <dam@lrde.epita.fr>

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

1351
1352
1353
1354
1355
1356
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.

1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
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...

1367
1368
1369
1370
1371
1372
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.

1373
1374
1375
1376
1377
1378
1379
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.

1380
1381
2009-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

1382
	Fix a longstanding bug reported by Kristin Y. Rozier.
1383
1384
1385
1386
1387
1388
1389
1390

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

1391
1392
1393
1394
1395
1396
1397
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.

1398
1399
1400
1401
1402
1403
1404
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.

1405
1406
1407
1408
1409
1410
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.

1411
1412
1413
1414
2009-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1415
1416
1417
1418
1419
1420
1421
1422
1423
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.

1424
1425
1426
1427
2009-10-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/ltl2tgba_fm.cc: Typos.

Damien Lefortier's avatar
Damien Lefortier committed
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
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
1441
1442
1443
1444
1445
1446
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
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
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.

1458
1459
1460
1461
1462
1463
1464
1465
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
1466
	* src/tgbatest/ltl2tgba.cc: New option: -taa, which uses this new
1467
1468
1469
	translation algorithm.
	* src/tgbatest/spotlbtt.test: Add ltl2tgba -taa.

1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
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
1482
1483
1484
1485
1486
2009-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1487
1488
1489
1490
1491
1492
1493
1494
1495
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.

1496
1497
1498
1499
1500
1501
1502
1503
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.

1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
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.

1517
1518
1519
1520
1521
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.

1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
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.

1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
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
1543
1544
1545
1546
1547
1548
1549
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.

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

1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
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().

1570
1571
1572
1573
1574
1575
1576
1577
1578
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
1579
1580
1581
1582
1583
1584
1585
1586
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.

1587
1588
1589
1590
1591
1592
1593
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.

1594
1595
1596
1597
1598
1599
1600
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.

1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
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.

1616
1617
1618
1619
1620
1621
1622
1623
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.

1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
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.

1658
1659
1660
1661
2009-08-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1662
1663
1664
1665
1666
1667
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.

1668
1669
1670
1671
1672
1673
1674
1675
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.

1676
1677
1678
1679
2009-07-09  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

1680
1681
1682
2009-07-08  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

Flix Abecassis's avatar
Flix Abecassis committed
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
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
1697
	constants when translating to TGBA many LTL formulae from a
Flix Abecassis's avatar
Flix Abecassis committed
1698
1699
1700
1701
1702
1703
1704
	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.

1705
1706
1707
1708
1709
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.
1710

1711
1712
1713
1714
2009-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

1715
1716
1717
1718
1719
1720
1721
1722
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
1723
1724
1725
1726
1727
1728
1729
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.

1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
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.

1741
1742
2009-06-09  Guillaume Sadegh  <sadegh@lrde.epita.fr>

1743
1744
	* src/tgba/tgbacomplement.cc, src/tgbatest/complementation.cc:
	Fix style.
1745

1746
1747
1748
1749
1750
2009-06-07  Guillaume Sadegh  <sadegh@lrde.epita.fr>

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

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

1757
1758
1759
1760
2009-06-05  Guillaume Sadegh  <sadegh@lrde.epita.fr>

	Remove generated files that git follows.

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

1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
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.

1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
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.

1800
1801
1802
1803
1804
1805
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.

1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
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.

1817
1818
1819
1820
1821
1822
1823
1824
1825
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.

1826
1827
1828
1829
1830
1831
1832
1833
1834
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.

1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
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.

1845
1846
1847
1848
1849
1850
1851
1852
1853
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.

1854
1855
1856
1857
1858
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.

1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
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.

1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
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.

1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
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
1908
1909
1910
1911
1912
1913
1914
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.

1915
1916
1917
1918
1919
1920
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.

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

1935
1936
1937
1938
1939
1940
1941
1942
1943
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.

1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
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.

1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
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.

1975
1976
1977
1978
1979
2009-03-26  Damien Lefortier <dam@lrde.epita.fr>

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

1980
	* configure.ac: Adjust for src/eltlparse/ and src/eltltest/
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
	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.

2016
2017
2018
2019
2009-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
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.

2037
2038
2039
2040
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
2041
2042
2043
2044
2045
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
2046
2047
2048
2049
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
2050
2051
2052
2053
2054
2009-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

2055
2056
2057
2058
2059
2060
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'.

2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
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.
2071
	* src/tgbaalgos/tau03opt.cc
2072
	(tau03_opt_search::add_new_state): Remove unreferenced method.
2073
	* src/tgbaalgos/ltl2tgba_fm.cc
2074
	(translate_dict::dump): Remove unreferenced method.
2075
	* src/tgbaalgos/lbtt.cc
2076
	(acceptance_cond_splitter::count): Remove unreferenced method.
2077
	* src/tgba/tgbabddconcreteproduct.cc
2078
	(tgba_bdd_product_factory::get_dict): Remove unreferenced method.
2079
2080
	* src/ltlvisit/syntimpl.cc
	(eventual_universal_visitor::recurse): Remove unreferenced method.
2081
2082
	* src/tgbaalgos/reductgba_sim.cc: Reindent.

2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
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.

2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
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.

2103
2104
2105
2106
2107
2108
2109
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.

2110
2111
2112
2113
2114
2115
2116
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().

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

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

2129
2130
2131
2132
2133
2134
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.

2135
2136
2137
2138
2139
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.

2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
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.

2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
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.

2178
2179
2180
2181
2182
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.

2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
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.

2196
2197
2198
2199
2200
2201
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.

2202
2203
2204
2205
2206
2207
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.

2208
2209
2008-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

2210
2211
2212
	* iface/nips/dottynips.cc: Include ctsdlib for exit().
	* iface/nips/emptiness_check.cc: Likewise.

2213
2214
	* src/sanity/includes.test: Remove empty line at beginning of file.

2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
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.

2228
2229
2230
2231
2008-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

2232
2233
2234
2235
2236
2237
2238
2239
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/.

2240
2241
2008-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

2244
2245
2246
2247
	* iface/nips/Makefile.am (empt_check_LDADD, dottynips_LDADD):
	Do not link libnipsvm.la here...
	(libspotnips_la_LIBADD): ... do it here.

2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
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
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
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.

2303
2304
2305
2306
2307
2308
2309
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.

2310
2311
2312
2313
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
2314
2315
2316
2317
2008-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

2318
2319
2320
2321
2008-03-21  Damien Lefortier <dam@lrde.epita.fr>

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

2322
2323
2324