ChangeLog 134 KB
Newer Older
1
2
2004-05-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

3
4
5
	* src/sanity/Makefile.am (EXTRA_DIST): Distribute 80columns.test
	and style.test.

6
	* src/ltltest/Makefile.am (EXTRA_DIST): Distribute formulae.txt.
7
	* src/ltltest/formulae.txt: New file (2200 LTL formulea generated
8
9
10
11
	by Wring).
	* src/ltltest/formules.ltl: Delete.
	* src/reduc.test: Read formulae.txt.

12
13
14
15
16
17
18
19
20
2004-05-24  Soheib Baarir  <Souheib.Baarir@lip6.fr>

	* iface/gspn/ssp.hh (gspn_ssp_interface::gspn_ssp_interface): Add
	the `inclusion' flag.
	* iface/gspn/ssp.cc (gspn_ssp_interface::gspn_ssp_interface): Call
	inclusion_version when inclusion is set.
	* iface/gspn/ltlgspn.cc (main) [SSP]: Turn on inclusion for -e3,
	-e4, and -e5.

21
22
2004-05-21  Alexandre Duret-Lutz  <adl@src.lip6.fr>

23
24
25
26
27
28
29
30
31
32
33
	* iface/gspn/gspn.cc (tgba_gspn_private_): Define alive_prop,
	and dead_prop from the dead argument passed to the constructor.
	(tgba_succ_iterator_gspn): Stutter on dead transitions.
	(tgba_gspn::tgba_gspn): Hand dead to tgba_gspn_private_.
	(gspn_interface::gspn_interface): Hand dead to tgba_gspn.
	* iface/gspn/gspn.hh (gspn_interface::gspn_interface): Take a
	dead argument.
	* iface/gspn/ltlgspn.cc [!SSP]: Add a option -d to specify the
	dead property.
	* iface/gspn/udcseltl.test: Try option -d.

34
35
36
	* src/sanity/style.test: Check the iface/ tree too.
	* iface/gspn/gspn.cc, iface/gspn/ssp.cc: Fix style.

37
38
39
40
41
42
	* src/sanity/80columns.test: Check the iface/ tree too.
	* iface/gspn/dcswaveltl.test, iface/gspn/dcswavefm.test,
	iface/gspn/dcswaveeltl.test, iface/gspn/udcsltl.test,
	iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
	iface/gspn/udcsefm.test: Wrap to fit 80 columns.

43
44
45
46
47
48
2004-05-18  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* doc/Makefile.am (EXTRA_DIST, spot.html): Built the html
	documentation in $(srcdir) since it is distributed.
	* doc/Doxyfile.in (HTML_OUTPUT): Likewise.  Upgrade to Doxygen 1.3.7.

49
50
2004-05-17  Thomas Martinez  <martinez@src.lip6.fr>

51
52
	* src/ltlvisit/basereduc.cc, src/ltltest/inf.cc (main): Style.

53
54
55
56
57
58
	* src/ltlvisit/basereduc.cc (spot): 80 columns.
	* src/ltlvisit/reducform.cc (spot), src/ltltest/inf.cc,
	src/ltltest/reduc.cc (main), src/ltlvisit/reducform.hh,
	src/tgbatest/ltl2tgba.cc (main): More option.
	* src/ltltest/inf.test: More test.

59
60
2004-05-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

61
62
63
	* wrap/python/buddy.i: Define typemap for input_buf and use it
	for fdd_extdomain.  Define const_int_ptr and use it for fdd_vars.

64
65
66
67
68
69
70
	* src/misc/bddalloc.cc (bdd_allocator::varnum): Suppress.
	(bdd_allocator::bdd_allocator): Adjust.
	(bdd_allocator::extvarnum): Always call bdd_varnum(), so that
	it doesn't matter if the number of variable has been augmented
	externally.
	* src/misc/bddalloc.hh (bdd_allocator::varnum): Suppress.

71
72
	* src/ltlvisit/formlength.cc: Fix style to please sanity checks.

73
74
	* src/ltlvisit/lunabbrev.cc: Fix style to please sanity checks.

75
76
77
	* src/tgbaalgos/neverclaim.cc: Fix them.
	* sanity/style.test: Diagnose semicolons with leading spaces.

78
79
80
	* src/ltlvisit/forminf.cc: Fix style to please sanity checks.
	Also avoid node_type_form_visitor where a dynamic_cast is done.

81
82
2004-05-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

83
84
	* wrap/python/buddy.i: Preliminary bindings for FDD and BVEC.

85
86
87
	* ltltest/inf.cc, ltltest/reduc.cc, ltlvisit/reducform.cc: Fix style.
	* sanity/style.test: More tests.

88
89
90
	* src/tgbatest/ltl2tgba.cc (main): Fix style.
	* HACKING: Mention `else if'.

91
92
93
94
	* src/tgbaalgos/neverclaim.cc (never_claim_bfs): Do not output
	space before colon, and do not output the top-level formula using
	Spin's syntax.

95
96
2004-05-14  Thomas Martinez  <martinez@src.lip6.fr>

97
98
	* src/tgbatest/ltl2tgba.cc (main): Thinko.

99
100
101
102
103
104
	* src/ltlvisit/basereduc.cc (spot): Correct some mistakes.
	* src/ltlvisit/lunabbrev.cc (spot): Nothing change.
	* src/tgbatest/ltl2tgba.cc (main): More option to reduce
	formula.
	* src/tgbatest/spotlbtt.test: One more test.

105
106
2004-05-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

107
108
109
110
111
112
113
114
115
	* src/ltlvisit/tostring.cc (to_spin_string_visitor,
	to_string_visitor): Do not parenthesize the top-level formula.
	* tgbatest/explicit.test, tgbatest/explpro2.test,
	tgbatest/explpro3.test, tgbatest/explprod.test,
	tgbatest/readsave.test, tgbatest/tgbaread.test,
	tgbatest/tripprod.test: Adjust expected output.
	* sanity/style.test: Fix regexes to catch an error seen in
	tostring.cc.

