ChangeLog 104 KB
Newer Older
1
2
2004-01-26  Alexandre Duret-Lutz  <adl@src.lip6.fr>

3
4
5
6
7
	* 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.

8
9
	* src/tgbatest/explpro2.test: Fix reordering regex.

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

12
13
2004-01-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

14
15
16
17
18
19
	* 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.

20
21
22
23
24
	* 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.

25
26
	* src/tgbaalgos/ltl2tgba_fm.cc: Typos in comments.

27
28
2004-01-13  Alexandre Duret-Lutz  <adl@src.lip6.fr>

29
30
	* configure.ac, NEWS: Bump version to 0.0o.

31
32
33
	* configure.ac: Bump version to 0.0n.
	* NEWS: Update.

34
35
36
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::check,
	emptiness_check::check2): Document them.

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

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

41
42
2004-01-09  Alexandre Duret-Lutz  <adl@src.lip6.fr>

43
44
45
	* iface/gspn/dcswaveeltl.test, iface/gspn/udcsefm.test,
	iface/gspn/udcseltl.test: Exercize -e2.

46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
	* 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.

61
62
	* src/tgbaalgos/ltl2tgba_lacim.cc: Typo in comment.

63
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check): Typos
64
65
	in comments.

66

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

75
76
77
78
79
80
81
	* 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.

82
83
	* iface/gspn/ltlgspn.cc: Add option -P.

84
85
86
87
88
89
90
91
92
93
94
95
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().

96
97
2004-01-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
	* 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()

114
115
116
117
118
119
120
121
	* 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.

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

124
125
126
127
	* iface/gspn/eesrg.cc (tgba_gspn_eesrg::all_acceptance_conditions,
	tgba_gspn_eesrg::neg_acceptance_conditions): Forward to
	data_->operand.

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

131
132
133
	* iface/gspn/eesrg.cc (state_gspn_eesrg::clone): Clone the right
	state.

134
135
136
	* iface/gspn/ltleesrg.cc: Emptinesscheck the full product, not
	the control automaton.

137
138
139
	* iface/gspn/eesrg.cc (tgba_gspn_eesrg::project_state): New method.
	* iface/gspn/eesrg.hh: Likewise.

140
141
2004-01-05  Alexandre Duret-Lutz  <adl@src.lip6.fr>

142
143
144
145
146
147
	* 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.

148
149
150
151
	* 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.

152
153
154
155
156
	* 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.

157
158
159
160
161
	* 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.

162
163
2003-12-30  Alexandre Duret-Lutz  <adl@src.lip6.fr>

164
165
166
167
	* iface/gspn/ltleesrg.cc: New file.
	* iface/gspn/Makefile.am (check_PROGRAMS): Add ltleesrg.
	(ltleesrg_LDADD, ltleesrg_SOURCES): New variables.

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

171
172
2003-12-29  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

184
185
186
187
188
	* 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.

189
190
191
192
193
194
195
196
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().

197
198
2003-12-01  Alexandre Duret-Lutz  <adl@src.lip6.fr>

199
200
	* configure.ac: Bump version to 0.0m.

201
202
203
204
	* configure.ac, NEWS: Bump version to 0.0l.
	* doc/Makefile.am ($(srcdir)/spotref.pdf): Do not assume spot.latex is
	in the srcdir.

205
206
2003-11-28  Alexandre Duret-Lutz  <adl@src.lip6.fr>

207
208
209
210
211
212
213
	* 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.

214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
	* 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

252
253
2003-11-26  Alexandre Duret-Lutz  <adl@src.lip6.fr>

254
255
256
	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor::visit) <G>:
	Optimize translation of GFy.

257
258
259
260
261
262
263
	* 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.

264
265
266
267
268
2003-11-25  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

269
270
2003-11-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
	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.

306
307
308
309
310
311
312
	* 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.

313
314
315
	* m4/devel.m4: Fix quoting and simplify default setting of
	enable_devel.

316
317
2003-11-21  Alexandre Duret-Lutz  <adl@src.lip6.fr>

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
318
319
320
	* AUTHORS: New file.
	* configure.ac (AM_INIT_AUTOMAKE): Remove `foreign' option.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
	* 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.

401
402
	* src/misc/minato.cc: Include cassert.

403
404
405
406
	* 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.

407
408
2003-11-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
	* 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.

429
430
431
432
	* src/ltlparse/ltlscan.ll: Include ltlparse/parsedecl.hh,
	not parsedecl.hh.
	* src/tgbaparse/tgbascan.ll: Likewise, include tgbaparse/parsedecl.hh.

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

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

447
448
2003-11-06  Alexandre Duret-Lutz  <adl@src.lip6.fr>

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

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

460
461
	* src/ltlparse/ltlscan.ll: Cosmetics.

462
463
	* configure.ac: Bump version to 0.0k.

464
465
2003-11-03  Alexandre Duret-Lutz  <adl@src.lip6.fr>

466
467
468
	* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step):
	Really Skip unknown variables.

469
470
	* configure.ac, NEWS: Bump version to 0.0j.

471
472
473
	* iface/gspn/eesrg.cc (tgba_succ_iterator_gspn_eesrg::step):
	Skip unknown variables.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
474
475
476
477
	* 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
478
479
480
481
	* iface/gspn/eesrg.cc
	(tgba_gspn_eesrg_private_::tgba_gspn_eesrg_private_): Show prop_index()
	argument on error.

482
483
484
485
486
487
	* 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.

488
489
490
	* iface/gspn/Makefile.am (gspn_HEADERS): Add eesrg.hh.
	Reported by Soheib Baarir.

491
492
2003-10-31  Alexandre Duret-Lutz  <adl@src.lip6.fr>

493
494
495
	* README: More build instructions.
	* HACKING: Update.

496
497
498
	* doc/Makefile.am ($(srcdir)/spotref.pdf): Make sure to work in
	$(srcdir).

499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
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.

515
516
2003-10-28  Alexandre Duret-Lutz  <adl@src.lip6.fr>

517
518
519
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
	Simplify, comment, and free memory.

520
	* src/tgbaalgos/emptinesscheck.cc (triplet): New class.
521
522
	(emptiness_check::accepting_path): Simplify, comment,
	derecursive, and free memory...
523

524
525
2003-10-27  Alexandre Duret-Lutz  <adl@src.lip6.fr>

526
527
528
529
530
531
	* src/tgbaalgos/emptinesscheck.cc (connected_component): Split
	into ...
	(emptiness_check::connected_component,
	emptiness_check::connected_component_set): ... these.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.

532
533
534
535
536
537
538
	* 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
539
540
541
542
	* src/tgba/tgbatba.cc
	(tgba_tba_proxy_succ_iterator::~tgba_tba_proxy_succ_iterator):
	Delete the proxied iterator.

543
544
545
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::counter_example):
	Remove unused tmp_last, best_lst, and tmp_acc variables.

546
547
2003-10-24  Alexandre Duret-Lutz  <adl@src.lip6.fr>

548
549
550
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::counter_example):
	Rewrite initialization.

551
552
553
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_result):
	Fix memory leak.

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

560
561
562
	* src/tgbaalgos/emptinesscheck.cc: Remove some superfluous
	`emptiness_check::'.

563
564
565
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::remove_component):
	Rewrite.

566
567
2003-10-23  Alexandre Duret-Lutz  <adl@src.lip6.fr>

568
569
570
571
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::check,
	emptiness_check::counter_example): Simplify access to hashes
	after calls to find() for the same element..

572
573
574
575
576
577
578
579
	* 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().
580
581
582
583
584
585
586
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::seen_state_num):
	Rename as ...
	(emptiness_check::h): ... this, and define as a hash_map.
	(emptiness_check::remove_component): Remove superfluous state_map
	argument.
	* src/tgbaalgos/emptinesscheck.cc: Adjust.

587
588
589
	* src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc:
	Remove superfluous includes.

590
591
592
593
594
595
596
597
598
599
600
601
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::emptiness_check):
	New, take the automaton to work on, and store it ...
	(emptiness_check::aut_): ... in this new attribute.
	(emptiness_check::tgba_emptiness_check): Rename as ...
	(emptiness_check::check): ... this, and remove the automata
	argument.
	(emptiness_check::counter_example, emptiness_check::print_result,
	emptiness_check::remove_component, emptiness_check::accepting_path,
	emptiness_check::complete_cycle): Remove the automata argument.
	* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
	iface/gspn/ltlgspn.cc: Adjust.

602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
	* src/tgbaalgos/emptinesscheck.hh (connected_component::not_null,
	connected_component::transition_acc,
	connected_component::nb_transition,
	connected_component::nb_state): Remove these unused attributes.
	(connected_component::connected_component): Merge the two
	definitions into one.
	(connected_component::~connected_component): Remove.
	(connected_component::isAccepted): Delete, unused.
	* src/tgbaalgos/emptinesscheck.cc
	(connected_component::connected_component,
	connected_component::~connected_component): Adjust.
	(connected_component::isAccepted): Delete.
	(spot):

	* src/tgbatest/emptchk.test: Typo.

