ChangeLog 148 KB
Newer Older
1
2
2004-08-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

3
4
5
6
7
8
9
	* src/ltlast/allnodes.hh, src/ltlast/atomic_prop.hh,
	src/ltlast/binop.hh, src/ltlast/constant.hh,
	src/ltlast/formula.hh, src/ltlast/multop.hh,
	src/ltlast/predecl.hh, src/ltlast/refformula.hh,
	src/ltlast/unop.hh, src/ltlast/visitor.hh: Use \file to introduce
	each file.

10
11
12
	* doc/Doxyfile.in (STRIP_FROM_INC_PATH): Define, so that the
	`#include' references are correct.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
13
14
	* README: Update.

15
16
	* m4/gccoptim.m4: Compute optimization flags for CXX too.

17
18
	* m4/ndebug.m4: Update CPPFLAGS, not CFLAGS.

19
20
21
22
	* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Document all
	parameters.
	* src/tgbaalgos/ltl2tgba_lacim.hh (ltl_to_tgba_lacim): Likewise.

23
24
25
26
27
28
2004-08-07  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* configure.ac: Call AC_PROG_CC and AM_PROG_CC_C_O.
	* wrap/python/Makefile.am (_buddy_la_LDFLAGS): Move libspotswigpy.la ...
	(_buddy_la_LIBADD): ... here.

29
30
31
32
2004-08-02  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* lbtt/: Merge lbtt 1.1.2.

33
34
35
36
2004-07-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* lbtt/: Merge lbtt 1.1.1.

37
38
39
40
2004-07-26  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* doc/Doxyfile.in: Update for Doxygen 1.3.8.

41
42
43
44
45
2004-07-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* configure.ac: Call AC_LIBTOOL_WIN32_DLL
	* src/Makefile.am (libspot_la_LDFLAGS): Add -no-undefined.

46
47
2004-07-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

48
49
50
	* src/tgbatest/explicit.test: Do not use `-i', it's not needed
	and it is wrong to put it after `-e'.  Caught by Denis too.

51
52
53
	* src/ltltest/reduc.test: Use `test a = b' not `test a == b'.
	Reported by <Denis.Poitrenaud@lip6.fr> (failure on Cygwin).

54
55
56
57
58
59
2004-07-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/defs.in (VALGRIND): Specify --tool=memcheck for
	compatibility with valgrind 2.1.x.
	* src/ltltest/defs.in (VALGRIND): Likewise.

60
61
2004-07-16  Alexandre Duret-Lutz  <adl@src.lip6.fr>

62
63
64
	* m4/gccwarn.m4: Do not check nor use -Wstrict-prototypes.
	g++-3.4 complains it makes no sense in C++.

65
66
	* iface/gspn/ssp.cc: Typos.

67
68
69
70
	* iface/gspn/gspn.cc (tgba_succ_iterator_gspn::tgba_succ_iterator_gspn):
	Set size_ to 1 when stuttering is needed, so that done() does not
	return true immediately.

71
72
73
74
2004-07-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

75
76
2004-07-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

77
78
79
	* src/tgba/state.hh (state_ptr_equal, state_ptr_hash): Fix Doxygen
	example.

80
81
82
83
	* src/tgbaalgos/reductgba_sim.hh (parity_game_graph_delayed,
	reduc_tgba_sim): Fix warnings about Doxygen comment.
	* src/ltlvisit/reduce.hh (reduce): Likewise.

84
85
86
87
	* doc/footer.html: New file, link to RefDocComments on the wiki.
	* doc/Doxyfile.in (HTML_FOOTER): Use footer.html.
	* doc/Makefile.am (EXTRA_DIST): Add footer.html.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
88
89
	* THANKS: Fill in.

90
91
	* src/tgbatest/ltl2baw.pl: Do not use -T anymore.  Fix comments.

92
93
2004-07-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>

94
95
96
97
98
99
100
101
102
103
104
105
	lbtt 1.1.0 supports TGBAs, use that and remove old workarounds.
	* src/tgbaalgos/lbtt.cc (state_acc_pair, state_acc_pair_equal,
	state_acc_pair_hash, acp_seen_map, todo_set, seen_map, fill_todo
	lbtt_reachable): Remove.
	(nonacceptant_lbtt_bfs): Rename as ...
	(lbtt_bfs): ... this, and adjust to output acceptance conditions
	on transitions.
	(nonacceptant_lbtt_reachable): Rename as ...
	(lbtt_reachable): ... this.
	* src/tgbaalgos/lbtt.hh (nonacceptant_lbtt_reachable): Delete.
	* src/tgbatest/ltl2tgba.cc: Suppress option "-T".

106
107
108
109
110
	Patch from Heikki Tauriainen <heikki.tauriainen@hut.fi>.
	* src/tgbaalgos/gtec/ce.cc (counter_example::counter_example): Do
	not parenthesize the type after the new operator (g++ 3.4 complains).
	* src/tgbaalgos/dupexp.cc (dupexp_iter::process_state,
	dupexp_iter::declare_state): Use this->automata_instead of
Alexandre Duret-Lutz's avatar
typos    
Alexandre Duret-Lutz committed
111
112
	automata_.  Local protected member automata_ inherited from
	template base class must be prefixed or g++ 3.4 will not look it
113
114
	up (conforming to 14.6.2.3).

115
116
2004-07-07  Alexandre Duret-Lutz  <adl@src.lip6.fr>

117
118
119
120
	* lbtt/: Merge lbtt 1.1.0.
	* src/tgbatest/spotlbtt.test: Adjust config file syntax to
	please lbtt 1.1.0.

121
122
123
124
125
	* src/tgbaalgos/gtec/gtec.hh (emptiness_check_shy::find_state): Add
	comments.
	* iface/gspn/ssp.cc (emptiness_check_shy_ssp::find_state): Likewise.
	Soheib and I had a hard time figuring why we did this...

126
127
128
129
130
131
132
133
134
2004-07-02  Thomas Martinez  <martinez@src.lip6.fr>

	* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
	src/tgbaalgos/reductgba_sim.cc,	src/tgbaalgos/reductgba_sim.hh,
	src/tgbaalgos/reductgba_sim_del.cc: Remove some comments.

	* src/tgbatest/ltl2tgba.cc, src/tgbatest/reductgba.cc: Adjust ...
	* src/tgbatest/spotlbtt.test: More test (delayed simulation)

135
136
2004-06-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