116
117
118
119
	* src/tgbaalgos/gtec/gtec.cc (emptiness_check::remove_component):
	Do not try to erase state that are not found in H.
	Report from Soheib Baarir.

120
121
122
	* src/ltltest/reduc.test: Use ./defs and clean result.data.
	* src/ltltest/Makefile.am (CLEANFILES): Clean result.data.

123
124
125
126
127
128
129
130
131
132
2004-05-13  Thomas Martinez  <martinez@src.lip6.fr>

	* src/ltlvisit/Makefile.am: Copyright 2004.
	* src/ltltest/inf.test: More test.
	* src/ltlvisit/basereduc.cc, src/ltlvisit/forminf.cc (spot):
	Use dynamic_cast.
	* src/ltlvisit/reducform.cc, src/ltlvisit/reducform.hh,
	src/ltltest/reduc.test, src/ltltest/reduc.cc: Add an option
	to choose which rules applies to simplify the formula.

133
134
2004-05-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

135
136
	* src/ltltest/reduc.test: Typo.

137
138
139
140
141
142
143
144
145
146
	* src/ltlparse/ltlparse.yy (OP_POST_NEG, OP_POST_POS): New tokens.
	(subformula): Recognize `ATOMIC_PROP OP_POST_POS' and
	`ATOMIC_PROP OP_POST_NEG'.
	* src/ltlparse/ltlscan.ll: Introduce the not_prop start condition,
	to restrict the set of atomic propositions allowed in places
	where they are not expected.  Make `true' and `false' case insensitive.
	* src/ltltest/parse.test, src/ltltest/tostring.test: More cases.
	* src/ltlvisit/tostring.cc (to_string_visitor): Quote atomic
	propositions equal to "true" or "false".

147
148
2004-05-11  Alexandre Duret-Lutz  <adl@src.lip6.fr>

149
150
	* src/ltltest/Makefile.am (TESTS): Run inf.test and reduc.test last.

151
152
	* src/ltltest/reduc.test: POSIXify.

153
154
2004-05-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

155
156
157
158
159
160
161
162
163
164
	* src/sanity/style.test: New file.
	* src/sanity/Makefile.am (check-local): Run it.
	* src/ltlvisit/nenoform.cc, src/ltlvisit/tostring.cc,
	src/tgba/bdddict.cc, src/tgba/bddprint.cc, src/tgba/tgba.cc,
	src/tgba/tgbaproduct.cc, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/magic.cc, src/tgbaalgos/powerset.cc,
	src/tgbaalgos/reachiter.cc, src/tgbaalgos/gtec/ce.cc,
	src/tgbaalgos/gtec/gtec.cc, src/tgbatest/ltl2tgba.cc: Fix style
	issues reported by style.test.

165
166
167
168
169
	* src/ltltest/inf.cc, src/ltltest/inf.test, src/ltltest/reduc.test,
	src/ltlvisit/formlength.cc, src/ltlvisit/reducform.cc,
	src/ltlvisit/reducform.hh: Fix copyright year, these files were
	created in 2004.

170
171
172
173
174
175
176
177
178
179
	* src/sanity/80columns.test: New file.
	* src/sanity/Makefile.am (check-local): Run it.
	* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
	src/ltltest/nenoform.test, src/ltltest/parseerr.test
        src/ltltest/tunabbrev.test, src/ltltest/reduc.cc,
	src/ltltest/tunabbrev.test, src/ltlvisit/forminf.cc,
	src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
	src/tgbatest/explprod.test, src/tgbatest/spotlbtt.test,
	src/tgbatest/tripprod.test: Wrap long lines.

180
181
2004-05-10  Thomas MARTINEZ  <martinez@abacus.lip6.fr>

182
183
	* src/tgbatest/ltl2tgba.cc (main): Add a option for reduce the formula.

184
185
186
187
188
189
190
191
192
193
194
195
	* src/ltltest/formules.ltl: A pattern of 2000 formulas.
	* src/ltltest/inf.test: Test some case of implies.
	* src/ltltest/inf.cc: Test some case of implies.
	* src/ltltest/reduc.test: Test reduction of a file of formula.
	* src/ltltest/reduc.cc: Test reduction of a formula.

	* src/ltlvisit/formlength.cc: Gives the lenght of a formula.
	* src/ltlvisit/forminf.cc: To know if a formula implies an other.
	* src/ltlvisit/basereduc.cc: Implement only basic reduction.
	* src/ltlvisit/reducform.cc: Implement reduction.
	* src/ltlvisit/reducform.hh: To reduce a formula.

196
197
2004-05-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

198
199
200
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Refine
	fair_loop_approximation when branching postponement is not used.

201
202
203
204
205
206
	Cache formula translations, and canonize formulae before doing
	branching postponement.
	* src/tgbaalgos/ltl2tgba_fm.cc (formula_canonizer): New class, with
	bits extracted from fill_dests and ltl_to_tgba_fm.
	(fill_dests, ltl_to_tgba_fm): Adjust to use formula_canonizer.

207
208
209
210
211
212
213
214
215
216
	* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add argument
	fair_loop_approx.
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Implement the
	fair_loop_approx optimization.
	(ltl_promise_visitor, ltl_possible_fair_loop_visitor,
	possible_fair_loop_checker): New classes.
	* src/tgbatest/ltl2tgba.cc: Add the -L option.
	* src/tgbatest/spotlbtt.test: Exercise fair_loop_approx.
	* wrap/python/cgi/ltl2tgba.in: Make it an option.

217
218
219
220
221
222
223
224
225
226
227
2004-05-07  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add argument
	branching_postponement.
	* src/tgbaalgos/ltl2tgba_fm.cc (fill_dests): New function, extracted
	from ltl_to_tgba_fm().
	(ltl_to_tgba_fm): Implement the branching_postponement optimization.
	* src/tgbatest/ltl2tgba.cc: Add the -p option.
	* src/tgbatest/spotlbtt.test: Exercise branching postponement.
	* wrap/python/cgi/ltl2tgba.in: Make it an option.