618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
	* src/tgbaalgos/emptinesscheck.hh
	(emptiness_check::remove_component, emptiness_check::root_component,
	emptiness_check::seen_state_num, emptiness_check::suffix): Move in
	private part.
	(emptiness_check::arc_accepting, emptiness_check::todo): Move ...
	* src/tgbaalgos/emptinesscheck.cc
	(emptiness_check::tgba_emptiness_check): ... as local variables
	of this function.
	* src/tgbaalgos/emptinesscheck.hh (emptiness_check::vec_component):
	Move ...
	(emptiness_check::counter_example): ... as local variable of this
	function.
	* src/tgbaalgos/emptinesscheck.hh (pair_state_iter, triplet):
	Move ...
	* src/tgbaalgos/emptinesscheck.cc (pair_state_iter, triplet):
	... here.

635
636
637
	* src/tgbaalgos/emptinesscheck.cc (emptiness_check::print_result):
	Indent output as in the magic search.

638
639
	* src/tgbatest/spotlbtt.test: Add notice about long run time.

640
641
642
643
644
645
646
647
648
649
	Merge emptinesscheckexplicit into ltl2tgba.
	* src/tgbatest/Makefile.am (check_PROGRAMS): Remove
	emptinesscheckexplicit.
	(emptinesscheckexplicit_SOURCES): Remove.
	(TESTS): Replace emptinesscheckexplicit.test by emptchke.test.
	* src/tgbatest/emptinesscheckexplicit.cc,
	src/tgbatest/emptinesscheckexplicit.test: Delete.
	* src/tgbatest/empchke.test: New file.
	* src/tgbatest/ltl2tgba.cc: Add support for -X.

650
651
652
653
654
655
656
657
658
659
660
661
662
	Merge emptiness-checks tests into ltl2tgba.
	* src/tgbatest/Makefile (check_PRORGRAMS): Remove
	emptinesscheck and ltlmagic.
	(emptinesscheck_SOURCES, ltlmagic_SOURCES): Remove.
	(TESTS): Replace emptinesscheck.test and ltlmagic.test by
	emptchk.test.
	* src/tgbatest/emptinesscheck.test, src/tgbatest/ltlmagic.test:
	Delete.
	* src/tgbatest/emptchk.test: New file.
	* src/tgbatest/emptinesscheck.cc, src/tgbatest/ltlmagic.cc:
	Delete.
	* src/tgbatest/ltl2tgba.cc: Add support for -e, -E, -m, -M, and -n.

663
664
665
666
667
	* src/tgbaalgos/emptinesscheck.cc
	(emptiness_check::tgba_emptiness_check): Do not print anything.
	(emptiness_check::counter_example): Assume that tgba_emptiness_check
	has already been called.

668
669
2003-10-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>

670
671
672
673
	* src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc
	(emptiness_check::seq_counter, emptiness_check::periode): Rename as ...
	(emptiness_check::prefix, emptiness_check::period): ... these.

674
675
676
677
	* src/tgbaalgos/emptinesscheck.cc
	(emptiness_check::tgba_emptiness_check,
	emptiness_check::accepting_path): Simplify BDD operations.

678
679
680
681
682
	* src/tgbaalgos/emptinesscheck.cc, src/tgbaalgos/emptinesscheck.hh:
	Reindent.
	(emptiness_check::~emptiness_check, emptiness_check::emptiness_check):
	Remove, unused.

683
684
685
686
687
2003-10-15  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* iface/gspn/ltlgspn.cc (main): Allow invocations with
	only one atomic proposition.

688
689
690
691
692
2003-10-14  Alexandre Duret-Lutz  <adl@src.lip6.fr>

	* src/misc/bddalloc.cc (bdd_allocator::initialize): Augment
	bdd_init()'s arguments.

693
694
2003-10-08  Alexandre Duret-Lutz  <adl@src.lip6.fr>

695
696
697
698
699
700
701
702
703
704
705
	* iface/gspn/ltlgspn.cc: Use command-line options to
	select algorithms, not #defines.
	* iface/gspn/Makefile.am (check_PROGRAMS): Remove eltlgspn-srg,
	efmgspn-srg, fmgspn-rg, and fmgspn-srg and their associated
	source variables.  These are all replaced by
	ltlgspn-rg and ltlgspn-srg.
	* iface/gspn/dcswavefm.test, iface/gspn/dcswaveltl.test,
	iface/gspn/dcswaveeltl.test, iface/gspn/udcsefm.test,
	iface/gspn/udcseltl.test, iface/gspn/udcsfm.test,
	iface/gspn/udcsltl.test: Adjust calls to ltlgspn-srg.

706
707
708
	* iface/gspn/Makefile.am (XFAIL_TESTS): Remove.

2003-10-06  Rachid REBIHA  <rebiha@src.lip6.fr>
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726

	* iface/gspn/ltlgspn.cc: We call tgba_emptiness_check before
	counter_example. And we print the prefix and the periode of
	counter_example's result.
	* src/tgbatest/emptinesscheckexplicit.cc (main):
	We call tgba_emptiness_check before counter_example.
	* src/tgbatest/emptinesscheck.cc (main):
	We call tgba_emptiness_check before counter_example.
	* src/tgbaalgos/emptinesscheck.hh (spot):
	(spot::print_result): New methode to print the prefix and the
	periode of counter_example's result.
	* src/tgbaalgos/emptinesscheck.cc (spot): counter_example doesn't
	call tgba_emptiness_check. counter_example must be executed after
	calling tgba_emptiness_check.  Remove tgba_emptiness_check calls.
	(print_result): New methode to print the prefix and the
	periode of counter_example's result.  Remove most of all std::cout
	during execution of emptiness_check's methodes.

727
728
2003-10-02  Alexandre Duret-Lutz  <adl@src.lip6.fr>

729
730
731
732
733
734
735
	* iface/gspn/udcsfm.test, iface/gspn/udcsefm.test: New files.
	* iface/gspn/Makefile.am (TESTS) Add them.
	(check_PROGRAMS): Add emgspn-srg.
	(efmgspn_srg_SOURCES, efmgspn_srg_LDADD, efmgspn_srg_CPPFLAGS): New
	variables.
	* iface/gspn/udcsltl.test, iface/gspn/udcseltl.test: Complete.

736
737
	* src/ltlparse/ltlscan.ll: Allow doubly quoted atomic propositions.

738
739
2003-10-01  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

740
741
742
743
744
	* iface/gspn/udcsltl.test, iface/gspn/udcseltl.test,
	iface/gspn/dcswaveltl.test, iface/gspn/dcswaveeltl.test,
	iface/gspn/dcswavefm.test: Do not accept $? = 0 when
	a failure is expected.

745
746
747
748
749
750
751
	* iface/gspn/udcsltl.test, iface/gspn/udcseltl.test: New files
	* iface/gspn/Makefile.am (TESTS): Add them.
	(XFAIL_TESTS): Add udcseltl.test.
	* iface/gspn/example/udcs/udcs.net, iface/gspn/example/udcs/udcs.def
	iface/gspn/example/udcs/udcs.tobs: New files.
	* iface/gspn/Makefile.am (EXTRA_DIST): Add them.

752
753
754
755
756
757
758
	* iface/gspn/Makefile.am (check_PROGRAMS): Add eltlgspn-srg.
	(eltlgspn_srg_SOURCES, eltlgspn_srg_LDADD, eltlgspn_srg_CPPFLAGS):
	New variables.
	(TESTS): Add dcswaveeltl.test.
	* iface/gspn/dcswaveeltl.test: New file.
	* iface/gspn/ltlgspn.cc [CEC]: Use emptiness_check.

759
760
761
762
763
	* m4/debug.m4, m4/devel.m4, m4/gccoptim.m4, m4/ndebug.m4: New files.
	* Makefile.am (EXTRA_DIST): Add them.
	* configure.ac: Call adl_ENABLE_DEVEL, adl_ENABLE_DEBUG, ad_GCC_OPTIM,
	and adl_NDEBUG.

764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
2003-09-30  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/tgba/state.hh (state_ptr_less_than, state_ptr_equal):
	Declare as std::binary_function.
	(state_ptr_hash): Declare as std::unary_function.
	* src/tgbaalgos/lbtt.cc (state_acc_pair_equal,
	state_acc_pair_hash): Likewise.
	* src/misc/bddlt.hh (bdd_less_than): Likewise.
	* src/misc/hash.hh (ptr_hash, string_hash): Likewise.

2003-09-25  Rachid REBIHA  <rebiha@src.lip6.fr>

	* src/tgbatest/emptinesscheckexplicit.test,
	src/tgbatest/emptinesscheckexplicit.cc
	src/tgbatest/emptinesscheck.test,
	src/tgbatest/emptinesscheck.cc,
	src/tgbaalgos/emptinesscheck.cc,
	src/tgbaalgos/emptinesscheck.hh: New files.