137
138
	* configure.ac, NEWS: Bump version to 0.0w.

139
140
	* configure.ac, NEWS: Bump version to 0.0v.

martinez's avatar
martinez committed
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
2004-06-28  Thomas Martinez  <martinez@src.lip6.fr>

	* src/tgbatest/reduccmp.test: Bug.

	* src/tgbatest/reductgba.test: More Test.

	* src/tgbatest/ltl2tgba.cc: Adjust ...
	* src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/reductgba_sim.hh,
	src/tgbaalgos/reductgba_sim.cc: try to optimize.

	* src/tgba/tgbareduc.hh, src/tgba/tgbareduc.cc: Scc reduction
	and we remove some acceptance condition in scc which are not accepting.
	* src/ltlvisit/syntimpl.cc : Some case wasn't detect.
	* src/ltlvisit/basicreduce.cc: Case FGa || FGb = F(Ga | Gb) added.
	* src/ltltest/syntimpl.test: More Test.
	* src/ltltest/syntimpl.cc: Put the formula in negative normal form.

158
159
160
161
2004-06-28  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* buddy/: Merge buddy-2-3.

162
163
164
165
166
2004-06-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbatest/ltl2tgba.cc (main): Degeneralize before
	the simulations.

167
168
169
170
171
172
173
174
2004-06-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/ltlvisit/tostring.cc (is_bare_word): New function.
	(to_string_visitor::visitor(const atomic_prop*)): Use is_bare_word
	to better check which atomic proposition need to be quoted.
	* src/ltlparse/ltlscan.ll: Do not allow identifiers starting with F_
	or G_.
	* src/ltltest/equals.test, src/ltltest/tostring.test: More tests.
175

176
177
178
179
	* src/tgba/tgbatba.cc (tgba_tba_proxy::format_state): Use
	bdd_format_accset to print the acceptance condition part of the state.
	That produces more readable output.

180
	* wrap/python/cgi/ltl2tgba.in: Add "Formula Simplications" options.
181
	* wrap/python/spot.i: Wrap src/ltlvisit/reduce.hh.
182

183
184
185
186
187
188
189
190
191
	* src/ltlvisit/simpfg.cc, src/ltlvisit/simpfg.hh: New files,
	extracted from ...
	* src/ltlvisit/lunabbrev.cc: ... this one, which now work as documented
	again.
	* src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc: Adjust to call
	simplify_f_g() in addition to unabbreviate_logic().
	* src/ltlvisit/Makefile.am (ltlvisit_HEADERS, libltlvisit_la_SOURCES):
	Add simpfg.cc and simpfg.hh.

192
193
194
195
196
197
	* src/ltlvisit/reducform.hh, src/ltlvisit/reducform.cc: Rename to ...
	* src/ltlvisit/reduce.hh, src/ltlvisit/reduce.cc: ... this, to match
	the function name.
	* ltltest/equals.cc, ltltest/reduc.cc, ltlvisit/Makefile.am,
	tgbatest/ltl2tgba.cc, tgbatest/reductgba.cc: Adjust filenames.

198
199
200
	* src/ltlvisit/basicreduce.cc (basic_reduce_visitor::visit(binop*)):
	Factorize.

201
202
203
204
205
206
207
208
	* src/ltlvisit/basicreduce.hh: New file, extracted from ...
	* src/ltlvisit/reducform.hh: ... here.
	* src/ltlvisit/basereduc.cc: Rename as ...
	* src/ltlvisit/basicreduce.cc: ... this, to match the function name.
	* src/ltlvisit/Makefile.am (ltlvisit_HEADERS, libltlvisit_la_SOURCES):
	Adjust filenames.
	* src/ltlvisit/reducform.cc: Adjust includes.

209
210
211
	* src/ltlvisit/lunabbrev.hh: Revert superfluous change from
	2004-05-10.

212
213
214
215
216
217
218
2004-06-22  Thomas Martinez  <martinez@src.lip6.fr>

	* src/ltlvisit/reducform.cc, src/tgba/tgbareduc.cc,
	src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh
	src/tgbaalgos/reductgba_sim_del.cc, src/tgbatest/reduccmp.test,
	src/tgbatest/reductgba.cc: 80 columns and style.

219
220
221
222
2004-06-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/sanity/style.test: Typo.

223
224
225
226
227
228
229
230
231
2004-06-22  Thomas Martinez  <martinez@src.lip6.fr>

	* src/tgbatest/ltl2tgba.cc, src/tgbaalgos/reductgba_sim_del.cc,
	src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/reductgba_sim.cc:
	bug in delayed simulation.

	* src/tgbatest/reduccmp.test, src/tgbatest/reductgba.test,
	src/tgba/tgbareduc.cc: bug in scc reduction.

232
233
234
235
236
237
2004-06-21  Thomas Martinez  <martinez@src.lip6.fr>

	* src/tgbatest/reductgba.test, src/tgba/tgbareduc.cc:
	There is bug in reduction with scc.
	* src/tgbatest/reduccmp.test: More test.

238
239
2004-06-17  Thomas Martinez  <martinez@src.lip6.fr>

240
	* src/tgbatest/reductgba.test: Wrong test are removed.
241

242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
2004-06-17  Thomas Martinez  <martinez@src.lip6.fr>

	* src/tgbatest/spotlbtt.test: We don't check the post-reduction
	with scc and delayed simulation.

	* src/tgbatest/ltl2tgba.cc: Adjust parameters.
	* src/tgbatest/reductgba.cc, src/tgbatest/Makefile.am: More Test.
	* src/tgbaalgos/reductgba_sim_del.cc: Not finish, lot of bugs.
	* src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/reductgba_sim.cc:
	Remove some useless comments.
	* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh: Bug in SCC.

	* src/ltlvisit/reducform.cc: Correct some bug for multop.
	* src/ltltest/reduc.cc: Thinko
	* src/ltltest/equals.cc: Reduction compare

258
259
260
261
262
2004-06-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* iface/gspn/ssp.cc (emptiness_check_shy_ssp::find_state): Free s.
	This fixes a memory leak observed by Soheib Baarir.

263
264
265
266
267
2004-06-16  Thomas Martinez  <martinez@src.lip6.fr>

	* src/tgbatest/reductgba.cc, src/tgbatest/reductgba.test: Test for
	reduction of tgba.