228
229
2004-05-04  Alexandre Duret-Lutz  <adl@src.lip6.fr>

230
231
232
	* src/tgbaalgos/ltl2tgba_fm.cc: Add a superfluous return to pacify
	some GCC version.  Report from Denis Poitrenaud.

233
234
	* wrap/python/cgi/ltl2tgba.in: Fix output HTML.

235
236
237
238
239
240
241
242
243
2004-05-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Clone and then
	free all formulae entered into canonical_succ, to avoid errors
	when a formula is entered into canonical_succ but not into
	formulae_seen.
	* src/tgbatest/ltl2tgba.test: Add a new test, and check with -f.
	Report from Thomas Martinez.

244
245
2004-04-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

246
247
	* configure.ac, NEWS: Bump version to 0.0u.

248
249
250
251
	* configure.ac, NEWS: Bump version to 0.0t.
	* HACKING: Update tools requirements.
	* src/sanity/Makefile.am (EXTRA_DIST): Distribute includes.test.

252
253
254
255
	* src/sanity/Makefile.am, src/sanity/includes.test: New files.
	* src/Makefile.am (SUBDIRS): Add sanity.
	* configure.ac: Output src/sanity/Makefile.in.

256
257
258
259
260
	* src/tgbatest/Makefile.am (check_PROGRAMS): Move ltl2tgba ...
	(noinst_PROGRAMS): ... here.
	* iface/gspn/Makefile.am (check_PROGRAMS): Rename as ...
	(noinst_PROGRAMS): ... this.

261
262
2004-04-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

263
	* src/tgbatest/explicit.test: Reorder bdd variables in output.
264
265
	Report from Denis Poitrenaud.

266
267
	* wrap/python/cgi/ltl2tgba.in: Print degeneralized statistics
	when show_never_claim.  Change the title to LTL-to-TGBA.
268
	Suggested by Denis Poitrenaud.
269

270
271
2004-04-21  Alexandre Duret-Lutz  <adl@src.lip6.fr>

272
273
274
	* wrap/python/cgi/ltl2tgba.in (print_footer): Make ltl2tgba.py's
	version a separate variable.

275
276
277
	* wrap/python/cgi/ltl2tgba.in: Pass the formula to
	never_claim_reachable, and cgi.escape its output.
	Lighten the color a bit.
278

279
280
281
	* src/tgbaalgos/gtec/ce.hh, src/misc/freelist.hh,
	src/tgba/bddprint.hh: Fix Doxygen comments.

282
283
284
285
286
287
288
	* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Document
	arguments.
	* src/tgbaalgos/neverclaim.cc (never_claim_bfs::state_is_accepting):
	New method.
	(never_claim_bfs::get_state_label, never_claim_bfs::process_state):
	Use it.

289
290
291
	* wrap/python/cgi/ltl2tgba.in: Use darker color and introduce
	the new variable dot_bgcolor.

292
293
294
	* wrap/python/cgi/ltl2tgba.in (add_options): Revamp options output
	using this new function.

295
296
297
	* wrap/python/spot.i: Process tgbaalgos/neverclaim.hh.
	* wrap/python/cgi/ltl2tgba.in: Display the never claim on demand.

298
299
300
301
302
303
304
305
306
307
308
309
2004-04-21  Denis Poitrenaud  <dp@src.lip6.fr>

	* src/ltlvisit/tostring.hh (to_spin_string): New function.
	Convert a formula into a string parsable by Spin.
	* src/tgbaalgos/neverclaim.hh, src/tgbaalgos/neverclaim.cc: New files.
	Print the never claim in Spin format of a degeneralized TGBA.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/ltl2tgba.cc: Add the option -N which outputs the
	never claim in Spin format of a degeneralized TGBA.
	* src/tgbatest/ltl2neverclaim.test: New file.
	* src/tgbatest/Makefile.am: Add it.

310
311
2004-04-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>

312
313
314
315
	* src/ltltest/defs.in, src/tgbatest/defs.in: Correctly set exitcode
	when valgrind is not used.
	Reported by Denis Poitrenaud.

316
317
318
319
320
	* src/tgba/tgba.hh (tgba::succ_iter): Doco.
	* src/tgba/tgbatba.hh (tgba_tba_proxy::state_is_accepting): Document
	it.
	Reported by Denis Poitrenaud.

321
2004-04-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>
322

323
324
325
	* iface/gspn/ltlgspn.cc (main) [SSP]: Use the standard
	counter-example computation for -e5 too.

326
327
328
329
	* iface/gspn/ltlgspn.cc (main) [!SSP]: Do not accept -e3, -e4, or -e5.
	(main) [SSP]: Use the standard counter-example computation
	for -e and -e1.

330
331
332
2004-04-15  Soheib Baarir  <Souheib.Baarir@lip6.fr>
	    Alexandre Duret-Lutz  <adl@src.lip6.fr>

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
333
334
335
336
337
338
339
340
341
	Rename EESRG as SSP.
	* iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
	iface/gspn/dottyeesrg.cc: Rename as ...
	* iface/gspn/ssp.cc, iface/gspn/ssp.hh, iface/gspn/dottyssp.cc:
	... these.  Adjust all classes and function names.
	* iface/gspn/ltlgspn.cc, iface/gspn/Makefile.am: Adjust all classes
	filenames and function names.
	* m4/gspnlib.m4: Define WITH_GSPN_SSP and LIBGSPNSSP_LDFLAGS.