782

783
784
785
786
787
788
789
790
791
792
793
794
2003-09-22  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh: Rename as ...
	* src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/ltl2tgba_lacim.hh:
	... this, and rename ltl_to_tgba() as ltl_to_tgba_lacim as well.
	* iface/gspn/ltlgspn.cc, src/tgbatest/explprod.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlmagic.cc,
	src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
	src/tgbatest/tripprod.cc, wrap/python/spot.i,
	wrap/python/cgi/ltl2tgba.in, wrap/python/tests/interdep.py,
	wrap/python/tests/ltl2tgba.py: Adjust.

795
796
797
798
2003-09-11  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/tgba/state.hh: Include cassert.

799
800
2003-08-29  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
	* src/tgba/state.hh (state::hash): New method.
	(state_ptr_equal, state_ptr_hash): New functors.
	* src/tgba/statebdd.hh, src/tgba/statebdd.cc (state_bdd::hash):
	New method.
	* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
	(state_explicit::hash): New method.
	(ns_map, sn_map): Use Sgi::hash_map instead of std::map.
	* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
	(state_product::hash): New method.
	* src/tgba/tgbatba.cc (state_tba_proxy::hash): New method.
	* src/tgbaalgos/lbtt.cc (acp_seen, todo_set, seen_map): Redefine
	using Sgi::hash_map or Sgi::hash_set.
	(lbtt_reachable): Don't erase a key that is pointed to by an
	iterator.
	* src/tgbaalgos/reachiter.cc
	(tgba_reachable_iterator::~tgba_reachable_iterator): Likewise.
	* src/tgbaalgos/magic.cc (magic_search::~magic_search()): Likewise.
	* src/tgbaalgos/magic.hh (hash_type): Redefine using Sgi::hash_map.
	* src/tgbaalgos/reachiter.hh (seen_map): Redefine using Sgi::hash_map.
	* iface/gspn/gspn.cc (state_gspn::hash): New method.
	* src/misc/hash.hh (string_hash): New functor.

823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
	* src/tgba/tgbaexplicit.cc (tgba_explicit::all_accepting_conditions)
	Compute all_accepting_conditions_ from neg_accepting_conditions_,
	not by browsing the dictionary.  The dictionary also contains
	accepting conditions from other automata...  This bug was a
	consequence of the change from 2003-07-14.
	* src/tgbaalgos/save.cc (save_bfs::start()): Likewise, do not
	browse the dictionary to print accepting conditions.  Call
	->all_accepting_conditions() instead.
	* src/tgba/tgbaproduct.cc (tgba_product::tgba_product): Typo
	from 2003-08-22 in the computation of all_accepting_conditions_.
	* src/tgbatest/explpro3.test: New file.
	* src/tgbatest/Makefile.am (TESTS): Add explpro3.test.
	* src/tgbatest/explprod.test, src/tgbatest/explpro2.test,
	 src/tgbatest/tripprod.test: Sort the output using Perl.

838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
2003-08-28  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	Rewrite all std::map<const formula*, ...> as
	Sgi::hash_map<const formula*, ...>.

	* src/misc/hash.hh: New file.
	* src/misc/Makefile.am (misc_HEADERS): Add it.
	* src/ltlvisit/dotty.cc (dotty_visitor::map): Use a hash_map instead
	of a map.
	* src/tgba/bdddict.hh (bdd_dict::fv_map, bdd_dict::vf_map,
	bdd_dict::ref_set, bdd_dict::var_map): Define as hash_map or
	hash_set.
	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::fv_map,
	translate_dict::vf_map): Likewise.
	* src/tgba/tgbabddconcretefactory.hh
	(tgba_bdd_concrete_factory::acc_map_): Likewise.
	* src/tgba/tgbatba.hh, src/tgbaalgos/reachiter.hh: Include <map>.

856
857
858
859
860
2003-08-25  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/tgba/state.hh (state_ptr_less_than): Make sure left is
	non-null.  Suggested by Denis Poitreneaud.

861
862
863
864
865
2003-08-23  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* wrap/python/Makefile.am (MAINTAINERCLEANFILES): Add
	buddy_wrap.cxx and buddy.py.

866
867
2003-08-22  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

868
869
	* src/tgbaalgos/magic.cc (seen_with_magic, seen_without_magic): Remove.

870
871
872
	* wrap/python/cgi/ltl2tgba.in: Fix display of relations for
	tgba_bdd_concrete automata.

873
874
875
876
877
878
879
880
881
	Fix computation of product acceptance conditions, when the
	two operands share some acceptance conditions.
	* src/tgba/tgbaproduct.hh (tgba_product::left_acc_complement_,
	tgba_product::right_acc_complement_): New attribute.
	* src/tgba/tgbaproduct.cc (tgba_product::tgba_product): Set them.
	(tgba_product::succ_iter): Use them.
	* src/tgba/explpro2.test: New file.
	* src/tgba/Makefile.am (TESTS): Add it.

882
883
2003-08-20  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

884
885
886
887
	* tgba/tgbaproduct.cc, tgba/tgbaproduct.hh:
	(state_bdd_product, tgba_product_succ_iterator): Rename as ...
	(state_product, tgba_succ_iterator_product): ... these.

888
889
890
891
892
893
894
895
	* iface/gspn/dcswavefm.test: New file.
	* iface/gspn/Makefile.am (check_PROGRAMS): Add fmgspn-rg and
	fmgspn-srg.
	(fmgspn_rg_SOURCES, fmgspn_rg_CPPFLAGS, fmgspn_rg_LDADD,
	fmgspn_srg_SOURCES, fmgspn_srg_CPPFLAGS, fmgspn_srg_LDADD):
	New variables.
	(TESTS): Add dcswavefm.test.

896
897
898
899
900
2003-08-19  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/ltlast/formula.hh: Make it clear that ref() and unref()
	deals with one node, not a entire formula.

901
902
2003-08-18  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

903
904
	* configure.ac: Bump version to 0.0i.

905
	* configure.ac, NEWS: Bump version to 0.0h.
906

907
908
	* wrap/python/cgi/Makefile.am (CLEANFILES): Clean ltl2tgba.py.

909
910
911
912
	* wrap/python/tests/ltl2tgba.test: Run $srcdir/ltl2tgba.py, not
	ltl2tgba.py.

2003-08-15  Alexandre Duret-Lutz  <aduret@src.lip6.fr>
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954

	This implements Couvreur's FM'99 ltl2tgba translation.
	* src/tgba/bdddict.cc (bdd_dict::is_registered): Split as ...
	(bdd_dict::is_registered_proposition, bdd_dict::is_registered_state,
	bdd_dict::is_registered_accepting_variable): ... these.
	* src/tgba/bdddict.hh: Likewise.
	* src/tgba/tgbaexplicit.cc (tgba_explicit::set_init_state): New method.
	(tgba_explicit::declare_accepting_condition): Arrange so that this
	function can be called during the construction of the automaton.
	(tgba_explicit::complement_all_accepting_conditions): New method.
	(tgba_explicit::has_accepting_condition): Adjust to call
	bdd_dict::is_registered_accepting_variable.
	* src/tgba/tgbaexplicit.hh (tgba_explicit::set_init_state,
	tgba_explicit::complement_all_accepting_conditions): New methods.
	* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh:
	New files.
	* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
	libtgbaalgos_la_SOURCES): Add them.
	* src/tgbaalgos/ltl2tgba.hh: Add bibtex entry in comment.
	* src/tgbatest/Makefile.am (check_PROGRAMS): Remove spotlbtt
	and tbalbtt.
	(tbalbtt_SOURCES, tbalbtt_CXXFLAGS, spotlbtt_SOURCES): Remove.
	* src/tgbatest/spotlbtt.cc: Delete, superseded by "ltl2tgba -F -t".
	* src/tgbatest/ltl2tgba.cc: Implement the -f and -F options.
	* src/tgbatest/spotlbtt.test: Use "ltl2tgba -F -t" instead of
	"spotlbtt", "ltl2tgba -F -t -D" instead of "tbalbtt", and add
	also check the ltl2tgba_fm translator.
	* wrap/python/spot.i: Wrap ltl2tgba_fm.
	* wrap/python/cgi/ltl2tgba.in: Add radio buttons to select
	between ltl2tgba and ltl2tgba_fm.
	* wrap/python/tests/ltl2tgba.py: Add support for the -f option.
	* wrap/python/tests/ltl2tgba.test: Try the -f option.

	varnum can be augmented by other allocator.  Keep track
	of a local varnum (lvarnum) in each allocator.
	* src/misc/bddalloc.cc (bdd_allocator::bdd_allocator): Initialize
	lvarnum.
	(bdd_allocator::extvarnum): New method.
	(bdd_allocator::allocate_variables): Use lvarnum and extvarnum.
	* src/misc/bddalloc.hh (bdd_allocator::extvarnum): New mathod.
	(bdd_allocator::lvarnum): New variable.