268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
2004-06-15  Thomas Martinez  <martinez@src.lip6.fr>

	* src/tgbatest/ltl2tgba.cc: Add some option for the reduction of
	automata.
	* src/tgbatest/spotlbtt.test, src/tgbatest/Makefile.am: Add some
	test for reduction of automata.
	* src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/reductgba_sim.cc,
	src/tgbaalgos/reductgba_sim.hh: Compute some simulation relation
	to reduce a tgba.
	* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh: A implementation
	of tgba for the reduction.
	* src/tgbaalgos/Makefile.am, src/tgba/Makefile.am:
	Add the reduction of automata.
	* src/ltlvisit/syntimpl.cc, src/ltlvisit/basereduc.cc:
	Lot of mistake are corrected.
	* src/ltlvisit/syntimpl.hh, src/ltlvisit/reducform.cc,
	src/ltlvisit/reducform.hh, src/ltltest/reduc.cc: Adjust.
	* src/ltltest/equals.cc, src/ltltest/reduccmp.test,
	src/ltltest/Makefile.am: Add a test for reduction.

288
289
2004-06-02  Alexandre Duret-Lutz  <adl@src.lip6.fr>

290
291
292
293
294
295
296
297
298
299
300
	* iface/gspn/common.cc, iface/gspn/common.hh: Remove the
	class gspn_environment, and move it to ...
	* src/ltlenv/declenv.cc, src/ltlenv/declenv.hh: .. this new file
	as class declarative_environment.
	* src/ltlenv/Makefile.am (ltlenv_HEADERS): Add declenv.hh.
	(libltlenv_la_SOURCES): Add declenv.cc.
	* iface/gspn/dottygspn.cc, iface/gspn/dottyssp.cc,
	iface/gspn/gspn.cc, iface/gspn/gspn.hh, iface/gspn/ltlgspn.cc,
	iface/gspn/ssp.cc, iface/gspn/ssp.hh: Adjust references
	to declarative_environment.

301
302
303
304
305
306
	* HACKING, src/sanity/style.test: NULL is not portable, prohibit it.
	* iface/gspn/ssp.cc, src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
	src/ltlvisit/basereduc.cc, src/ltlvisit/reducform.cc,
	src/ltlvisit/syntimpl.cc: Use 0 instead of NULL.

2004-06-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>
307
308
309
310
311
312
313
314
315
316
317
318

	* src/ltltest/inf.cc, src/ltltest/inf.test: Rename as ...
	* src/ltltest/syntimpl.cc, src/ltltest/syntimpl.test: ... these.
	* src/ltltest/Makefile.am: Adjust.
	* src/ltlvisit/forminf.cc: Rename as...
	* src/ltlvisit/syntimpl.cc: ... this.
	* src/ltlvisit/syntimpl.hh: New file with definitions extracted
	from ...
	* src/ltlvisit/reducform.hh: ... this one.
	* src/ltlvisit/Makefile.am, src/ltlvisit/reducform.cc: Adjust.

2004-05-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334

	* src/ltlvisit/forminf.cc (form_eventual_universal_visitor,
	inf_form_right_recurse_visitor, inf_form_left_recurse_visitor): Rename
	as ...
	(eventual_universal_visitor, inf_right_recurse_visitor,
	inf_left_recurse_visitor): ... these.
	(is_GF, is_FG): Move ...
	* src/ltlvisit/basereduc.cc (is_GF, is_FG): ... here, since they
	are only used here.
	(basic_reduce_form, basic_reduce_form_visitor): Rename as ...
	(basic_reduce, basic_reduce_visitor): ... these.
	* src/ltlvisit/reducform.cc (reduce_form_visitor): Rename as ...
	(reduce_visitor): ... this.
	* src/ltltest/inf.cc: Adjust calls.
	* src/sanity/style.test: Improve missing-space after coma detection.

335
336
2004-05-26  Alexandre Duret-Lutz  <adl@src.lip6.fr>

337
338
339
	* src/ltlvisit/reducform.cc (reduce_form_visitor::visit(constant)):
	Simplify.

340
341
342
343
344
345
346
	* src/ltlvisit/basereduc.cc, src/ltlvisit/reducform.cc: Use
	dynamic_cast instead of node_type_form_visitor, this is usually
	smaller.
	* src/ltlvisit/reducform.hh,
	src/ltlvisit/forminf.cc (node_type_form_visitor): Delete.
	* src/sanity/style.test: Two more checks.

347
348
2004-05-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

349
350
351
352
353
354
355
356
	* src/ltlvisit/formlength.cc: Rename as ...
	* src/ltlvisit/length.cc: ... this.
	* src/ltlvisit/length.hh: New file, extracted from ...
	* src/ltlvisit/reducform.hh: ... here.
	* src/ltlvisit/Makefile.am (ltlvisit_HEADERS): Add length.hh.
	(libltlvisit_la_SOURCES): Rename formlength.cc as length.cc.
	* src/ltltest/reduc.cc: Include length.hh.

357
358
359
360
361
362
363
364
	* src/ltlvisit/formlength.cc (length_form_vistor): Rename as ..
	(length_visitor): ... this.
	(form_length): Rename as ...
	(length): ... this.
	* src/ltlvisit/reducform.hh (form_length): Rename as ...
	(length): ... this.
	* src/ltltest/reduc.cc: Adjust.

365
366
367
	* src/ltlvisit/basereduc.cc, src/ltlvisit/formlength.cc: Remove
	useless includes.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
368
369
	* AUTHORS: Update.

370
371
372
	* src/ltlvisit/reducform.hh: Update Doxygen comments for
	previous change.

373
374
375
376
377
378
379
380
	* src/ltlvisit/reducform.hh (option): Rename as ...
	(reduce_options): ... this, and use it as a bit field so
	option can be combined easily.
	(reduce): Adjust argument.
	(reduce_form): Remove, not needed anymore.
	* src/ltlvisit/reducform.cc, src/ltltest/reduc.cc,
	src/tgbatest/ltl2tgba.cc: Adjust.

381
382
383
384
	* src/sanity/style.test: Catch {.*{ and }.*}.
	* src/sanity/80columns.test: Untabify files.
	* iface/gspn/ltlgspn.cc, src/ltlvisit/basereduc.cc: Fix long lines.

385
386
387
	* src/ltlvisit/basereduc.cc, src/ltlvisit/reducform.cc,
	src/ltlvisit/forminf.cc: Remove superfluous spot::ltl:: prefixes.