342
343
344
345
346
347
348
349
350
351
352
353
354
355
	* src/tgbaalgos/gtec/nsheap.cc (numbered_state_heap_hash_map::find):
	Rewrite.
	(numbered_state_heap_hash_map::index): New functions.
	(numbered_state_heap_hash_map::filter): Delete.
	* src/tgbaalgos/gtec/nsheap.hh
	(numbered_state_heap_hash_map::index): New functions.
	(numbered_state_heap_hash_map::filter): Delete.
	* iface/gspn/eesrg.cc (numbered_state_heap_eesrg_semi::find,
	numbered_state_heap_eesrg_semi::index): Rewrite.
	(numbered_state_heap_eesrg_semi::filter): Remove.
	* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/ce.cc:
	Adjust to use find() and index() instead of filter()..


356
357
358
359
360
361
362
363
364
365
366
	* iface/gspn/eesrg.cc (connected_component_eesrg::has_state):
	Free filtered states.
	(emptiness_check_shy_eesrg): New class.
	(emptiness_check_eesrg_shy): New function.
	* iface/gspn/eesrg.hh (emptiness_check_eesrg_shy): New function.
	* iface/gspn/ltlgspn.cc (main) [EESRG]: Handle -e3, -e4, and -e5.
	* * src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/gtec.cc
	(emptiness_check_shy::check): Move arc, num, succ_queue, and todo
	as attributes.
	(emptiness_check_shy::find_state): New virtual function.

367
368
369
370
371
372
373
374
375
376
377
378
379
380
2004-04-14  Soheib Baarir  <Souheib.Baarir@lip6.fr>
	    Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* iface/gspn/ltlgspn.cc (connected_component_eesrg,
	connected_component_eesrg_factory, numbered_state_heap_eesrg_semi,
	numbered_state_heap_eesrg_const_iterator,
	numbered_state_heap_eesrg_factory_semi): New classes.
	(emptiness_check_eesrg_semi, emptiness_check_eesrg_shy_semi,
	counter_example_eesrg): New functions.
	* iface/gspn/eesrg.hh (emptiness_check_eesrg_semi,
	emptiness_check_eesrg_shy_semi, counter_example_eesrg): New
	functions.
	* iface/gspn/ltlgspn.cc [EESRG]: Adjust to call these new functions.

381
382
383
384
385
386
387
388
2004-04-14  Soheib Baarir  <Souheib.Baarir@lip6.fr>

	* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg,
	state_gspn_eesrg): Compute the array of all successors of the
	right state beforehand, pass it to Greatspn (left automata) at
	once, let it compute the resulting synchronized arcs, and iterate
	on that result.

389
390
2004-04-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

391
392
393
394
395
396
397
398
399
400
401
402
403
	* src/tgbaalgos/gtec/nsheap.hh (numbered_state_heap_factory,
	numbered_state_heap_hash_map_factory): New class.
	* src/tgbaalgos/gtec/nsheap.cc (numbered_state_heap_hash_map_factory):
	Implement it.
	* src/tgbaalgos/gtec/gtec.hh (emptiness_check::emptiness_check,
	emptiness_check_shy::emptiness_check_shy): Take a
	numbered_state_heap_factory argument.
	* tgbaalgos/gtec/status.hh
	(emptiness_check_status::emptiness_check_status): Likewise.
	(emptiness_check_status::h): Make it a numbered_state_heap*.
	* src/tgbaalgos/gtec/ce.cc, tgbaalgos/gtec/gtec.cc,
	tgbaalgos/gtec/status.cc: Adjust uses of ecs_->h.

404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
	* src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc:
	Delete and split into ...
	* src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh,
	src/tgbaalgos/gtec/explscc.cc, src/tgbaalgos/gtec/explscc.hh,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
	src/tgbaalgos/gtec/nsheap.cc, src/tgbaalgos/gtec/nsheap.hh,
	src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh,
	src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh: ...
	these new files.
	* src/tgbaalgos/gtec/Makefile.am: New file.
	* src/tgbaalgos/Makefile.am (SUBDIRS, libtgbaalgos_la_LIBADD):
	Recurse into gtec and link gtec/libgtec.la.
	(tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES): Remove emptinesscheck.hh
	and emptinesscheck.cc.
	* configure.ac: Output src/tgbalagos/gtec/Makefile.
	* iface/gspn/ltlgspn.cc, src/tgbatest/ltl2tgba.cc: Update includes.
	* README: Update tree description.

422
423
2004-04-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

424
	* src/tgbaalgos/emptinesscheck.hh (numbered_state_heap_const_iterator,
425
	numbered_state_heap, numbered_state_heap_hash_map): New classes.
426
	* src/tgbaalgos/emptinesscheck.cc
427
428
429
	(numbered_state_heap_hash_map_const_iterator): New class.
	(numbered_state_heap_hash_map): Implement it.

430
431
432
433
434
435
436
	* src/tgbaalgos/emptinesscheck.hh
	(explicit_connected_component_factory,
	connected_component_hash_set_factory): New classes.
	(counter_example::counter_example): Take an
	explicit_connected_component_factory factory argument.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.

437
438
439
440
441
442
	* src/tgbaalgos/emptinesscheck.hh (explicit_connected_component):
	New class.
	(counter_example::connected_component_set): Rename as ...
	(connected_component_hash_set): ... this, and inherit from
	explicit_connected_component.
	(counter_example::accepting_path, counter_example::complete_cycle):
443
444
445
	Take an explicit_connected_component argument instead of a
	connected_component_set.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.
446

447
448
449
450
451
	* src/tgbaalgos/emptinesscheck.hh
	(counter_example::connected_component_set::has_state): Return
	a const state* and behave like h_filt.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.

452
453
454
455
456
457
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check2): Move
	into ...
	(emptiness_check_shy): This new subclass of emptiness_check.
	* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
	iface/gspn/ltlgspn.cc: Adjust.

458
459
	* src/tgba/bdddict.hh (bdd_dict::annon_free_list): Hide from Swig.

460
461
462
463
464
465
	* src/tgbaalgo/semptinesscheck.hh (counter_example): New class,
	extracted from ...
	(emptiness_check): ... here.
	* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
	iface/gspn/ltlgspn.cc: Adjust.