955
956
957
958
959
2003-08-14  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/tgba/state.hh, src/tgba/statebdd.hh, src/tgba/statebdd.cc:
	Remove the translate() method.  Useless since 2003-07-14.

960
961
962
963
964
2003-08-11  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* wrap/python/Makefile.am (SUBDIRS): Build `.' first.
	* wrap/python/cgi/Makefile.am (ltl2tgba.py): Depend on Makefile.

965
966
2003-08-10  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
	Revamp the multop interface to allow some basic optimizations like
	not constructing a single-child multop.
	* src/ltlast/multop.hh (multop::instance(type)): Remove.
	(multop::instance(type, formula*, formula*)): Return a formula*.
	(multop::instance(type, vec*)): Make it public and return a formula*.
	(multop::add_sorted, multop::add):
	* src/ltlast/multop.cc (multop::instance(type, vec*)): Rewrite.
	(multop::instance(type)): Delete.
	(multop::instance(type, formula*, formula*)): Adjust.
	(multop::add_sorted, multop::add): Remove.
	* src/ltlvisit/clone.cc (clone_visitor::visit(multop*)) Adjust.
	* src/ltlvisit/nenoform.cc
	(negative_normal_form_visitor::::visit(multop*)) Adjust.
	* src/ltltest/equals.test: Make sure `a & a' and `a' are equals.
	* wrap/python/tests/ltlsimple.py: Adjust.

983
984
985
986
	* src/tgba/succiterconcrete.cc, src/tgba/tgbaexplicit.cc,
	src/tgba/tgbatba.cc, src/tgbaalgos/lbtt.cc: Use `-' instead of `& !'
	between two BDDs.  That's one less call to BuDDy.

987
988
989
	* src/tgbatest/tgbaread.test, src/tgbatest/explicit.test:
	Adjust expected output after 2003-08-07's change.

990
991
	* src/tgba/bdddict.hh: Typo in comments.

992
993
	* src/ltlenv/environment.hh: Typo in comments.

994
995
996
997
998
999
2003-08-08  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/ltlparse/ltlparse.yy: Handle and diagnose mismatched parentheses.
	* src/ltltest/parseerr.test: Add some examples.

2003-08-07  Alexandre Duret-Lutz  <aduret@src.lip6.fr>
1000
1001
1002
1003
1004
1005

	* wrap/python/cgi/ltl2tgba.in: Convert GIFs to PNGs.  Restrict
	the size of dot's output to 1024x1024.
	* src/tgbaalgos/dotty.cc (dotty_bfs::start): Do not preset
	the size of the graph.  Set height=0 for the invisible state.

1006
2003-08-06  Alexandre Duret-Lutz  <aduret@src.lip6.fr>
1007

1008
1009
1010
1011
1012
1013
	* src/ltlparse/ltlparse.yy: Fix precedence OP_OR < OP_XOR < OP_AND.
	* src/ltlast/binop.cc (binop::instance): Order operands for
	associative operators, so that e.g. "a xor b" and "b xor a" are
	mapped to the same formula.
	* src/ltltest/equals.test: Check this.

1014
	* src/ltlvisit/dotty.cc (draw_node_): s/shabe/shape/.
1015
	(visit): Draw rectangular nodes for atomic propositions and
1016
1017
	constant.  This is an attempt to mimic BuDDy's output.

1018
1019
1020
	* wrap/python/cgi/ltl2tgba.in: Handle show_formula_dot and
	show_formula_gif.

1021
1022
1023
1024
1025
	* src/ltlvisit/dotty.hh (dotty): Move the ostream argument first.
	* src/ltlvisit/dump.hh (dump): Likewise.
	* src/ltltest/equals.cc, src/ltltest/readltl.cc,
	src/ltlvisit/dotty.cc, src/ltlvisit/dump.cc: Adjust.

1026
1027
2003-08-05  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1028
1029
1030
1031
1032
	* src/misc/version.hh, src/misc/version.cc: New files.
	* src/misc/Makefile.am (libmisc_la_SOURCES, misc_HEADERS): Add them.
	* wrap/python/spot.i: Include misc/version.hh.
	* wrap/python/cgi/ltl2tgba.in: Print spot.version().

1033
1034
	* README: Update layout.

1035
1036
1037
1038
1039
	* wrap/python/cgi/Makefile.am, wrap/python/cgi/ltl2tgba.in,
	wrap/python/cgi/README: New files.
	* wrap/python/Makefile.am (SUBDIRS): Add cgi.
	* configure.ac: Output wrap/python/cgi/Makefile.

1040
1041
	* wrap/python/spot.i: Add an ostringstream emulation.

1042
1043
2003-08-04  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1044
1045
	* wrap/python/spot.i: Add an ofstream emulation.

1046
1047
1048
1049
	* wrap/python/spot.i: Declare spot::tgba::get_init_state,
	spot::tgba::succ_iter, and spot::tgba_succ_iterator::current_state
	as constructors.

1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
	* wrap/python/Makefile.am (lib_LTLIBRARIES)
	(libspotswigpy_la_SOURCES, libspotswigpy_la_CFLAGS)
	(libspotswigpy_la_LDFLAGS): New variables.
	(_spot_la_LIBADD, _buddy_la_LDFLAGS): Link with libspotswigpy.la
	($(srcdir)/spot_wrap.cxx, $(srcdir)/buddy_wrap.cxx): Run
	swig with -c.
	* wrap/python/tests/libpy.c: New file.
	* wrap/python/tests/run.in: Run python if no arguments are given.
	* wrap/python/tests/interdep.py: New file.
	* wrap/python/tests/Makefile.am (TESTS): Add interdep.py.