388
389
	* wrap/python/cgi/ltl2tgba.in: Typos.

390
391
2004-05-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

392
393
394
	* src/sanity/style.test: Catch `;'-not-followed-by-space.
	* src/ltlvisit/reducform.cc, src/ltlvisit/forminf.cc: Fix style.

395
396
	* src/ltlvisit/reducform.hh: Fix some Doxygen comments.

397
398
	* src/tgbatest/ltl2tgba.cc (syntax): Keep options sorted.

399
400
401
	* src/sanity/Makefile.am (EXTRA_DIST): Distribute 80columns.test
	and style.test.

402
	* src/ltltest/Makefile.am (EXTRA_DIST): Distribute formulae.txt.
403
	* src/ltltest/formulae.txt: New file (2200 LTL formulea generated
404
405
406
407
	by Wring).
	* src/ltltest/formules.ltl: Delete.
	* src/reduc.test: Read formulae.txt.

408
409
410
411
412
413
414
415
416
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.

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

419
420
421
422
423
424
425
426
427
428
429
	* 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.

430
431
432
	* src/sanity/style.test: Check the iface/ tree too.
	* iface/gspn/gspn.cc, iface/gspn/ssp.cc: Fix style.

433
434
435
436
437
438
	* 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.

439
440
441
442
443
444
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.

445
446
2004-05-17  Thomas Martinez  <martinez@src.lip6.fr>

447
448
	* src/ltlvisit/basereduc.cc, src/ltltest/inf.cc (main): Style.

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

455
456
2004-05-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>

457
458
459
	* 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.

460
461
462
463
464
465
466
	* 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.

467
468
	* src/ltlvisit/formlength.cc: Fix style to please sanity checks.

469
470
	* src/ltlvisit/lunabbrev.cc: Fix style to please sanity checks.

471
472
473
	* src/tgbaalgos/neverclaim.cc: Fix them.
	* sanity/style.test: Diagnose semicolons with leading spaces.

474
475
476
	* src/ltlvisit/forminf.cc: Fix style to please sanity checks.
	Also avoid node_type_form_visitor where a dynamic_cast is done.

477
478
2004-05-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

479
480
	* wrap/python/buddy.i: Preliminary bindings for FDD and BVEC.

481
482
483
	* ltltest/inf.cc, ltltest/reduc.cc, ltlvisit/reducform.cc: Fix style.
	* sanity/style.test: More tests.

484
485
486
	* src/tgbatest/ltl2tgba.cc (main): Fix style.
	* HACKING: Mention `else if'.

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

491
492
2004-05-14  Thomas Martinez  <martinez@src.lip6.fr>

493
494
	* src/tgbatest/ltl2tgba.cc (main): Thinko.

495
496
497
498
499
500
	* 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.

501
502
2004-05-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

503
504
505
506
507
508
509
510
511
	* 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.

512
513
514
515
	* 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.

516
517
518
	* src/ltltest/reduc.test: Use ./defs and clean result.data.
	* src/ltltest/Makefile.am (CLEANFILES): Clean result.data.

519
520
521
522
523
524
525
526
527
528
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.

529
530
2004-05-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

531
532
	* src/ltltest/reduc.test: Typo.

533
534
535
536
537
538
539
540
541
542
	* 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".

543
544
2004-05-11  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

547
548
	* src/ltltest/reduc.test: POSIXify.

549
550
2004-05-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

561
562
563
564
565
	* 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.

566
567
568
569
570
571
572
573
574
575
	* 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.

576
577
2004-05-10  Thomas MARTINEZ  <martinez@abacus.lip6.fr>

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

580
581
582
583
584
585
586
587
588
589
590
591
	* 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.

592
593
2004-05-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

594
595
596
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Refine
	fair_loop_approximation when branching postponement is not used.

597
598
599
600
601
602
	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.

603
604
605
606
607
608
609
610
611
612
	* 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.

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

624
625
2004-05-04  Alexandre Duret-Lutz  <adl@src.lip6.fr>

626
627
628
	* src/tgbaalgos/ltl2tgba_fm.cc: Add a superfluous return to pacify
	some GCC version.  Report from Denis Poitrenaud.

629
630
	* wrap/python/cgi/ltl2tgba.in: Fix output HTML.

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

640
641
2004-04-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

642
643
	* configure.ac, NEWS: Bump version to 0.0u.

644
645
646
647
	* configure.ac, NEWS: Bump version to 0.0t.
	* HACKING: Update tools requirements.
	* src/sanity/Makefile.am (EXTRA_DIST): Distribute includes.test.

648
649
650
651
	* src/sanity/Makefile.am, src/sanity/includes.test: New files.
	* src/Makefile.am (SUBDIRS): Add sanity.
	* configure.ac: Output src/sanity/Makefile.in.

652
653
654
655
656
	* src/tgbatest/Makefile.am (check_PROGRAMS): Move ltl2tgba ...
	(noinst_PROGRAMS): ... here.
	* iface/gspn/Makefile.am (check_PROGRAMS): Rename as ...
	(noinst_PROGRAMS): ... this.

657
658
2004-04-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

659
	* src/tgbatest/explicit.test: Reorder bdd variables in output.
660
661
	Report from Denis Poitrenaud.

662
663
	* wrap/python/cgi/ltl2tgba.in: Print degeneralized statistics
	when show_never_claim.  Change the title to LTL-to-TGBA.
664
	Suggested by Denis Poitrenaud.
665

666
667
2004-04-21  Alexandre Duret-Lutz  <adl@src.lip6.fr>

668
669
670
	* wrap/python/cgi/ltl2tgba.in (print_footer): Make ltl2tgba.py's
	version a separate variable.

671
672
673
	* wrap/python/cgi/ltl2tgba.in: Pass the formula to
	never_claim_reachable, and cgi.escape its output.
	Lighten the color a bit.
674

675
676
677
	* src/tgbaalgos/gtec/ce.hh, src/misc/freelist.hh,
	src/tgba/bddprint.hh: Fix Doxygen comments.

678
679
680
681
682
683
684
	* 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.

685
686
687
	* wrap/python/cgi/ltl2tgba.in: Use darker color and introduce
	the new variable dot_bgcolor.

688
689
690
	* wrap/python/cgi/ltl2tgba.in (add_options): Revamp options output
	using this new function.

691
692
693
	* wrap/python/spot.i: Process tgbaalgos/neverclaim.hh.
	* wrap/python/cgi/ltl2tgba.in: Display the never claim on demand.

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