466
467
468
	* wrap/python/Makefile.am ($(srcdir)/spot_wrap.cxx)
	($(srcdir)/buddy_wrap.cxx): Use -noruntime instead of -c.

469
470
471
472
473
	* src/tgbaalgo/semptinesscheck.hh (emptiness_check_status): New class,
	extracted from ...
	(emptiness_check): ... here.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.

474
475
476
477
478
479
	* src/tgbaalgo/semptinesscheck.hh (scc_stack): New class, extracted
	from ...
	(emptiness_check): ... here.
	(emptiness_check::root): Redefined as a scc_stack object.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.

480
481
482
483
484
2004-04-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
	Do not visit a state more than once.  Report from Soheib Baarir.

485
486
2004-03-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

487
488
489
490
491
492
493
494
495
496
497
498
499
	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict): Reuse Acc and Var
	variables from a shared bdd_dict.  Register Next variables as
	anonymous variables.
	(translate_dict::translate_dict, translate_dict::~translate_dict,
	translate_dict::register_proposition,
	translate_dict::register_a_variable,
	translate_dict::register_next_variable,
	translate_dict::dump, translate_dict::var_to_formula,
	ltl_to_tgba_fm): Adjust.
	(translate_dict::dict): New attribute.
	(translate_dict::a_map, translate_dict::a_formula_map,
	translate_dict::var_map, translate_dict::var_formula_map): Delete.

500
501
502
503
504
505
506
	* src/misc/freelist.cc (free_list::remove): Work around
	invalidated iterators.
	* tgba/bdddict.cc (unregister_variable): New methods,
	extracted from ...
	(bdd_dict::unregister_all_my_variables): ... here.
	* tgba/bdddict.hh (unregister_variable): Declare them.

507
508
2004-03-23  Alexandre DURET-LUTZ  <adl@src.lip6.fr>

509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
	* src/misc/freelist.hh (free_list::remove, free_list::insert): New
	methods.
	* src/misc/freelist.cc (free_list::register_n,
	free_list::releases_n): Rewrite using free_list::remove and
	free_list::insert.
	(free_list::remove, free_list::insert): New methods.
	* src/tgba/bdddict.hh (bdd_dict::register_anonymous_variables):
	New method.
	(bdd_dict::annon_free_list): New subclass.
	(bdd_dict::free_annonymous_list_of_type_of): New attribute.
	* src/tgba/bdddict.cc (bdd_dict::register_all_variables_of,
	bdd_dict::unregister_all_my_variables): Handle anonymous variables
	too.
	(bdd_dict::register_anonymous_variables,
	bdd_dict::annon_free_list::annon_free_list,
	bdd_dict::annon_free_list::extend): New methods.

526
527
528
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::accepting_path)
	Fix handling of PATH when backtracking.  Report from Soheib Baarir.

529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
2004-03-18  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	Move the free_list management into a separate class for reuse.

	* src/misc/freelist.hh, src/misc/freelist.cc: New files.
	* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
	* src/misc/bddalloc.hh (bdd_allocator): Inherit from free_list and
	make dump_free_list visible.
	* src/misc/bddalloc.cc (bdd_allocator::allocate_variables): Move
	all the code into free_list::register_n() and
	bdd_allocator::extend(), and call the former.
	(bdd_allocator::release_variables): Move all the code into
	free_list::release_n() and call it.
	(bdd_allocator::extend): New method.
	* src/tgba/bdddict.cc (bdd_dict::dump): Call dump_free_list;

545
546
547
548
2004-03-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* configure.ac, NEWS: Bump version to 0.0s.

549
550
2004-03-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>

551
552
	* configure.ac, NEWS: Bump version to 0.0r.

553
554
555
556
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm) <exprop>: Do not
	blindly enumerate all combinations of atomic properties; initially
	set all_props to the set of all possibly satisfiable combinations.

557
558
2004-02-21  Alexandre Duret-Lutz  <adl@src.lip6.fr>

559
560
561
	* lbtt/src/Makefile.am (lbtt_translate_SOURCES): Fix leftover
	from 1.0.3 merge.

562
563
	* wrap/python/cgi/ltl2tgba.in: Process ltl2tgba.opt if it exists.

564
565
	* wrap/python/cgi/ltl2tgba.in: Color translators and their options.

566
567
2004-02-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>

568
569
	* wrap/python/cgi/ltl2tgba.in: Present the options in a table.

570
571
572
573
	* wrap/python/cgi/ltl2tgba.in: Remove the "print dot" options,
	add a "dot source" source behind each picture instead.  Do
	not run `dot' on big automata.

574
575
576
577
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Fix example
	in comment.  Skip false transitions, and do not compute
	sub-formulae reachable only via false transitions.

578
579
580
581
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Revert
	yesterday's change.  This optimization is NOT covered by exprop.
	In fact it could be generalized.

582
583
2004-02-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>

584
585
586
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Remove the
	cond_for_true optimization.  It is covered by exprop.

587
588
589
	* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::current_state):
	Fix reference to Oddoux's thesis.

590
591
2004-02-16  Alexandre Duret-Lutz  <adl@src.lip6.fr>

592
593
594
595
596
597
598
599
	* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add the
	symb_merge argument.
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Likewise.
	* src/tgbatest/ltl2tgba.cc (main): Rename -fx as -x, and add -y
	to unset symb_merge.
	* wrap/python/cgi/ltl2tgba.in: Remove the exprop version
	of the FM translator, make exprop and symb_merge options.

600
601
602
603
604
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor::visit) <unop::G>:
	suppress the GFy optimisation introduced on 2003-11-26, it is
	generalized by the identification of states with same symbolic
	rewriting introduced on 2004-02-02.

605
606
	* lbtt/: Merge lbtt 1.0.3.

607
608
609
610
611
2004-02-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/ltl2baw.pl (END): Ensure LTL2TGBA is always
	closed.

612
613
614
615
616
617
618
619
620
621
622
2004-02-11  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/ltl2tgba.cc (syntax): Recognize "-" as input
	filename for the formula.  Merge the transitions of automata
	read with -X.
	* src/tgbatest/spotlbtt.test: Add many disabled algorithms.
	It is convenient to reuse the `config' file created by this
	test when making statistics.
	* src/tgbatest/ltl2baw.pl: New file.
	* src/tgbatest/Makefile.am (EXTRA_DIST): Add ltl2baw.pl.