1061
1062
1063
	* wrap/python/spot.i: Declare spot::ltl_to_tgba as a constructor.
	* wrap/python/tests/ltl2tgba.py: Do not force `thisown=1' on tgba
	objects.
1064

1065
1066
1067
	* wrap/python/spot.i: Include headers from tgba/ and tgbaalgos/.
	* wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test:
	New files.
1068

1069
1070
1071
1072
	* wrap/python/tests/Makefile.am (TESTS): Add ltl2tgba.test.
	(EXTRA_DIST): Add ltl2tgba.py.
	* wrap/python/tests/run.in: Distinguish *.py and *.test.

1073
1074
1075
	* wrap/python/tests/ltlparse.py: New file.
	* wrap/python/tests/Makefile.am (TESTS): Add it.

1076
1077
2003-08-01  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1078
1079
1080
1081
	* wrap/python/buddy.i: New file.
	* wrap/python/Makefile.am (EXTRA_DIST): Add it.
	(python_PYTHON, MAINTAINERCLEANFILES): Add buddy.py.
	(pyexec_LTLIBRARIES): Add _buddy.la.
Alexandre Duret-Lutz's avatar
spacing    
Alexandre Duret-Lutz committed
1082
	(_buddy_la_SOURCES, _buddy_la_LDFLAGS, $(srcdir)/buddy_wrap.cxx)
1083
1084
1085
1086
	($(srcdir)/buddy.py): New.
	* wrap/python/tests/bddnqueen.py: New file.
	* wrap/python/tests/Makefile.am (TESTS): Add it.

1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
	* src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh: Merge the
	two unabbreviate_logic definitions (const and non-const) into a
	function that takes a const formula* and return a non-const
	formula*.  Since formula* is convertible to const formula*, and
	the const version of the function just called the non-onst one, it
	makes no sense to keep both.  Also, it confused Swig.
	* src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh: Likewise
	for negative_normal_form.
	* src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh: Likewise
	for unabbreviate_ltl.
	* src/ltlvisit/clone.cc, src/ltlvisit/clone.hh: Likewise for clone.
	* src/ltlvisit/destroy.cc, src/ltlvisit/destroy.hh: Likewise
	for destroy.

1101
	* configure.ac: Bump version to 0.0g.
1102

1103
	* configure.ac, NEWS: Bump version to 0.0f.
1104

1105
1106
1107
1108
1109
1110
1111
	* iface/gspn/simple.test, iface/gspn/dcswave.test,
	iface/gspn/dcswaveltl.test: Make sure the example directory
	is writable.
	* m4/lbtt.m4, m4/buddy.m4: Always configure buddy/ and lbtt/,
	regardless of the --with-included-buddy and --with-included-lbtt
	settings.

1112
1113
1114
1115
1116
	* wrap/python/Makefile.am (python_PYTHON, _spot_la_SOURCES):
	Explicitely refer to spot_wrap.cxx and spot.py as
	$(srcdir)/spot_wrap.cxx and $(srcdir)/spot.py.
	(spot_wrap.cxx, spot.py):

1117
1118
1119
	* wrap/python/Makefile.am (spot_wrap.cxx, spot.py): Lookup
	spot.i in $(srcdir).

1120
1121
2003-07-31  Alexandre Duret-Lutz  <adl@gnu.org>

1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
	* configure.ac: Output wrap/python/tests/Makefile
	and wrap/python/tests/run.
	* wrap/python/Makefile.am (SUBDIRS): New variable.
	* wrap/python/spot.i: Include all formulae headers from ltlast/,
	as well as ltlvisit/destroy.hh.
	(spot::ltl::formula::__cmp__, spot::ltl::formula::__str__): New
	functions.
	* wrap/python/tests/Makefile.am, wrap/python/tests/ltlsimple.py,
	wrap/python/tests/run.in: New files.

1132
1133
1134
	* wrap/python/ltihooks.py: New file.
	* wrap/python/Makefile.am (EXTRA_DIST): Add ltihooks.py.

1135
1136
	* wrap/Makefile.am, wrap/spot.i: Move ...
	* wrap/python/Makefile.am, wrap/python/spot.i: ... here.
1137

1138
1139
1140
	* wrap/Makefile.am: New file.
	* configure.ac: Output wrap/python/Makefile.

1141
1142
1143
	* src/misc/const_sel.hh: Delete.
	* src/misc/Makefile.am (misc_HEADERS): Remove const_sel.hh.

1144
1145
1146
1147
	* src/tgbaalgos/magic.cc, src/tgbaalgos/reachiter.cc: Include cassert.
	* iface/Makefile.am (SUBDIRS): Recurse in gspn only if condition
	WITH_GSPN.

1148
1149
2003-07-30  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1150
1151
1152
	* iface/gspn/gspn.cc (tgba_gspn::format_state): Call gspn's
	print_state.

1153
	* iface/gspn/dcswaveltl.test: Check for a false formula too.
1154

1155
	* iface/gspn/dcswaveltl.test, iface/gspn/ltlgspn.cc: New files.
1156
1157
1158
1159
1160
1161
1162
1163
	* iface/gspn/Makefile.am (TESTS): Add dcswaveltl.test.
	(ltlgspn_rg_LDADD, ltlgspn_srg_LDADD, ltlgspn_rg_SOURCES)
	(ltlgspn_srg_SOURCES): New variables.
	(check_PROGRAMS): Add ltlgspn-rg and ltlgspn-srg.

	* iface/gspn/Makefile.am (gspn_HEADERS, gspndir): Install
	gspn.hh.

1164
1165
1166
1167
1168
1169
1170
1171
1172
	* src/tgba/tgba.hh, src/tgba/tgba.cc
	(tgba::project_state): New method.
	* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
	(tgba_product::project_state): New method.
	* src/tgba/tgbabta.hh, src/tgba/tgbabta.cc
	(tgba_bta_proxy::project_state): New method.
	* src/tgbaalgos/magic.cc (magic_search::print_result): Take
	a restrict argument.

1173
1174
2003-07-29  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1175
1176
1177
	* src/ltlparse/ltlscan.ll: Allow /\, \/, and xor, used in LBTT.
	* src/ltltest/parse.test: Test them.

1178
1179
1180
1181
	* src/tgbaalgos/lbtt.cc: Typos.

	* lbtt/: Upgrade to lbtt 1.0.2.

1182
1183
1184
1185
1186
	* src/tgbatest/Makefile.am (check_PROGRAMS): Add tbalbtt.
	(tbalbtt_SOURCES, tbalbtt_CXXFLAGS): New variables.
	* src/tgbatest/spotlbtt.cc [TBA]: Build tba proxies conditionally.
	* src/tgbatest/spotlbtt.test: Include tbalbtt in the tests.

1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
2003-07-28  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
	(tgba_tba_proxy::state_is_accepting): New method.
	* src/tgbaalgos/magic.hh, src/tgbaalgos/magic.cc: New files.
	* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES,
	tgbaalgos_HEADERS): Add them.
	* src/tgbatest/ltlmagic.cc, src/tgbatest/ltlmagic.test: New files.
	* src/tgbatest/Makefile.am (TESTS, ltlmagic_SOURCES,
	check_PROGRAMS): Add them.

1198
1199
2003-07-25  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1200
1201
1202
1203
1204
1205
	* src/tgba/tgba.hh (tgba::~tgba): Make it public.
	* src/tgba/tgbatba.cc, src/tgba/tgbatba.hh: New files.
	* src/tgba/Makefile.am (tgba_HEADERS): Add tgbatba.hh.
	(libtgba_la_SOURCES): Add tgbatba.cc.
	* src/tgbatest/ltl2tgba.cc: Add option -D.

1206
1207
1208
1209
	* src/tgbaalgos/lbtt.cc (bdd_less_than): Move ...
	* src/misc/bddlt.hh: ... in this new file.
	* src/misc/Makefile.am (misc_HEADERS): Add bddlt.hh.

1210
1211
	* iface/gspn/dcswave.test: Comment state space sizes.

1212
1213
	* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS): Add reachiters.hh.
	(libtgbaalgos_la_SOURCES): Add reachiters.cc.
1214
	* src/tgbaalgos/dotty.cc, src/tgbaalgos/save.cc: Rewrite using
1215
1216
1217
1218
	spot::tgba_reachable_iterator_breadth_first.
	* src/tgbatest/explicit.test, src/tgbatest/tgbaread.test,
	src/tgbatest/tripprod.test: Adjust expected output.

1219
1220
1221
1222
1223
2003-07-24  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* configure.ac: Output iface/gspn/defs.
	* iface/gspn/Makefile.am (EXTRA_DIST): Add $(TESTS).
	(TESTS, check_SCRIPTS, distclean-local): New.
1224
	* iface/gspn/dcswave.test, iface/gspn/simple.test,
1225
1226
1227
1228
	iface/gspn/defs.in: New files.
	* iface/gspn/dottygspn.cc (main): Take the list of properties
	of interest in argument.

1229
1230
2003-07-23  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1231
1232
1233
1234
1235
	* iface/gspn/examples/DCSwave/DCSWave.def,
	iface/gspn/examples/DCSwave/DCSWave.net
	iface/gspn/examples/DCSwave/DCSWave.tobs,
	iface/gspn/examples/simple/simple.def,
	iface/gspn/examples/simple/simple.net,
1236
	iface/gspn/examples/simple/simple.tobs: New files, from
1237
1238
1239
1240
	Yann Thierry-Mieg.
	* iface/gspn/Makefile.am (EXTRA_DIST): New variables.

	* iface/gspn/gspn.cc (tgba_gspn_private_::tgba_gspn_private_):
1241
1242
	Rethrow caught expections.

1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
2003-07-22  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* m4/gspnlib.m4: Check for libgspnRG.a and libgspnSRG.a.
	Define LIBGSPNRG_LDFLAGS and LIBGSPNSRG_LDFLAGS, not
	LIBGSPN_LDFLAGS.
	* iface/gspn/Makefile.am: Adjust, build dottygspn-rg and
	dottygspn-srg instead of dottygspn.
	* iface/gspn/gspn.cc (EVENT_TRUE): Undefine.
	(tgba_gspn_private_::~tgba_gspn_private_): Free all_indexes.
	* iface/gspn/dottygspn.cc (main): Destroy the automaton before
1253
	its dictionary.
1254

1255
1256
2003-07-17  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
	Now succ_iter() can fetch extra information from
	the root of a product to reduce its number of successors.
	* src/tgba/Makefile.am (libtgba_la_SOURCES): Add tgba.cc.
	* src/tgba/tgba.hh (tgba::succ_iter): Add the global_state and
	global_automaton arguments.
	(tgba::support_conditions, tgba::support_variables,
	tgba::compute_support_conditions, tgba::compute_support_variables):
	New functions.
	(tgba::last_support_conditions_input_,
	tgba::last_support_conditions_output_,
	tgba::last_support_variables_input_,
	tgba::last_support_variables_output_): New attributes.
	* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::succ_iter):
	Handle the two new arguments.
	(tgba_bdd_concrete::compute_support_conditions,
	tgba_bdd_concrete::compute_support_variables): Implement them.
	* src/tgba/tgbabddconcrete.hh: Adjust.
	* src/tgba/tgbaexplicit.cc (tgba_explicit::succ_iter):	Ignore
	the two new arguments.
	(tgba_explicit::compute_support_conditions,
	tgba_explicit::compute_support_variables): Implement them.
	* src/tgba/tgbaexplicit.hh: Adjust.
1279
	* src/tgba/tgbaproduct.cc (tgba_product::succ_iter): Handle the
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
	two new arguments.
	(tgba_product::compute_support_conditions,
	tgba_product::compute_support_variables): Implement them.
	* src/tgba/tgbaproduct.hh: Adjust.
	* iface/gspn/gspn.cc (tgba_gspn_private_::last_state_cond_input,
	tgba_gspn_private_::last_state_cond_output,
	(tgba_gspn_private_::tgba_gspn_private_): Set last_state_cond_input.
	(tgba_gspn_private_::~tgba_gspn_private_): Delete
	last_state_cond_input.
	(tgba_gspn_private_::state_conds): New function, eved out
	from tgba_gspn::succ_iter.
	(tgba_gspn::succ_iter): Use it.  Use the two new arguments.
	(tgba_gspn::compute_support_conditions,
	tgba_gspn::compute_support_variables): New functions.
	* iface/gspn/gspn.hh: Adjust.

	* iface/gspn/gspn.cc (EVENT_TRUE): Override temporarily.
1297
1298
	(tgba_gspn::succ_iter): Fix usage of cube.

1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
2003-07-16  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* m4/gspnlib.m4: New file.
	* configure.ac: Call AX_CHECK_GSPNLIB.
	* Makefile.am (EXTRA_DIST): Add m4/gspnlib.m4.
	* iface/gspn/Makefile.am (AM_CPPFLAGS): Add $(LIBGSPN_CPPFLAGS).
	(libspotgspn_la_LIBADD, check_PROGRAMS, dottygspn_SOURCES,
	dottygspn_LDADD): New variables.
	* iface/gspn/gspn.hh (gspn_interface): New class.
	(gspn_exeption): Take a string argument and adjust all callers.
	(operator<<): Define for gspn_exeption.
	* iface/gspn/gspn.cc (gspn_interface::gspn_interface,
	gspn_interface::~gspn_interface): New.
	* iface/gspn/gspnlib.h: Delete, it belongs to GSPN.
	* iface/gspn/dottygspn.cc: New file.

1315
1316
2003-07-15  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1317
1318
1319
	* m4/lbtt.m4 (AX_CHECK_LBTT): Set LBTT and LBTT_TRANSLATE
	when using an already installed lbtt.

1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
	Homogenize passing of automata as pointers, not references.
	Disallow copy for security.

	* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Disallow copy.
	* src/tgba/tgbaexplicit.hh (tgba_explicit): Likewise.
	* src/tgba/tgbaexplicit.cc (tgba_explicit::operator=,
	tgba_explicit::tgba_explicit(tgba_explicit)): Remove.
	* src/tgba/tgbabddconcreteproduct.cc
	(tgba_bdd_concrete_product_factory::tgba_bdd_concrete_product_factory,
	product): Take operand automata as pointers.
	* src/tgba/tgbabddconcreteproduct.hh (product): Likewise.
	* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh:
	(tgba_product): Disallow copy.
	(tgba_product::tgba_product): Take operand automata as pointers.
	* src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty_reachable):
	Take tgba arguments as pointer.
	* src/tgbaalgos/dotty.hh (dotty_reachable): Likewise.
	* src/tgbaalgos/lbtt.cc (fill_todo, lbtt_reachable): Likewise.
	* src/tgbaalgos/lbtt.hh (lbtt_reachable): Likewise.
	* src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh (ltl_to_tgba):
	Likewise.
	* src/tgbaalgos/save.cc (save_rec, tgba_save_reachable): Likewise.
	* src/tgbaalgos/save.hh (save): Likewise.
	* src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
	src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
	src/tgbatest/spotlbtt.cc, src/tgbatest/tgbaread.cc,
	src/tgbatest/tripprod.cc: Likewise.

1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
2003-07-14  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	Before this change, all automata would construct their own
	dictionaries (map of BDD variables to LTL formulae).  This was
	cumbersome, because to multiply two automata we had to build a
	common dictionary (the union of the two LTL formula spaces), and
	install wrappers to translate each automaton's BDD answers into
	the common dictionary.  This translation, that had to be repeated
	when several products were nested, was time consuming and was a
	hindrance for some optimizations.
	In the new scheme, all automata involved in a product must
	share the same dictionary.  An empty dictionary should be
	constructed by the user and passed to the automaton' constructors
	as necessary.
1363
	This huge change removes more code than it adds.
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422

	* src/Makefile.am (libspot_la_LIBADD): Add misc/libmisc.la.
	* src/misc/bddalloc.hh, src/misc/bddalloc.cc: New files.  These
	partly replace src/tgba/bddfactory.hh and src/tgba/bddfactory.cc.
	* src/misc/Makefile.am: Adjust to build bddalloc.hh and bddalloc.cc.
	* src/tgba/bddfactory.hh, src/tgba/bddfactory.cc,
	src/tgba/dictunion.hh, src/tgba/dictunion.cc,
	src/tgba/tgbabdddict.hh, src/tgba/tgbabdddict.cc,
	src/tgba/tgbabddtranslatefactory.hh,
	src/tgba/tgbabddtranslatefactory.cc,
	src/tgba/tgbatranslateproxy.hh, src/tgba/tgbatranslateproxy.cc:
	Delete.
	* src/tgba/bdddict.hh, src/tgba/bdddict.cc: New files.  These
	replaces tgbabdddict.hh and tgbabdddict.cc, and also part of
	bddfactory.hh and bddfactory.cc.
	* src/tgba/bddprint.cc, src/tgba/bddprint.hh: Adjust to
	use bdd_dict* instead of tgba_bdd_dict&.
	* src/tgba/succiterconcrete.cc (succ_iter_concrete::next()):
	Get next_to_now from the dictionary.
	* src/tgba/tgba.hh (tgba::get_dict): Return a bdd_dict*,
	not a const tgba_bdd_dict*.
	* src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh:
	Adjust to use the new dictionary, stored in data_.
	* src/tgba/tgbabddconcretefactory.cc,
	src/tgba/tgbabddconcretefactory.hh: Likewise.  Plus
	now_to_next_ is now also stored in the dictionary.
	* src/tgba/tgbabddconcreteproduct.cc: Likewise.  Now
	that both operand share the same product, there is not
	point in using tgba_bdd_translate_factory.
	* src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh:
	Store a bdd_dict (taken as constructor argument).
	(tgba_bdd_core_data::~tgba_bdd_core_data): Remove.
	(tgba_bdd_core_data::translate): Remove.
	(tgba_bdd_core_data::next_to_now): Remove (now in dict).
	(tgba_bdd_core_data::dict): New pointer.
	* src/tgba/tgbabddfactory.hh: (tgba_bdd_factory::get_dict): Remove.
	* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
	Adjust to use the new dictionary.
	* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Likewise.  Do
	not use tgba_bdd_dict_union and tgba_bdd_translate_proxy anymore.
	* src/tgbaalgos/lbtt.cc, src/tgbaalgos/save.cc: Adjust to
	use bdd_dict* instead of tgba_bdd_dict&.
	* src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.cc: Likewise.
	(ltl_to_tgba): Take a dict argument.
	* src/tgbaparse/public.hh (tgba_parse): Take a dict argument.
	* src/tgbaparse/tgbaparse.yy (tgba_parse): Take a dict argument.
	* src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
	src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
	src/tgbatest/readsave.cc, src/tgbatest/spotlbtt.cc,
	src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc: Instantiate
	a dictionary, and pass it to the automata' constructors.
	* src/tgbatest/ltl2tgba.cc: Likewise, and remove the -o (defrag)
	option.
	* iface/gspn/gspn.hh (tgba_gspn::tgba_gspn): Take a bdd_dict argument.
	(tgba_gspn::get_dict): Adjust return type.
	* iface/gspn/gspn.cc: Do not use bdd_factory, adjust to
	use the new dictionary instead.

2003-07-13  Alexandre Duret-Lutz  <aduret@src.lip6.fr>
1423

1424
1425
	* configure.ac: Bump version to 0.0e.

1426
1427
1428
	* configure.ac: Bump version to 0.0d.
	* NEWS, README: New files.

1429
1430
2003-07-12  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1431
1432
	* m4/lbtt.m4: Run lbtt-translate, not lbtt.

1433
1434
	* iface/gspn/gspn.cc: Include cassert.

1435
1436
2003-07-10  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1437
	* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit(multop)):
1438
1439
1440
	Forward root_ to children of And.
	(ltl_trad_visitor::recurse): Take a root argument.

1441
1442
1443
1444
1445
1446
	* src/tgba/tgbabddconcretefactory.hh
	(tgba_bdd_concrete_factory::add_relation): Rename as ...
	(tgba_bdd_concrete_factory::constrain_relation): ... this.
	* src/tgba/tgbabddconcretefactory.cc, src/tgbaalgos/ltl2tgba.cc:
	Adjust.

1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
	* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit(unop::G)): Do
	not create Now/Next variable when G is the root of the formula.
	(ltl_trad_visitor::ltl_trad_visitor): Take a root argument.
	(ltl_trad_visitor::recurse): Create a new visitor, do not copy
	the current one.
	(ltl_to_tgba): Build ltl_trad_visitor with root = true.

	* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit(unop::X)):
	Remove FIXME about handling X(a U b) and X(a R b) better, it's
	done naturally.

1458
1459
	* src/tgbatest/spotlbtt.test: Make 100 rounds.

1460
1461
1462
1463
1464
	* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
	Fix so that !p.!Acc[g].Acc[f] + p.!Acc[g].Acc[f] + p.Acc[g].!Acc[f]
	is factored as !p.!Acc[g].Acc[f] + p.(!Acc[g].Acc[f] + Acc[g].!Acc[f]),
	not !Acc[g].Acc[f] + p.Acc[g].!Acc[f].

1465
1466
2003-07-09  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
	* lbtt/: New directory.  Contains a patched version of lbtt 1.0.1.
	* Makefile.am (MAYBE_LBTT): New variables.
	(SUBDIRS): Add $(MAYBE_LBTT).
	(EXTRA_DIST): Add m4/lbtt.m4.
	* configure.ac: Call AX_CHECK_LBTT.
	* m4/lbtt.m4: New file.
	* src/tgbatest/Makefile.am (check_PROGRAMS): Add spotlbtt.
	(spotlbtt_SOURCES): New variables.
	(TESTS): Add spotlbtt.test.
	(CLEANFILE): Add config.
	* src/tgbatest/defs.in (top_builddir, LBTT, LBTT_TRANSLATE): New
	substitutions.
	* src/tgbatest/spotlbtt.cc, src/tgbatest/spotlbtt.test: New files.

	* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
1482
	Fix computation of states sharing the same accepting set.
1483

1484
1485
1486
1487
1488
1489
1490
	Make sure we only output one initial state in LBTT's output.
	* src/tgbaalgos/lbtt.cc (fill_todo): Add the 'first' argument
	to designate initial states.
	(lbtt_reachable): Adjust calls to fill_todo.  Handle the
	fake initial state accepting conditions specially.
	* src/tgbaalgos/lbtt.hh: Update comments.

1491
1492
1493
	* src/tgbaalgos/lbtt.cc (lbtt_reachable): Do not end transitions
	guards with -1 in output.

1494
1495
2003-07-08  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1496
1497
1498
1499
1500
1501
1502
	* src/tgbatest/ltl2tgba.cc: Add option -t to output the LBTT automata.
	* src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh: New files.
	* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS): Add lbtt.hh.
	(libtgbaalgos_la_SOURCES): Add lbtt.cc.
	* src/tgba/bddprint.cc (print_sat_handler): Put a space after "!".
	* src/tgbatest/readsave.test: Adjust spaces after "!".

1503
1504
	* src/ltlvisit/dump.cc: Strip useless spot::ltl:: prefixes.

1505
1506
2003-07-07  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1507
1508
1509
1510
	First sketch of the GSPN wrapper objects.
	* iface/gspn/gspn.cc, iface/gspn/gspn.hh: New files.
	* iface/gspn/Makefile.am (libspotgspn_la_SOURCES): Add them.

1511
1512
	* src/tgba/succiter.hh (current_state, current_conditions
	current_accepting_conditions): Mark as const.
1513
1514
1515
	* src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
	src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
	src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
1516
1517
1518
	src/tgba/tgbatranslateproxy.cc, src/tgba/tgbatranslateproxy.hh:
	Likewise.

1519
1520
1521
1522
	* iface/gspn/gspnlib.h: Fit 80 columns.
	[__cplusplus]: Wrap everything under extern "C".

	* src/tgba/succiterconcrete.hh
1523
	(tgba_succ_iterator_concrete::current_acc_): New attribute.
1524
	* src/tgba/succiterconcrete.cc
1525
	(tgba_succ_iterator_concrete::next): Set current_acc_.
1526
	(tgba_succ_iterator_concrete::current_accepting_conditions):
1527
1528
	Simply return it.

1529
1530
1531
1532
1533
	* configure.ac: Output iface/Makefile and iface/gspn/Makefile.
	* iface/Makefile.am, iface/gspn/Makefile.am: New files.
	* Makefile.am (SUBDIRS): Add iface.
	* iface/gspn/gspnlib.h: New file, from Yann and Souheib.

1534
1535
	* src/tgba/tgbabddcoredata.cc (tgba_bdd_core_data::tgba_bdd_core_data,
	tgba_bdd_core_data::translate): Handle all_accepting_conditions.
1536
	* src/tgba/tgbabddconcretefactory.cc
1537
1538
	(tgba_bdd_concrete_factory::finish): Fill all_accepting_conditions.

1539
1540
1541
1542
1543
2003-07-04  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/tgbaalgos/ltl2tgba.cc (ltl_trad_visitor::visit): Declare
	accepting conditions w.r.t. to Now variables, not Next.

1544
1545
2003-07-03  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1546
	* src/tgba/tgbaproduct.cc (tgba_product_succ_iterator::first):
1547
	Simplify, do not call next_non_false_() if either side is done.
1548

1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
	* src/tgba/succiter.hh (tgba_succ_iterator::current_condition):
	State that this is a boolean function.
	* src/tgba/succiterconcrete.hh
	(tgba_succ_iterator_concrete::trans_dest_,
	tgba_succ_iterator_concrete::trans_set_,
	tgba_succ_iterator_concrete::trans_set_left_,
	tgba_succ_iterator_concrete::neg_trans_set_): Remove.
	* src/tgba/succiterconcrete.cc
	(tgba_succ_iterator_concrete::tgba_succ_iterator_concrete,
	tgba_succ_iterator_concrete::first): Adjust to removed members.
	(tgba_succ_iterator_concrete::next): Simplify, transitions
	are no labelled by boolean functions, not only conjunctions.
	Suggested by Denis Poitrenaud.

1563
1564
2003-07-02  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1565
1566
1567
	* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::translate): New
	function.
	* src/tgba/tgbabddcoredata.cc (tgba_bdd_core_data::translate):
1568
	Likewise.
1569
1570
	* src/tgba/tgbabddtranslatefactory.cc
	(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Use
1571
1572
	tgba_bdd_core_data::translate.

1573
1574
1575
1576
1577
1578
1579
	* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::nownext_set):
	New attribute.
	* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc:
	Handle nownext_set.
	* src/tgba/succiterconcrete.cc
	(tgba_succ_iterator_concrete::next): Use nownext_set to simplify.

1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
	Rewrite tgba_succ_iterator_concrete::next for the fourth time
	(or is it the fifth?).

	* src/tgba/succiterconcrete.hh
	(tgba_succ_iterator_concrete::trans_dest_,
	tgba_succ_iterator_concrete::trans_set_,
	tgba_succ_iterator_concrete::trans_set_left_,
	tgba_succ_iterator_concrete::neg_trans_set_): New attributes.
	* src/tgba/succiterconcrete.cc
	(tgba_succ_iterator_concrete::tgba_succ_iterator_concrete): Initialize
	new members.
	(tgba_succ_iterator_concrete::first): Likewise.
	(tgba_succ_iterator_concrete::next): Rewrite.
	* tgba/tgbabddcoredata.hh (tgba_bdd_core_data::acc_set): New attribute.
1594
	* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc:
1595
1596
	Handle acc_set.

1597
1598
1599
1600
1601
1602
2003-07-01  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	* src/tgba/tgbabddtranslatefactory.cc
	(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Translate
	varandnext_set.

1603
1604
2003-06-30  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1605
1606
	* src/tgbaparse/tgbaparse.yy (lines): Expect at last one line.

1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
	* doc/Doxyfile.in (HAVE_DOT): Set to YES to output
	collaboration diagrams.
	* doc/mainpage.dox: Typo.

	* src/tgba/state.hh (state::as_bdd): Delete.
	* src/tgba/tgbaproduct.hh (state_bdd_product): Inherit from state,
	not state_bdd.
	(state_bdd_product::state_bdd_product): Adjust.
	* src/tgba/tgbaproduct.cc (state_bdd_product::state_bdd_product):
	Adjust.
1617

1618
1619
	* src/tgba/succiter.hh (tgba_bdd_succ_iterator::done):
	Mark as const.
1620
	* src/tgba/succiterconcrete.cc
1621
1622
1623
	(tgba_succ_iterator_concrete::done): Likewise.
	* src/tgba/succiterconcrete.hh
	(tgba_succ_iterator_concrete::done): Likewise.
1624
	* src/tgba/tgbaexplicit.cc
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
	(tgba_explicit_succ_iterator::done): Likewise.
	* src/tgba/tgbaexplicit.hh
	(tgba_explicit_succ_iterator::done): Likewise.
	* src/tgba/tgbaproduct.cc
	(tgba_product_succ_iterator::done): Likewise.
	* src/tgba/tgbaproduct.hh
	(tgba_product_succ_iterator::done): Likewise.
	* src/tgba/tgbatranslateproxy.hh
	(tgba_translate_proxy_succ_iterator::done): Likewise.
	* src/tgba/tgbatranslateproxy.cc
	(tgba_translate_proxy_succ_iterator::done): Likewise.
1636

1637
1638
1639
1640
1641
	* src/tgba/succiterconcrete.cc
	(tgba_succ_iterator_concrete::next): Call bdd_satoneset
	on data_.varandnext_set.  The previous implementation
	was wrong for GFa.
	* src/tgba/tgbabddcoredata.hh: Declare varandnext_set.
1642
	* src/tgba/tgbabddcoredata.cc: Handle varandnext_set.
1643

1644
1645
1646
1647
	* doc/Doxygen.in: Enable LaTeX output.
	* doc/Makefile.am (spotref.pdf): New rule.
	(EXTRA_DIST): Add spotref.pdf.

1648
	* src/tgba/tgbabddconcretefactory.cc:
1649
1650
1651
1652
	(tgba_bdd_concrete_factory::tgba_bdd_concrete_factory): New.
	(tgba_bdd_concrete_factory::create_state): Update now_to_next_.
	(tgba_bdd_concrete_factory::finish): Constraint Next variables
	in the relation.
1653
	* src/tgba/tgbabddconcretefactory.hh
1654
1655
	(tgba_bdd_concrete_factory::now_to_next_): New variable.

1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
2003-06-28  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

	Fix errors reported by ICC.

	* src/tgba/state.hh (state_ptr_less_than::operator()): Make it const.
	* src/tgba/tgbaproduct.cc: Include string.hh.
	* src/ltlast/multop.hh (multop::add, multop::add_sorted): Do
	not use qualified names in declarations.
	* m4/gccwarn.m4 (CF_GXX_WARNINGS): Fix GXX test.
	* src/ltlenv/defaultenv.hh, src/ltlenv/defaultenv.cc,
	src/ltlenv/environment.hh: Add virtual destructors.

1668
1669
2003-06-26  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1670
1671
	* Makefile.am (EXTRA_DIST): Add HACKING.

1672
1673
	* configure.ac: Bump version to 0.0c.

1674
1675
	* configure.ac: Bump version to 0.0b.

Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1676
1677
	* INSTALL: New file.

1678
1679
1680
1681
	* src/tgba/ltl2tgba.hh, src/tgba/ltl2tgba.cc: Move ...
	* src/tgbaalgos/ltl2tgba.hh, src/tgbaalgos/ltl2tgba.cc: ... here.
	* src/tgba/Makefile.am, src/tgbaalgos/Makefile.am: Adjust.
	* src/tgba/public.hh: Do not include ltl2tgba.hh.
Alexandre Duret-Lutz's avatar
Alexandre Duret-Lutz committed
1682
1683
	* src/tgbatests/explprod.cc, src/tgbatests/ltl2tgba.cc,
	src/tgbatests/ltlprod.cc, src/tgbatests/mixprod.cc,
1684
1685
	src/tgbatests/reach.cc, src/tgbatests/tripprod.cc: Adjust inclusions.

1686
1687
1688
1689
	* src/tgba/tgbabddcoredata.hh: Fix some Doxygen comments.
	* src/ltlast/formula.hh: More Doxygen comments.
	* src/tgba/tgba.hh: Use <tt> in Doxygen comments.

1690
1691
1692
1693
	* doc/mainpage.dox: New file.
	* doc/Makefile.am (EXTRA_DIST): Add mainpage.dox.
	* doc/Doxyfile.in (INPUT): Add @srcdir@/mainpage.dox

1694
1695
1696
1697
1698
1699
1700
	* src/tgba/succiter.hh: Adjust comments about promises to
	refer to accepting conditions.
	* src/tgba/tgbabddconcretefactory.hh: Likewise.
	* src/tgba/tgbabddcoredata.hh: Likewise.
	* src/tgba/dictunion.cc: Likewise.
	* src/tgba/tgba.hh: Likewise.

1701
1702
1703
	* doc/Makefile.am (doc): Typo.
	* src/ltlvisit/tostring.hh (to_string): Add doxygen comments.
	* src/ltlast/multop.hh (multop::paircmp): Add doxygen comments.
1704
1705
	* src/tgba/tgbaexplicit.hh (tgba_explicit::transtion,
	state_explicit, tgba_explicit_succ_iterator): Add doxygen comments.
1706
1707
	* src/ltlvisit/postfix.hh: Typo.

1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
	* src/ltlast/Makefile.am (ltlastdir, ltlast_HEADERS): New variables.
	(libltlast_la_SOURCES): Move all headers to ltlast_HEADERS.
	* src/ltlenv/Makefile.am (ltlenvdir, ltlenv_HEADERS): New variables.
	(libltlenv_la_SOURCES): Move all headers to ltlenv_HEADERS.
	* src/ltlparse/Makefile.am (ltlparsedir, ltlparse_HEADERS): New
	variables.
	(libltlparse_la_SOURCES): Move all public headers to ltlparse_HEADERS.
	* src/ltlvisit/Makefile.am (ltlvisitdir, ltlvisit_HEADERS): New
	variables.
	(libltlvisit_la_SOURCES): Move all headers to ltlparse_HEADERS.
	* src/misc/Makefile.am (include_HEADERS): Rename as ..
	(misc_HEADERS): ... this.
	(miscdir): New variable.
	* src/tgba/Makefile.am (tgbadir, tgba_HEADERS): New variables.
	(libtgba_la_SOURCES): Move all headers to tgba_HEADERS.
	* src/tgbaalgos/Makefile.am (tgbaalgosdir, tgbaalgos_HEADERS):
	New variables.
	(libtgbaalgos_la_SOURCES): Move all headers to tgbaalgos_HEADERS.
	* src/tgbaparse/Makefile.am (tgbaparsedir, tgbaparse_HEADERS): New
	variables.
	(libtgbaparse_la_SOURCES): Move all public headers to
	tgbaparse_HEADERS.
	* src/tgbaparse/public.hh: Include ltlparse/location.hh, not
	location.hh.

1733
1734
	* doc/Makefile.am (stamp): Prefix $(srcdir) explicitely.

1735
1736
1737
	* m4/buddy.m4 (BUDDY_LDFLAGS): Use $(top_builddir), not $(top_srcdir).
	* src/tgbaparse/Makefile.am (AM_CPPFLAGS): Add $(BUDDY_CPPFLAGS).

1738
1739
1740
1741
1742
1743
	* doc/Makefile.am: Rewrite to run Doxygen whenever Doxyfile.in
	or configure.ac changes.  Distribute the html doc.
	* doc/Doxyfile.in (EXCLUDE_PATTERNS): Complete with
	useless Bison classes.
	(FILE_PATTERNS): Remove *.cc files.

1744
	Distribute BuDDy.  Compile and link with the included version if
1745
1746
1747
	explicitely requested (--with-included-buddy) or if there is now
	stuitable version already installed.

1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
	* buddy/: New directory.  Contains a patched version of BuDDy 2.2.
	* m4/buddy.m4: Make sure the installed BuDDy supports bdd_mergepairs.
	Honor --with-included-buddy and --without-included-buddy.  Define
	the BUDDY_LDFLAGS and BUDDY_CPPFLAGS output variables, and the
	WITH_INCLUDED_BUDDY Automake conditional
	* Makefile.am [WITH_INCLUDED_BUDDY] (MAYBE_SUBDIRS): New variable.
	(SUBDIRS): Prepend $(MAYBE_SUBDIRS).
	* src/Makefile.am (libspot_LDFLAGS): New variable.
	* src/tgba/Makefile.am (AM_CPPFLAGS): Add $(BUDDY_CPPFLAGS).
	* src/tgbaalgos/Makefile.am (AM_CPPFLAGS): Likewise.
1758
	* src/tgbatest/Makefile.am (AM_CPPFLAGS): Likewise.
1759

1760
1761
2003-06-25  Alexandre Duret-Lutz  <aduret@src.lip6.fr>

1762
1763
1764
1765
1766
1767
1768
1769
	* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next):
	Rewrite using bdd_satoneset.  This time it's for real.  (I hope.)
	* src/tgba/succiterconcrete.hh (current_base_,
	current_base_left_): Delete.
	* tgba/tgbabddcoredata.hh (next_set): New variable.
	* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc: Adjust
	to update next_set.

1770
1771
1772
	* src/tgba/bddprint.hh, src/tgba/tgbabddconcretefactory.hh,
	src/tgba/tgbaproduct.hh: Fix Doxygen comments.

1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
	* src/tgba/succiterconcrete.hh (next_succ_set_): Rename as ...
	(succ_set_left_): ... this.
	(current_base_, current_base_left_): New variables.
	* src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::first):
	Reset current_.
	(tgba_succ_iterator_concrete::next): Rewrite.
	(tgba_succ_iterator_concrete::current_state): Simplify.
	(tgba_succ_iterator_concrete::current_accepting_conditions): Remove
	atomic proposition with universal quantification.
	* src/tgba/ltl2tgba.cc (ltl_to_tgba): Normalize the formula.
1783
	* src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::set_init_state):
1784
1785
1786
1787
1788
1789
1790
	Complete the initial state.
	(tgba_bdd_concrete::succ_iter): Do not remove Now variable
	from the BDD passed to the iterator.
	* tgba/tgbabddcoredata.hh (notnow_set, var_set): New variables.
	* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc: Adjust
	to update notnow_set and var_set.

1791
1792
	* src/tgbatest/ltl2tgba.cc: Support -v.

1793
1794
2003-06-24  Alexandre Duret-Lutz  <aduret@src.lip6.fr>