706
707
2004-04-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>

708
709
710
711
	* src/ltltest/defs.in, src/tgbatest/defs.in: Correctly set exitcode
	when valgrind is not used.
	Reported by Denis Poitrenaud.

712
713
714
715
716
	* src/tgba/tgba.hh (tgba::succ_iter): Doco.
	* src/tgba/tgbatba.hh (tgba_tba_proxy::state_is_accepting): Document
	it.
	Reported by Denis Poitrenaud.

717
2004-04-17  Alexandre Duret-Lutz  <adl@src.lip6.fr>
718

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

722
723
724
725
	* 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.

726
727
728
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
729
730
731
732
733
734
735
736
737
	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.

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


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

763
764
765
766
767
768
769
770
771
772
773
774
775
776
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.

777
778
779
780
781
782
783
784
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.

785
786
2004-04-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

787
788
789
790
791
792
793
794
795
796
797
798
799
	* 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.

800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
	* 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.

818
819
2004-04-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

820
	* src/tgbaalgos/emptinesscheck.hh (numbered_state_heap_const_iterator,
821
	numbered_state_heap, numbered_state_heap_hash_map): New classes.
822
	* src/tgbaalgos/emptinesscheck.cc
823
824
825
	(numbered_state_heap_hash_map_const_iterator): New class.
	(numbered_state_heap_hash_map): Implement it.

826
827
828
829
830
831
832
	* 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.

833
834
835
836
837
838
	* 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):
839
840
841
	Take an explicit_connected_component argument instead of a
	connected_component_set.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.
842

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

848
849
850
851
852
853
	* 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.

854
855
	* src/tgba/bdddict.hh (bdd_dict::annon_free_list): Hide from Swig.

856
857
858
859
860
861
	* 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.

862
863
864
	* wrap/python/Makefile.am ($(srcdir)/spot_wrap.cxx)
	($(srcdir)/buddy_wrap.cxx): Use -noruntime instead of -c.

865
866
867
868
869
	* src/tgbaalgo/semptinesscheck.hh (emptiness_check_status): New class,
	extracted from ...
	(emptiness_check): ... here.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.

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

876
877
878
879
880
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.

881
882
2004-03-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

896
897
898
899
900
901
902
	* 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.

903
904
2004-03-23  Alexandre DURET-LUTZ  <adl@src.lip6.fr>

905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
	* 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.

922
923
924
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::accepting_path)
	Fix handling of PATH when backtracking.  Report from Soheib Baarir.

925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
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;

941
942
943
944
2004-03-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

945
946
2004-03-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>

947
948
	* configure.ac, NEWS: Bump version to 0.0r.

949
950
951
952
	* 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.

953
954
2004-02-21  Alexandre Duret-Lutz  <adl@src.lip6.fr>

955
956
957
	* lbtt/src/Makefile.am (lbtt_translate_SOURCES): Fix leftover
	from 1.0.3 merge.

958
959
	* wrap/python/cgi/ltl2tgba.in: Process ltl2tgba.opt if it exists.

960
961
	* wrap/python/cgi/ltl2tgba.in: Color translators and their options.

962
963
2004-02-20  Alexandre Duret-Lutz  <adl@src.lip6.fr>

964
965
	* wrap/python/cgi/ltl2tgba.in: Present the options in a table.

966
967
968
969
	* 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.

970
971
972
973
	* 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.

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

978
979
2004-02-19  Alexandre Duret-Lutz  <adl@src.lip6.fr>

980
981
982
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Remove the
	cond_for_true optimization.  It is covered by exprop.

983
984
985
	* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::current_state):
	Fix reference to Oddoux's thesis.

986
987
2004-02-16  Alexandre Duret-Lutz  <adl@src.lip6.fr>

988
989
990
991
992
993
994
995
	* 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.

996
997
998
999
1000
	* 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.

1001
1002
	* lbtt/: Merge lbtt 1.0.3.

1003
1004
1005
1006
1007
2004-02-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
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.

1019
1020
2004-02-10  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1021
1022
1023
	* wrap/python/libpy.c: Update from Swig 1.3.21.
	* HACKING: Update versions.

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

1033
1034
2004-02-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1035
1036
	* src/ltlparse/ltlparse.yy: Typo.

1037
1038
1039
1040
1041
	* 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>
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055

	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.

1056
1057
2004-02-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1058
1059
	* src/tgbaalgos/lbtt.hh: Typos.

1060
1061
	* src/tgbatest/spotlbtt.test: Typo.

1062
1063
1064
1065
1066
1067
	* 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.

1068
1069
2004-02-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1070
1071
	* configure.ac, NEWS: Bump version to 0.0q.

1072
1073
	* configure.ac, NEWS: Bump version to 0.0p.

1074
1075
1076
1077
	* 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).

1078
1079
1080
2004-02-02  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1082
1083
1084
	* wrap/python/cgi/ltl2tgba.in: Import spot and redirect stderr
	to stdout early.

1085
1086
1087
	* wrap/python/cgi/ltl2tgba.in (print_stats): Compute and display
	the number of acceptance conditions.

1088
1089
1090
1091
1092
	* 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.

1093
1094
1095
1096
1097
	* 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.

1098
1099
1100
1101
1102
1103
	* 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.

1104
1105
1106
1107
	* wrap/python/cgi/ltl2tgba.in (render_dot): Render .png directly
	with dot, without using convert.
	* wrap/python/cgi/README: Do not mention convert.

1108
1109
1110
	* wrap/python/cgi/ltl2tgba.in (render_dot, render_automaton)
	(render_bdd): New functions, extracted from the rest of the code.

1111
1112
1113
1114
	* wrap/python/cgi/ltl2tgba.in (default_translator): Default
	to trans_fm.
	(translators): Show trans_fm before trans_lacim.

1115
1116
1117
1118
	* wrap/python/cgi/ltl2tgba.in (print_stats): New function.  Call
	it to display the size of the generalized and degeneralized
	automata.

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

1124
1125
1126
1127
1128
	* 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.

1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
	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.

1148
1149
1150
1151
1152
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.

1153
1154
2004-01-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
	* 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
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
	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.

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

1184
1185
1186
1187
1188
	* 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.

1189
1190
	* src/tgbatest/explpro2.test: Fix reordering regex.

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

1193
1194
2004-01-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1201
1202
1203
1204
1205
	* 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.