623
624
2004-02-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

625
626
627
	* wrap/python/libpy.c: Update from Swig 1.3.21.
	* HACKING: Update versions.

628
629
630
631
632
633
634
635
636
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Take an exprop
	argument.  Consider all possible combinations of propositions when
	generating arcs.  Suggested by Jean-Michel Couvreur.
	* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Adjust.
	* src/tgbatest/ltl2tgba.cc: Honor -fx.
	* src/tgbatest/spotlbtt.test: Exercise -fx.
	* wrap/python/cgi/ltl2tgba.in: Support Couvreur/FM with exploded
	properties.

637
638
2004-02-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

639
640
	* src/ltlparse/ltlparse.yy: Typo.

641
642
643
644
645
	* wrap/python/cgi/ltl2tgba.in: Use render_dot when
	showing formula.
	* wrap/python/cgi/README: Mention unique_id.

2004-02-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>
646
647
648
649
650
651
652
653
654
655
656
657
658
659

	This should help getting accurate statistics (on both the
	formula automaton and the synchronized product) from LBTT.
	Idea from Jean-Michel Couvreur.

	* src/tgbaalgos/lbtt.cc (nonacceptant_lbtt_bfs): New class.
	(nonacceptant_lbtt_reachable): New function.
	* src/tgbaalgos/lbtt.hh (nonacceptant_lbtt_reachable): New
	function.
	* src/tgbatest/ltl2tgba.cc (main): Call nonacceptant_lbtt_reachable
	if the -T option is used.
	* src/tgbatest/spotlbtt.test: Setup the -T variants, disabled by
	default.

660
661
2004-02-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

662
663
	* src/tgbaalgos/lbtt.hh: Typos.

664
665
	* src/tgbatest/spotlbtt.test: Typo.

666
667
668
669
670
671
	* wrap/python/spot.i (unblock_signal): New function.
	* wrap/python/cgi/ltl2tgba.in (print_footer, alarm_handler)
	(reset_alarm): New functions.  Kill the script and its
	children if it runs for too long.
	(render_dot): Call reset_alarm.

672
673
2004-02-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

674
675
	* configure.ac, NEWS: Bump version to 0.0q.

676
677
	* configure.ac, NEWS: Bump version to 0.0p.

678
679
680
681
	* wrap/python/cgi/ltl2tgba.in: Fix <table> setting to cope
	with IE, Safari, konqueror, ... None of these support
	rules="groups" frame="border" properly (Mozilla is OK).

682
683
684
2004-02-02  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* wrap/python/cgi/ltl2tgba.in: Output a description of the syntax.
685

686
687
688
	* wrap/python/cgi/ltl2tgba.in: Import spot and redirect stderr
	to stdout early.

689
690
691
	* wrap/python/cgi/ltl2tgba.in (print_stats): Compute and display
	the number of acceptance conditions.

692
693
694
695
696
	* wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
	wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
	wrap/python/tests/ltlsimple.py: Specify coding system to
	accommodate newer Python versions.

697
698
699
700
701
	* src/misc/bddalloc.hh: Make all methods public.
	* wrap/python/spot.i: Include misc/bddalloc.hh and misc/minato.hh.
	* wrap/python/tests/minato.py: New file.
	* wrap/python/tests/Makefile.am (TESTS): Add minato.py.

702
703
704
705
706
707
	* src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
	src/tgbatest/mixprod.cc, src/tgbatest/powerset.cc,
	src/tgbatest/readsave.cc, src/tgbatest/tgbaread.cc,
	src/tgbatest/tripprod.cc: Add missing copyright license.

708
709
710
711
	* wrap/python/cgi/ltl2tgba.in (render_dot): Render .png directly
	with dot, without using convert.
	* wrap/python/cgi/README: Do not mention convert.

712
713
714
	* wrap/python/cgi/ltl2tgba.in (render_dot, render_automaton)
	(render_bdd): New functions, extracted from the rest of the code.

715
716
717
718
	* wrap/python/cgi/ltl2tgba.in (default_translator): Default
	to trans_fm.
	(translators): Show trans_fm before trans_lacim.

719
720
721
722
	* wrap/python/cgi/ltl2tgba.in (print_stats): New function.  Call
	it to display the size of the generalized and degeneralized
	automata.

723
724
725
726
727
	* src/tgbalagos/stats.hh, src/tgbalagos/stats.cc: New files.
	* src/tgbalagos/Makefile.am: Add them.
	* wrap/python/spot.i: Include src/tgbalagos/dupexp.hh and
	src/tgbalagos/stats.hh

728
729
730
731
732
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Identify states
	with identical successors.  This optimizes the translation
	of `a R (b R c)', for instance.
	* src/tgbatest/ltl2tgba.test: Add two new tests.

733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
	Hide the tgba_gspn and tgba_gspn_eesrg classes.  Offer the
	corresponding automaton via the automaton() method of the
	gspn_interface and gspn_eesrg_interface classes.

	* iface/gspn/gspn.hh (gspn_interface::gspn_interface): Take dict and
	env arguments.
	(gspn_interface::automaton): New method.
	(tgba_gspn): Move all the declaration ...
	* iface/gspn/gspn.cc (tgba_gspn): ... here.
	(gspn_interface::automaton): Implement it.
	* iface/gspn/eesrg.hh (gspn_eesrg_interface::gspn_eesrg_interface):
	Take dict and env arguments.
	(gspn_eesrg_interface::automaton): New method.
	(tgba_gspn_eesrg): Move all the declaration ...
	* iface/gspn/gspn.cc (tgba_gspn_eesrg): ... here.
	(gspn_eesrg_interface::automaton): Implement it.
	* iface/gspn/dottygspn.cc, iface/gspn/dottyeesrg.cc,
	iface/gspn/ltlgspn.cc: Adjust.

752
753
754
755
756
2004-01-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/ltlvisit/tostring.cc: Fix output of F0, F1, G0, G1, X0, and X1.
	* src/ltltest/tostring.test: Test these.

757
758
2004-01-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

759
760
761
762
763
764
765
766
767
768
	* src/tgba/tgbaexplicit.cc (tgba_explicit::get_acceptance_condition):
	Do not treat true and false specially.  Otherwise it breaks
	translation of F(false).
	* src/tgbatest/explprod.test, src/tgbatest/tripprod.test: Do not
	use true as acceptance condition.

	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor): Use Acc[b] as
	acceptance condition for Fb, not Acc[Fb].

	After this change, degeneralized automata are 40% smaller
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
	in LBTT's statistics.

	* src/tgba/tgbatba.cc (state_tba_proxy): Store an iterator,
	pointing somewhere into the acceptance conditions list, instead of
	an acceptance condition.
	(state_tba_proxy::acceptance_iterator): New method.
	(tgba_tba_proxy_succ_iterator): Adjust to use iterators too.
	(tgba_tba_proxy_succ_iterator::current_state): If the current
	transition is in several consecutive acceptance steps after the
	expected one, advance many steps at once.
	(tgba_tba_proxy::tgba_tba_proxy): Build the acceptance cycle
	as a list, not a map.
	(tgba_tba_proxy::get_init_state, tgba_tba_proxy::succ_iter):
	Adjust.
	* src/tgba/tgbatba.hh (tgba_tba_proxy::acc_cycle_): Declare as
	a list, not a map.

786
787
2004-01-26  Alexandre Duret-Lutz  <adl@src.lip6.fr>

788
789
790
791
792
	* src/tgbaalgos/magic.cc (magic_search::~magic_search): Release
	all iterators on the stack.
	(magic_search::check): Release iterators that are popped off the
	stack.

793
794
	* src/tgbatest/explpro2.test: Fix reordering regex.

795
796
	* src/tgbatest/defs.in (run): Use libtool --mode=execute.

797
798
2004-01-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

799
800
801
802
803
804
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Merge transitions
	with same destination and acceptance conditions directly, without
	calling a->merge_transition().  If one transitions goes to "True",
	subtract its conditions from all other transitions; this optimizes
	a U b.

805
806
807
808
809
	* src/ltlast/refformula.hh (ref_formula::ref_count_): New method.
	* src/ltlast/refformula.cc (ref_formula::ref_count_): New method.
	* src/ltlast/atomic_prop.hh (atomic_prop::dump_instance): New method.
	* src/ltlast/atomic_prop.cc (atomic_prop::dump_instance): New method.

810
811
	* src/tgbaalgos/ltl2tgba_fm.cc: Typos in comments.

812
813
2004-01-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

814
815
	* configure.ac, NEWS: Bump version to 0.0o.

816
817
818
	* configure.ac: Bump version to 0.0n.
	* NEWS: Update.

819
820
821
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check,
	emptiness_check::check2): Document them.

822
823
824
825
2004-01-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* iface/gspn/ltlgspn.cc (main): Typo, use MIN_ARG.

826
827
2004-01-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

828
829
830
	* iface/gspn/dcswaveeltl.test, iface/gspn/udcsefm.test,
	iface/gspn/udcseltl.test: Exercize -e2.

831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check2):
	New function, variant of emptiness_check::check().
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check2):
	Likewise.
	* src/tgbatest/emptchk.test, src/tgbatest/emptchke.test: Exercize -e2.
	* src/tgbatest/ltl2tgba.cc: Support -e2, for emptiness_check::check2().
	* iface/gspn/Makefile.am [WITH_GSPN_EESRG] (check_PROGRAMS):
	Compile ltlgspn-eesrg instead of ltleesrg.
	(ltleesrg_SOURCES, ltleesrg_LDADD): Replace by...
	(ltlgspn_eesrg_SOURCES, ltlgspn_eesrg_LDADD, LIBGSPNESRG_LDFLAGS):
	... these.
	* iface/gspn/ltleesrg.cc: Delete.
	* iface/gspn/ltlgspn.cc [EESRG]: Support EESRG conditionally.
	Support -e2.

846
847
	* src/tgbaalgos/ltl2tgba_lacim.cc: Typo in comment.

848
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check): Typos
849
850
	in comments.

851

852
853
854
855
856
857
858
859
	* m4/gspnlib.m4 (AX_CHECK_GSPNLIB): Do not warn about a missing
	library for eesrg.  Define the WITH_GSPN_EESRG conditional.
	* iface/gspn/Makefile.am (gspn_HEADERS, check_PROGRAMS): Add the
	eesrg items in condition WITH_GSPN_EESRG.
	(libspotgspneesrg_la_LIBADD, libspotgspneesrg_la_CPPFLAGS)
	(libspotgspneesrg_la_SOURCES): Define only in condition
	WITH_GSPN_EESRG.

860
861
862
863
864
865
866
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_stats):
	New function.
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::print_stats):
	Likewise.
	* iface/gspn/ltlgspn.cc (main) <Couvreur>: Call print_stats().
	* iface/gspn/ltleesrg.cc (main): Likewise.

867
868
	* iface/gspn/ltlgspn.cc: Add option -P.

869
870
871
872
873
874
875
876
877
878
879
880
2004-01-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	Run valgrind in test cases.
	* src/tgbatest/defs.in (VALGRIND, run): Define.
	* src/tgbatest/bddprod.test, src/tgbatest/dupexp.test,
	src/tgbatest/emptchk.test, src/tgbatest/emptchke.test,
	src/tgbatest/explicit.test, src/tgbatest/explpro2.test,
	src/tgbatest/explpro3.test, src/tgbatest/explprod.test,
	src/tgbatest/ltl2tgba.test, src/tgbatest/ltlprod.test,
	src/tgbatest/mixprod.test, src/tgbatest/readsave.test,
	src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test: Use run().

881
882
2004-01-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
	* iface/gspn/eesrg.cc (format_state): Do not rewrite \n's,
	just strip the last one.  Escaping must be done at output.
	* iface/gspn/gspm.cc (format_state): Likewise.
	* src/misc/escape.hh, src/misc/escape.cc: New files.
	* src/misc/Makefile.am: Add them.
	* src/tgba/bddprint.cc (bdd_format_accset): New function.
	* src/tgba/bddprint.hh (bdd_format_accset): New function.
	* src/tgbaalgos/dotty.cc (dotty_bfs::process_state):
	Escape the state name using escape_str().
	(dotty_bfs::process_link): Escape conditions and acceptance
	conditions using escape_str().
	* src/tgbaalgos/save.cc (save_bfs::start): Call print_acc().
	(save_bfs::print_acc): New function extracted from save_bfs::start().
	Escape each acceptance condition.
	(save_bfs::process_state): Use escape_str() and print_acc()

899
900
901
902
903
904
905
906
	* src/ltlvisit/tostring.cc
	(to_string_visitor::visit(const atomic_prop*)): Quote propositions
	that start with F, G, or X.
	* src/ltltest/tostring.test: Test quoted propositions.
	* src/tgbaalgos/save.cc (save_bfs::process_state): Escape " and \
	characters in formulae.
	* src/tgbatest/readsave.test: Test for this.

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

909
910
911
912
	* iface/gspn/eesrg.cc (tgba_gspn_eesrg::all_acceptance_conditions,
	tgba_gspn_eesrg::neg_acceptance_conditions): Forward to
	data_->operand.

913
914
915
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
	Do not skip this computation if from == to but the period is empty.

916
917
918
	* iface/gspn/eesrg.cc (state_gspn_eesrg::clone): Clone the right
	state.

919
920
921
	* iface/gspn/ltleesrg.cc: Emptinesscheck the full product, not
	the control automaton.

922
923
924
	* iface/gspn/eesrg.cc (tgba_gspn_eesrg::project_state): New method.
	* iface/gspn/eesrg.hh: Likewise.

925
926
2004-01-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

927
928
929
930
931
932
	* src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/powerset.cc: New file.
	* src/tgbatest/Makefile.am: Construct powerset and expldot from
	powerset.cc.

933
934
935
936
	* src/tgbaalgos/reachiter.cc (tgba_reachable_iterator::run)
	Reuse s->second to avoid a hash lookup.
	* src/tgbaalgos/save.cc (save_bfs::process_state): Delete dest.

937
938
939
940
941
	* src/ltlparse/Makefile.am ($(FROM_LTLPARSE_YY_MAIN)):
	Use $(FROM_LTLPARSE_YY_MAIN), not $@, because $@ can contains
	VPATH and we do not want Bison to see absolute paths.
	* src/tgbaparse/Makefile.am ($(FROM_TGBAPARSE_YY_MAIN)): Likewise.

942
943
944
945
946
	* src/ltltest/parseerr.test: Adjust.
	* src/ltlparse/ltlparse.yy: Simplify error handling now that Bison
	will call destructors.  Give each operator a full name, so that
	Bison uses it in error messages.

947
948
2003-12-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

949
950
951
952
	* iface/gspn/ltleesrg.cc: New file.
	* iface/gspn/Makefile.am (check_PROGRAMS): Add ltleesrg.
	(ltleesrg_LDADD, ltleesrg_SOURCES): New variables.

953
	* src/ltltest/defs.in (run): Rerun valgrind with --leak-check=yes.
954
955
	* src/ltlparse/ltlparse.yy: Add `%destructor's.