1206
1207
	* src/tgbaalgos/ltl2tgba_fm.cc: Typos in comments.

1208
1209
2004-01-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1210
1211
	* configure.ac, NEWS: Bump version to 0.0o.

1212
1213
1214
	* configure.ac: Bump version to 0.0n.
	* NEWS: Update.

1215
1216
1217
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check,
	emptiness_check::check2): Document them.

1218
1219
1220
1221
2004-01-12  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1222
1223
2004-01-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1224
1225
1226
	* iface/gspn/dcswaveeltl.test, iface/gspn/udcsefm.test,
	iface/gspn/udcseltl.test: Exercize -e2.

1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
	* 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.

1242
1243
	* src/tgbaalgos/ltl2tgba_lacim.cc: Typo in comment.

1244
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check): Typos
1245
1246
	in comments.

1247

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

1256
1257
1258
1259
1260
1261
1262
	* 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.

1263
1264
	* iface/gspn/ltlgspn.cc: Add option -P.

1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
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().

1277
1278
2004-01-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
	* 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()

1295
1296
1297
1298
1299
1300
1301
1302
	* 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.

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

1305
1306
1307
1308
	* iface/gspn/eesrg.cc (tgba_gspn_eesrg::all_acceptance_conditions,
	tgba_gspn_eesrg::neg_acceptance_conditions): Forward to
	data_->operand.

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

1312
1313
1314
	* iface/gspn/eesrg.cc (state_gspn_eesrg::clone): Clone the right
	state.

1315
1316
1317
	* iface/gspn/ltleesrg.cc: Emptinesscheck the full product, not
	the control automaton.

1318
1319
1320
	* iface/gspn/eesrg.cc (tgba_gspn_eesrg::project_state): New method.
	* iface/gspn/eesrg.hh: Likewise.

1321
1322
2004-01-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1329
1330
1331
1332
	* 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.

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

1338
1339
1340
1341
1342
	* 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.

1343
1344
2003-12-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1345
1346
1347
1348
	* iface/gspn/ltleesrg.cc: New file.
	* iface/gspn/Makefile.am (check_PROGRAMS): Add ltleesrg.
	(ltleesrg_LDADD, ltleesrg_SOURCES): New variables.

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

1352
1353
2003-12-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

1365
1366
1367
1368
1369
	* 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.

1370
1371
1372
1373
1374
1375
1376
1377
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().

1378
1379
2003-12-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1380
1381
	* configure.ac: Bump version to 0.0m.

1382
1383
1384
1385
	* configure.ac, NEWS: Bump version to 0.0l.
	* doc/Makefile.am ($(srcdir)/spotref.pdf): Do not assume spot.latex is
	in the srcdir.

1386
1387
2003-11-28  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1388
1389
1390
1391
1392
1393
1394
	* 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.

1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
	* iface/gspn/eesrg.cc, iface/gspn/eesrg.hh, iface/gspn/gspn.cc,
	iface/gspn/gspn.hh, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
	src/tgba/bddprint.hh, src/tgba/succiter.hh,
	src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
	src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
	src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
	src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbabddcoredata.cc,
	src/tgba/tgbabddcoredata.hh, src/tgba/tgbaexplicit.cc,
	src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.cc,
	src/tgba/tgbaproduct.hh, src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
	src/tgbaalgos/dotty.cc, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/emptinesscheck.cc, src/tgbaalgos/emptinesscheck.hh,
	src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
	src/tgbaalgos/save.cc, src/tgbatest/explicit.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbaparse/tgbaparse.yy,
	wrap/python/tests/ltl2tgba.py:
	Rewrite `accepting condition' as `acceptance condition'.
	The symbols which have been renamed are:
	tgba::all_accepting_conditions
	tgba::neg_accepting_conditions
	succ_iterator::current_accepting_conditions
	bdd_dict::register_accepting_variable
	bdd_dict::register_accepting_variables
	bdd_dict::is_registered_accepting_variable
	tgba_bdd_concrete_factory::declare_accepting_condition
	tgba_bdd_core_data::accepting_conditions
	tgba_bdd_core_data::all_accepting_conditions
	tgba_explicit::declare_accepting_condition
	tgba_explicit::complement_all_accepting_conditions
	tgba_explicit::has_accepting_condition
	tgba_explicit::get_accepting_condition
	tgba_explicit::add_accepting_condition
	tgba_explicit::all_accepting_conditions
	tgba_explicit::neg_accepting_conditions
	state_tba_proxy::acceptance_cond
	accepting_cond_splitter

1433
1434
2003-11-26  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1435
1436
1437
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor::visit) <G>:
	Optimize translation of GFy.

1438
1439
1440
1441
1442
1443
1444
	* src/tgba/bddprint.cc (print_accset_handler, bdd_print_accset): New
	functions.
	* src/tgba/bddprint.cc (bdd_print_accset): Declare it.
	* src/tgbaalgos/dotty.cc (dotty_bfs::process_link): Use it.
	* src/tgbatest/tgbaread.test, src/tgbatest/explicit.test: Adjust
	expected output.

1445
1446
1447
1448
1449
2003-11-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaparse/tgbaparse.yy: Remove a random character.
	* src/tgba/formula2bdd.cc: Include cassert.

1450
1451
2003-11-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
	Explicit automata can now have arbitrary logic formula on their
	arcs.  ltl2tgba_fm benefits from this and join multiple arcs with
	the same destination and acceptance conditions.
	* src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh: New files.
	* src/tgba/Makefile.am (tgba_HEADERS, libtgba_la_SOURCES): Add them.
	* src/tgba/bddprint.cc, src/tgba/bddprint.hh (bdd_pring_formula,
	bdd_format_formula): New functions.
	* src/tgba/tgbaexplicit.hh (tgba_explicit::get_condition,
	tgba_explicit::add_condition, tgba_explicit::add_neg_condition,
	tgba_explicit::declare_accepting_condition,
	tgba_explicit::has_accepting_condition,
	tgba_explicit::get_accepting_condition,
	tgba_explicit::add_accepting_condition): Take a const formula*.
	* src/tgba/tgbaexplicit.cc (tgba_explicit::add_condition):
	Rewrite using formula_to_bdd.
	* src/tgbaalgos/dotty.cc (dotty_bfs::process_link): Use
	bdd_print_formula to display conditions.
	* src/tgbaalgos/save.cc (save_bfs::process_state): Likewise.
	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::bdd_to_formula):
	New function.
	(translate_dict::conj_bdd_to_atomic_props): Remove.
	(ltl_to_tgba_fm): Factor successors on accepting conditions
	and destinations, not conditions.  Use bdd_to_formula to translate
	the conditions.
	* src/tgbaparse/tgbaparse.yy: Expect conditions as a formula
	in a string, call the LTL parser for this.
	* src/tgbaparse/tgbascan.ll: Process \" and \\ escapes in
	strings.
	* src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
	src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
	src/tgbatest/explprod.test, src/tgbatest/mixprod.test,
	src/tgbatest/readsave.test, src/tgbatest/tgbaread.test,
	src/tgbatest/tripprod.test: Adjust to new syntax for explicit
	automata.