956
957
2003-12-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

958
959
960
961
962
963
964
965
966
967
968
	* src/ltltest/defs.in (run): New function, run valgrind.
	* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
	src/ltltest/nenoform.test, src/ltltest/parse.test,
	src/ltltest/parseerr.test, src/ltltest/tostring.test,
	src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test: Use run().
	* Makefile.am (EXTRA_DIST): Don't list the m4/*.m4 files,
	Automake 1.8 find them automatically.
	* configure.ac: Require Automake 1.8, in gnits mode, and check
	for valgrind.
	* THANKS: New empty file.

969
970
971
972
973
	* doc/Doxyfile.in: Upgrade to Doxygen 1.3.5.  Build
	documentation for iface/.
	* dox/mainpage.dox: Fix reference to ltl_to_tgba.
	* src/ltlenv/environment.hh: Typo.

974
975
976
977
978
979
980
981
2003-12-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh
	(tgba_explicit::merge_transitions): New method.
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Factorize all
	variables (not just Next and A) when computing prime implicants,
	and then call merge_transitions().

982
983
2003-12-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

984
985
	* configure.ac: Bump version to 0.0m.

986
987
988
989
	* configure.ac, NEWS: Bump version to 0.0l.
	* doc/Makefile.am ($(srcdir)/spotref.pdf): Do not assume spot.latex is
	in the srcdir.

990
991
2003-11-28  Alexandre Duret-Lutz  <adl@src.lip6.fr>

992
993
994
995
996
997
998
	* src/tgbaparse/tgbaparse.yy (cond_list): Simplify into...
	(condition): ... this.  We now accept only one condition, which
	is a formula.
	* src/tgba/tgbaexplicit.hh (tgba_explicit::add_neg_condition,
	tgba_explicit::get_condition): Remove, unused.
	* src/tgba/tgbaexplicit.cc: Likewise.

999
1000
	* iface/gspn/eesrg.cc, iface/gspn/eesrg.hh, iface/gspn/gspn.cc,
	iface/gspn/gspn.hh, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
For faster browsing, not all history is shown. View entire blame