1487
1488
1489
1490
1491
1492
1493
	* src/misc/minato.hh (minato_isop(bdd,bdd)): New constructor variant.
	(minato_isop::local_vars::vars): New attribute.
	(minato_isop::local_vars::local_vars): Add the vars arguments.
	(minato_isop::todo, minato_isop::cube, minato_isop::ret): Rename as ...
	(minato_isop::todo_, minato_isop::cube_, minato_isop::ret_): ... these.
	* src/misc/minato.cc: Adjust to factorize only variables in vars.

1494
1495
1496
	* m4/devel.m4: Fix quoting and simplify default setting of
	enable_devel.

1497
1498
2003-11-21  Alexandre Duret-Lutz  <adl@src.lip6.fr>

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1499
1500
1501
	* AUTHORS: New file.
	* configure.ac (AM_INIT_AUTOMAKE): Remove `foreign' option.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
	* COPYING: New file.
	* Makefile.am, configure.ac, doc/Makefile.am, iface/Makefile.am,
	iface/gspn/Makefile.am, iface/gspn/common.cc,
	iface/gspn/common.hh, iface/gspn/dottyeesrg.cc,
	iface/gspn/dottygspn.cc, iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
	iface/gspn/gspn.cc, iface/gspn/gspn.hh, iface/gspn/ltlgspn.cc,
	src/Makefile.am, src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
	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/multop.cc, src/ltlast/multop.hh,
	src/ltlast/predecl.hh, src/ltlast/refformula.cc,
	src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
	src/ltlast/visitor.hh, src/ltlenv/Makefile.am,
	src/ltlenv/defaultenv.cc, src/ltlenv/defaultenv.hh,
	src/ltlenv/environment.hh, src/ltlparse/Makefile.am,
	src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
	src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
	src/ltlparse/public.hh, 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/readltl.cc,
	src/ltltest/tostring.cc, src/ltltest/tostring.test,
	src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test,
	src/ltlvisit/Makefile.am, src/ltlvisit/clone.cc,
	src/ltlvisit/clone.hh, src/ltlvisit/destroy.cc,
	src/ltlvisit/destroy.hh, src/ltlvisit/dotty.cc,
	src/ltlvisit/dotty.hh, src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
	src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh,
	src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh,
	src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
	src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
	src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
	src/misc/Makefile.am, src/misc/bddalloc.cc, src/misc/bddalloc.hh,
	src/misc/bddlt.hh, src/misc/hash.hh, src/misc/minato.cc,
	src/misc/minato.hh, src/misc/version.cc, src/misc/version.hh,
	src/tgba/Makefile.am, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
	src/tgba/bddprint.cc, src/tgba/bddprint.hh, src/tgba/public.hh,
	src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
	src/tgba/succiter.hh, src/tgba/succiterconcrete.cc,
	src/tgba/succiterconcrete.hh, src/tgba/tgba.cc, src/tgba/tgba.hh,
	src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh,
	src/tgba/tgbabddconcretefactory.cc,
	src/tgba/tgbabddconcretefactory.hh,
	src/tgba/tgbabddconcreteproduct.cc,
	src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
	src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.hh,
	src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
	src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
	src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
	src/tgbaalgos/Makefile.am, src/tgbaalgos/dotty.cc,
	src/tgbaalgos/dotty.hh, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptinesscheck.cc,
	src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.cc,
	src/tgbaalgos/magic.hh, src/tgbaalgos/reachiter.cc,
	src/tgbaalgos/reachiter.hh, src/tgbaalgos/save.cc,
	src/tgbaalgos/save.hh, src/tgbaparse/Makefile.am,
	src/tgbaparse/fmterror.cc, src/tgbaparse/parsedecl.hh,
	src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
	src/tgbaparse/tgbascan.ll, src/tgbatest/Makefile.am,
	src/tgbatest/bddprod.test, src/tgbatest/defs.in,
	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/spotlbtt.test,
	src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test,
	wrap/Makefile.am, wrap/python/Makefile.am, wrap/python/buddy.i,
	wrap/python/spot.i, wrap/python/cgi/Makefile.am,
	wrap/python/cgi/ltl2tgba.in, wrap/python/tests/Makefile.am,
	wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
	wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test,
	wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py,
	wrap/python/tests/run.in: Add Copyright license.

1582
1583
	* src/misc/minato.cc: Include cassert.

1584
1585
1586
1587
	* src/misc/minato.cc, src/misc/minato.hh: New files.
	* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Use minato_isop.

1588
1589
2003-11-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
	* src/ltltest/Makefile.am (AM_CXXFLAGS): New variable.
	* tgba/bdddict.hh (bdd_dict::register_propositions,
	bdd_dict::register_accepting_variables): New methods.
	* src/bdddict.cc: Likewise.
	* tgba/tgbaexplicit.cc (tgba_explicit::add_conditions,
	tgba_explicit::add_accepting_conditions): New methods.
	(tgba_explicit::get_init_state): Add an "empty" initial
	state to empty automata.
	* tgba/tgbaexplicit.hh: (tgba_explicit::add_conditions,
	tgba_explicit::add_accepting_conditions): New methods.
	* tgbaalgos/Makefiles.am (tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES):
	Add dupexp.hh and dupexp.cc.
	* tgbaalgos/dupexp.hh, tgbaalgos/dupexp.cc: New files.
	* tgbatest/Makefile.am (AM_CXXFLAGS): New variable.
	(check_SCRIPTS): Add dupexp.test.
	(CLEANFILES): Add output1 and output2.
	* tgbatest/dupexp.test: New file.
	* tgbatest/ltl2tgba.cc: Handle -s and -S.
	* tgbatest/tgbaread.cc: Remove unused variable exit_code.

1610
1611
1612
1613
	* src/ltlparse/ltlscan.ll: Include ltlparse/parsedecl.hh,
	not parsedecl.hh.
	* src/tgbaparse/tgbascan.ll: Likewise, include tgbaparse/parsedecl.hh.

1614
1615
1616
1617
1618
1619
2003-11-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
	Check whether the state is in the current SCC before passing it
	to h_filt().

1620
1621
1622
1623
1624
1625
1626
1627
2003-11-07  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::first_): New
	attribute.
	(tgba_succ_iterator_gspn_eesrg::step): Use first_.  Loop until
	succ returns some successors.
	Report from Soheib Baarir.

1628
1629
2003-11-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1630
1631
1632
1633
1634
1635
	* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step): Fix
	the iteration logic.
	(tgba_succ_iterator_gspn_eesrg::tgba_succ_iterator_gspn_eesrg): Make
	sure not to free successors_ twice.
	(tgba_succ_iterator_gspn_eesrg::done): Fix definition.

1636
1637
1638
1639
1640
	* iface/gspn/eesrg.cc (tgba_gspn_eesrg::get_init_state): Do not
	call get_init_state(), use 0 instead.
	(tgba_gspn_eesrg::format_state): Handle the case where s->left() == 0.
	Reported by Soheib Baarir.

1641
1642
	* src/ltlparse/ltlscan.ll: Cosmetics.

1643
1644
	* configure.ac: Bump version to 0.0k.

1645
1646
2003-11-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1647
1648
1649
	* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step):
	Really Skip unknown variables.

1650
1651
	* configure.ac, NEWS: Bump version to 0.0j.

1652
1653
1654
	* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step):
	Skip unknown variables.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1655
1656
1657
1658
	* iface/gspn/gspn.cc
	(tgba_gspn_eesrg_private_::tgba_gspn_eesrg_private_): Show prop_index()
	and prop_kind() arguments on error.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1659
1660
1661
1662
	* iface/gspn/eesrg.cc
	(tgba_gspn_eesrg_private_::tgba_gspn_eesrg_private_): Show prop_index()
	argument on error.

1663
1664
1665
1666
1667
1668
	* src/ltlparse/Makefile.am ($(FROM_LTLPARSE_YY_MAIN)): cd into
	$(srcdir) before running bison, so that bison does not put
	absolute filenames in generated files.
	* src/tgbaparse/Makefile.am ($(FROM_TGBAPARSE_YY_MAIN)): Likewise.
	Reported by Soheib Baarir.

1669
1670
1671
	* iface/gspn/Makefile.am (gspn_HEADERS): Add eesrg.hh.
	Reported by Soheib Baarir.

1672
1673
2003-10-31  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1674
1675
1676
	* README: More build instructions.
	* HACKING: Update.

1677
1678
1679
	* doc/Makefile.am ($(srcdir)/spotref.pdf): Make sure to work in
	$(srcdir).

1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
2003-10-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* m4/gspnlib.m4: Define LIBGSPNESRG_LDFLAGS.
	* iface/gspn/Makefile.am (gspn_HEADERS): Add common.hh.
	(libspotgspn_la_SOURCES): Add common.cc.
	(libspotgspneesrg_la_LIBADD, libspotgspneesrg_la_CPPFLAGS)
	(libspotgspneesrg_la_SOURCES, ltlgspn_eesrg_SOURCES)
	(dotty_eesrg_LDADD, dotty_eesrg_CPPFLAGS): New variables.
	(lib_LTLIBRARIES): Add libspotgspneesrg.la.
	(check_PROGRAMS): Add dottygspn-eesrg.
	* iface/gspn/gspn.hh, iface/gspn/gspn.cc
	(gspn_exeption, operator<<(gspn_exeption), gspn_environment): Move ...
	* iface/gspn/common.hh, iface/gspn/common.cc: ... in these new files.
	* iface/gspn/eesrg.hh, iface/gspn/eesrg.cc, iface/gspn/dottyeesrg.cc:
	New files.

1696
1697
2003-10-28  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1698
1699
1700
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
	Simplify, comment, and free memory.

1701
	* src/tgbaalgos/emptinesscheck.cc (triplet): New class.
1702
1703
	(emptiness_check::accepting_path): Simplify, comment,
	derecursive, and free memory...
1704

1705
1706
2003-10-27  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1707
1708
1709
1710
1711
1712
	* src/tgbaalgos/emptinesscheck.cc (connected_component): Split
	into ...
	(emptiness_check::connected_component,
	emptiness_check::connected_component_set): ... these.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.

1713
1714
1715
1716
1717
1718
1719
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::h_filt,
	emptiness_check::~emptiness_check) New methods.
	(emptiness_check::check): Release all iterators in todo on exit.
	(emptiness_check::counter_example): Rewrite the BFS logic.
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::h_filt,
	emptiness_check::~emptiness_check): New methods.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1720
1721
1722
1723
	* src/tgba/tgbatba.cc
	(tgba_tba_proxy_succ_iterator::~tgba_tba_proxy_succ_iterator):
	Delete the proxied iterator.

1724
1725
1726
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::counter_example):
	Remove unused tmp_last, best_lst, and tmp_acc variables.

1727
1728
2003-10-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1729
1730
1731
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::counter_example):
	Rewrite initialization.

1732
1733
1734
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_result):
	Fix memory leak.

1735
1736
1737
1738
1739
1740
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check):
	Simplify, reorganize, and comment.
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::root_component):
	Rename as ...
	(emptiness_check::root): ... this, to follow the paper.

1741
1742
1743
	* src/tgbaalgos/emptinesscheck.cc: Remove some superfluous
	`emptiness_check::'.

1744
1745
1746
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::remove_component):
	Rewrite.

1747
1748
2003-10-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

1749
1750
1751
1752
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check,
	emptiness_check::counter_example): Simplify access to hashes
	after calls to find() for the same element..

1753
1754
1755
1756
1757
1758
1759
1760
	* src/tgbaalgos/emptinesscheck.hh (connected_component::set_of_state):
	Rename as ...
	(connected_component::set_type): ... this, and define as a hash_set.
	(connected_component::has_state): New method.
	* src/tgbaalgos/emptinesscheck.cc (connected_component::has_state):
	New method.
	(emptiness_check::counter_example, emptiness_check::complete_cycle,
	emptiness_check::accepting_path): Simplify using has_state().