forked from vscosta/yap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes-5.1.html
644 lines (628 loc) · 34.6 KB
/
changes-5.1.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
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
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
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
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<title>YAP change log</title>
<link rel=stylesheet href="changes.css" type="text/css">
</head>
<body>
<hr>
<h1>Changes in YAP-5.1</h1>
<h2>Yap-5.1.4:</h2>
<ul>
<li> .</li>
<li> FIXED: bad locking in p_signal (obs from Paulo Moura).</li>
<li> FIXED: DESTDIR and chr.</li>
<li> FIXED: make term_variables a builtin. (SWI compatibility).</li>
<li> NEW: X is random(Int) (SWI compatibility).</li>
<li> NEW: seletchk/3.</li>
<li> FIXED: do meta-expansion from undefp.</li>
<li> FIXED: handle correctly flatten([_,[_]],L).</li>
<li> FIXED: bad syntax in config.h (patch from Keri Harris).</li>
<li> NEW: format over atom/1.</li>
<li> FIXED: clean up apply_macros in swi mode.</li>
<li> FIXED: clean up meta-expansion.</li>
<li> FIXED: do meta-expansion from undefined call.</li>
<li> NEW: selectchk/3, nth1/3 and nth1/4.</li>
<li> FIXED: YapOpcodes has wrong formats (obs from Bart Demoen).</li>
<li> FIXED: improve format message (obs from Bart Demoen).</li>
<li> NEW: more versions of maplist (obs from Bart Demoen).</li>
<li> FIXED: use import mechanism for SWI's flatten/2 (obs from Bart Demoen).</li>
<li> FIXED: steps towards typed rbtrees plus some cases where one
should not copy the null node (Tom Schrijvers and Bart Demoen).</li>
<li> FIXED: map_tree in trees library (Bart Demoen).</li>
<li> FIXED: bad call to splay_tree (Bart Demoen).</li>
<li> FIXED: bad type for write_x_var in add_info (Bart Demoen).</li>
<li> FIXED: exec/3 should flush streams.</li>
<li> FIXED: load_files/2 compilation_mode to allow :- source and
replace compile by compact.</li>
<li> FIXED: list_concat/2 (fix from Bart Demoen).</li>
<li> NEW: dgraph_reachable/3 and friends.</li>
</ul>
<h2>Yap-5.1.3:</h2>
<ul>
<li> FIXED: try,retry,trust_logical should handle 0 arguments correctly.</li>
<li> FIXED: RecoverSlots should check if there are slots to recover.</li>
<li> FIXED: syntax errors should know they are in an included file.</li>
<li> FIXED: ungetc should not mess with streams.</li>
<li> FIXED: LogTalk has its own distribution (Paulo Moura).</li>
<li> FIXED: Introduce YAP_RunGoalOnce and make sure we actually
reover as much ASP as possible (obs from Jean Mehat).</li>
<li> FIXED: abolish_dynamic should drop FAIL_OP (obs from N
Angelopoulos).</li>
<li> FIXED: cygiwn should ignore SWI console (obs from A N Saravanaraj).</li>
<li> FIXED: avoid null pointer (obs from Nicos Angelopoulos).</li>
<li> FIXED: do not allow duplicate values in rbtrees (obs from Jan
Wielemaker and Rui Mendes).</li>
<li> FIXED: handle SIGPIPE and improve USR1 and USR2 (obs from Nicos
Angelopoulos).</li>
<li> NEW: tmp_file/2 (request from Nicos Angelopoulos).</li>
<li> FIXED: too much pruning on predicate_property/2 (obs from Nicos
Angelopoulos).</li>
<li> FIXED: make sure we return to system mode on failing yesno.</li>
<li> FIXED: debugger was broken on call/n.</li>
<li> FIXED: user:expand_goal should be called before import,
not after.</li>
<li> NEW: add apply SWI library to apply_macros.</li>
<li> NEW: add forall/2 and ignore/1 to system (SWI compatibility).</li>
<li> FIXED: apply_macros should also define the predicates it exports
(obs from Rui Mendes).</li>
<li> FIXED: complain if we want to redefine an imported module.</li>
<li> FIXED: X is -(222222222222) would crash (obs from Jan Wielemaker).</li>
<li> FIXED: more restore fixes.</li>
<li> FIXED: don't ever jump to mid of lu code.</li>
<li> FIXED: bad mem management in threads (obs from Paulo Moura).</li>
<li> FIXED: should init_slots when sucessfully exiting (obs from
Trevor Walker).</li>
<li> FIXED: predicate_property should work for empty dynamic predicates.</li>
<li> FIXED: scanning very large numbers (obs from Ryszard Szopa).</li>
<li> FIXED: regexp core-dump (obs from Ryszard Szopa).</li>
<li> FIXED: handle message_queue_create/1 with vars right (obs from
Paulo Moura).</li>
<li> FIXED: handle thread overflow right (obs from Paulo Moura).</li>
<li> NEW: upgrade clpqr and chr (SWI compatibility).</li>
<li> NEW: expects_dialect/1 directive (SWI compatibility).</li>
<li> NEW: terms:unifiable/3 (SWI compatibility).</li>
<li> NEW: -q flag for silent booting (request from Nicos Angelopoulos).</li>
<li> NEW: verbose prolog_flag fixes silent (obs from Nicos
Angelopoulos).</li>
<li> FIXED: true_file_name/3 was totally broken (obs from Nicos Angelopoulos).</li>
<li> FIXED: Environment variables should only be seen at the beginning
of the file (obs from Samir Genaim.)</li>
<li> FIXED: [ ] should be processed by parser, not by scanner (obs
from Samir Genaim).</li>
<li> NEW: file_base_name/2.</li>
<li> FIXED: in console, count input characters as being output, as they
are also supposed to be displayed by the console manager.</li>
<li> NEW: SWI/SICStus compatible messaging system.</li>
<li> FIXED: YAPSHAREDIR was only used when creating the saved state (obs from
Nuno Fonseca).</li>
<li> FIXED: indexing code could not see end of static clause (obs from
Lisa Torrey).</li>
<li> FIXED: indexing code for dynamic predicates was broken with
profiling (obs from Lisa Torrey).</li>
<li> NEW: time_file/2 (SWI-compatibility).</li>
<li> NEW: module_transparent declaration (SWI-compatibility).</li>
<li> NEW: strip_module/3 (SWI-compatibility).</li>
<li> FIXED: head of if/3, ->/2, *->/2 and once/1 should not be able to
cut up to predicate level. Don't ask me why.</li>
<li> NEW: *->/2 (SWI-compatibility).</li>
<li> NEW: variable_names_may_end_with_quotes allows A' in variable
names (request from Nicos Angelopoulos).</li>
<li> SPEEDUP: quickly check if we are importing an undefined goal.</li>
<li> FIXED: current_predicate/1 should enumerate all non-system predicates
visible (obs from Nicos Angelopoulos).</li>
<li> NEW: time/1 (based on the SWI-Prolog time/1 predicate; request from Paulo Moura).</li>
<li> FIXED: with 64 bits indexing would separate ints from atoms (obs from A N Saravanaraj).</li>
<li> FIXED: duplicated clause when starting from trace (obs from A N Saravanaraj).</li>
<li> FIXED: always remember wchar_t is unsigned in WIN32.</li>
<li> FIXED: more BOM trouble (obs from P Moura).</li>
<li> FIXED: testing for BOM forced incorrect execution of gets (obs
from A N Saravanaraj), also fixed stup call to Ungetc in getc and
friends.</li>
<li> FIXED: bad handling of trail overflow.</li>
<li> FIXED: overflow at entry goal (obs from Paulo Moura).</li>
<li> FIXED: bug with signals while process wasa dying (obs from Paulo Moura).</li>
<li> FIXED: compilation in OSX/64 (patches from Will Benton).</li>
<li> FIXED: do not access erased code (obs from Paulo Moura).</li>
<li> FIXED: clause/3 should not follow fail.</li>
<li> FIXED: make sure we don't ask for 0-sized blocks, minimal 64K.</li>
<li> FIXED: Aux reallocation should always increase aux size.</li>
<li> NEW: start atom garbage collector by default (except for threads).</li>
<li> FIXED: restore indices should run over the indices, and not mess
them up.</li>
<li> FIXED: make sure to always remove try-trust chains.</li>
<li> FIXED: don't adjust garbage when doing stack shift.</li>
<li> FIXED: stack shifter would get ignore big terms.</li>
<li> FIXED: retract and friends should remove mf pointers.</li>
<li> FIXED: small memory leaks and use of uninitialised memory (valgrind).</li>
<li> NEW: char_type/2 and code_type/2 (request from Brian DeVries).</li>
<li> FIXED: memory leak where I'd try to clear refs from an index
block before I released the kids (so the refs would never be released).</li>
<li> FIXED: small glitches with profon.</li>
<li> NEW: allow re-exporting other modules.</li>
<li> FIXED: graph add_ and del_ predicates should have the original
graph as the first argument (obs from A N Saravanaraj).</li>
<li> FIXED: implement atom holds so that the C-interface can make sure
the atom garbage collector will not remove an object.</li>
<li> FIXED: implement JT for CLP(BN).</li>
<li> FIXED: use safe locking to ensure that dynamic predicates
run correctly.</li>
<li> FIXED: use matrices to implement variavel elimination, also fix
some overflow bugs with matrices.</li>
<li> FIXED: Yap_shift_visit assumed we were using AUX DL_MALLOC (obs
from Bernd Gutmann).</li>
<li> FIXED: auxiliary stack overflow in term_vars (obs from Bernd
Gutmann).</li>
<li> FIXED: trail overflow while copying huge terms (obs from Bernd
Gutmann).</li>
<li> NEW: compilation_mode option for load_files (request from
Saverio).</li>
<li> FIXED: predicate table could not enough room while overflowing
(obs from Bernd Gutmann).</li>
<li> FIXED: compile large ground terms outside clauses (obs from Bernd
Gutmann).</li>
<li> FIXED: YAP_LeaveGoal should always backtrack, if asked for, for
deterministic computations (obs from Trevor Walker).</li>
<li> FIXED: in_this_file_before should check predicate module, not
current module.</li>
<li> FIXED: overflow when copying constraints.</li>
<li> FIXED: MkBlob should try to allocate more space.</li>
<li> FIXED: make viterbi more efficient by not generating the whole graph.</li>
<li> FIXED: make static_clause more careful about when static clauses begin.</li>
<li> NEW: support conditional compilation using if/1,elif/1,else/0,endif/0 directives.</li>
<li> FIXED: delay abort until garbage collection or stack shifting is over.</li>
<li> FIXED: grow_trail assumed SREG points to stack top!</li>
<li> FIXED: latest SWI chr.</li>
<li> FIXED: allow abolishing imports.</li>
<li> FIXED: YAP_EnterGoal would set YENV[E_CB] before setting YENV
(obs from Trevor Walker).</li>
<li> FIXED: setarg/3 should always set a global variable.</li>
<li> NEW: define dialect and version_data flags.</li>
<li> NEW: define __YAP_PROLOG__.</li>
<li> FIXED: LAM compilation was broken (obs from Bernd Gutmann).</li>
<li> FIXED: profon was broken.</li>
<li> NEW: send newline even for unleashed ports (obs from Miguel
Filgueiras).</li>
<li> NEW: atom_number/2 for SWI compatibility.</li>
<li> FIXED: fix YAP_LeaveGoal() (obs from Trevor Walker).</li>
<li> FIXED: gc generation should not be an integer: otherwise it can
be misled by global growth.</li>
<li> FIXED: sub_atom 0 should work.</li>
<li> FIXED: have has table of preds with repeated functors (obs from
Bernd Gutmann).</li>
<li> FIXED: major bugs in encoding support (obs from
Paulo Moura).</li>
<li> FIXED: overflow while gc was storing pointers in trail (obs from Angelika Kimmig).</li>
<li> FIXED: implement directive encoding/1 (obs from Paulo Moura).</li>
<li> UPGRADED: to current JPL.</li>
<li> FIXED: incremental garbage collection conflicts with global variables (disable it for now).</li>
<li> FIXED: trail overflow from calling dynamic predicates (obs from Bernd Gutmann).</li>
<li> NEW: add nb_*arg versions.</li>
<li> FIXED: overflow in indexing code (obs from Jesse Davis).</li>
<li> NEW: improve nb_ routines with linkvar and set_shared_var.</li>
<li> NEW: make copy_term share ground-terms and add non-sharing
version, duplicate_term/2.</li>
<li> FIXED: improve efficiency of global variables.</li>
<li> FIXED: simplify Makefile of yap2swi by moving yap2swi.o to main.</li>
<li> FIXED: tabling broken (obs from Will Benton).</li>
<li> FIXED: updates to SWI C-interface and corresponding extensions to
C-interface .</li>
<li> FIXED: be careful to give delayarena exactly what it needs to expand.</li>
<li> FIXED: improve BNT support with CLP(BN).</li>
<li> FIXED: support checking for big_nums and readline. (obs from
Rui Camacho)</li>
<li> FIXED: make thread_create more compatible with SWI. (obs from
Paulo Moura)</li>
<li> FIXED: give startup path to chr. (obs from Paulo Moura)</li>
<li> FIXED: optimise pre-compiled meta-calls.</li>
<li> FIXED: CLP(BN) with BNT.</li>
<li> FIXED: allow dgraphs with graphs of vars.</li>
<li> FIXED: add matrix library documentation.</li>
<li> NEW: start atom_gc by default.</li>
<li> FIXED: array add was not working for dyamic arrays (obs from Rui
Camacho).</li>
<li> FIXED: add MATLAB interface docs.</li>
</ul>
<h2>Yap-5.1.2:</h2>
<ul>
<li> FIXED: clauses with floats/large ints should be pinnned (obs from Bernd
Gutmann).</li>
<li> FIXED: indexing-code emulator should update S (obs from Rui
Camacho).</li>
<li> FIXED: error with atoms in arithmetic messages (obs from Paulo Moura).</li>
<li> FIXED: bug in meta-calls to external C code (obs from Bernd Gutmann).</li>
<li> NEW: matlab interface.</li>
<li> FIXED: search for libraries right.</li>
<li> FIXED: alarm used alarm(2) but it should use setitimer(2) so that
timeout can work with millisecs (obs from Bernd Gutmann).</li>
<li> FIXED: add . to -g goal (obs from Paulo Moura).</li>
<li> FIXED: min_list (obs from Angelika, Bernd & Niels).</li>
<li> FIXED: issues with C-Interface (obs from Trevor Walker).</li>
<li> FIXED: mktime needs to know if daylight time savings are on
(obs from Bernd Gutmann).</li>
<li> FIXED: handle atom lookup and functor overflows while parsing
(obs from Bernd Gutmann).</li>
<li> FIXED: get rid of static structures for modules (obs from Bernd
Gutmann).</li>
<li> FIXED: SREG might be lost on trail/heap overflow, and that would
confuse later pruning.</li>
<li> FIXED: UNICODE16 was broken.</li>
<li> NEW: support for BOM.</li>
<li> FIXED: debugging and clause/3 over tabled predicates would kill YAP.</li>
<li> FIXED: memory expansion in deallocate would lose cut pointer.</li>
<li> FIXED: make growtrail do more than grow chunks of 64KB.</li>
<li> FIXED: growtrail was broken if called while doing variable shunting.</li>
<li> FIXED: by default,allow defining infix+prefix/posfix instead of
using standard ISO.</li>
<li> FIXED: nb_current was unimplemented (obs from Pablo Beltran).</li>
<li> FIXED: by default,allow defining infix+prefix/posfix instead of
using standard ISO.</li>
<li> NEW: --with-max-workers tells us how many threads we can have (request from Paulo Moura).</li>
<li> FIXED: wchar_t in the WIN32 is unsigned and 16 bits.</li>
<li> FIXED: stack overflow when growing the delay stack.</li>
<li> FIXED: overflows with MIN_INT (obs from Marius Filip).</li>
<li> NEW: make debugger more like standard debuggers (obs from Miguel Filgueiras).</li>
<li> NEW: glist_void_varx was broken (obs from Marius Filip).</li>
<li> NEW: unify_with_occurs_check/2 was broken with extensions (obs from Aline Paes).</li>
<li> NEW: stack_dump/0 from Trevor.</li>
<li> NEW: with_mutex/2.</li>
<li> NEW: call_cleanup/2 and call_cleanup/3 at the request of Paulo
Moura and Christian.</li>
<li> FIXED: garbage collector would not understand bindings to mavars in
tabling version.</li>
<li> FIXED: cut might not prune correctly around meta-call (obs by
Trevor Walker).</li>
<li> NEW: keep history around (use nb and friends).</li>
<li> NEW: fix determinsitic debugging.</li>
<li> NEW: make debugger compatible with threads (use nb and friends).</li>
<li> FIXED: debugger was confused when crossing between regions.</li>
<li> NEW: unify_with_occurs_check was very broken (obs from Aline Paes).</li>
<li> NEW: partial support for UNICODE.</li>
<li> FIXED: ÿ has ISO-LATIN1 code 255, so it would be confused with EOF
(obs from Miguel Filgueiras).</li>
<li> FIXED: mess with \+ meta-call and modules (obs from Nicos Angelopoulos).</li>
<li> FIXED: reconsult with spy was broken (obs from Miguel Filgueiras).</li>
<li> FIXED: mess with EOF and open (obs from Nicos Angelopoulos).</li>
<li> FIXED: make use_module/3 handle case where module is given.</li>
<li> FIXED: library_directory/1 was not being used.</li>
<li> FIXED: style_checker was failing on DCGs (obs from Miguel Filgueiras).</li>
<li> FIXED: +inf is a number (obs from Trevor Walker).</li>
<li> FIXED: if peek finds EOF get should not return an error (obs
from Miguel Filgueiras).</li>
<li> FIXED: allow overflows on timestamps.</li>
<li> FIXED: more fixes for new dynamic code and stack shifting.</li>
<li> FIXED: if we can generate index on an sub-argument and the
argument is unbound we should generate the code, suspend
on it, and then call the system again.</li>
<li> FIXED: avl_new/1 (obs from Miguel Filgueiras).</li>
<li> FIXED: broken all/3 (obs from Miguel Filgueiras).</li>
<li> FIXED: make 128 maximum disjunction depth (obs from Nicos Angelopoulos).</li>
<li> FIXED: first cut at using timestamps with logical updates.</li>
<li> FIXED: indexing on doubles wasn't working properly.</li>
<li> FIXED: sending large lists of atomics to DB was very, very slow.</li>
<li> FIXED: make library_directory/1 better protected.</li>
<li> FIXED: make YAP smarter at finding libraries in WIN32.</li>
<li> NEW: data structures using global variables: queues, heaps and
beam search support.</li>
<li> NEW: global variables a la hProlog, includes major changes in
stack shifter, garbage collector, and setof.</li>
<li> FIXED: do not call garbage collector if the space we need is more
than what is available (obs from Nicos Angelopoulos).</li>
<li> FIXED: recordaifnot(a,_,_) was broken (obs from Jesse Davis).</li>
<li> SPEEDUP: some speedups to garbage collector (obs from Nicos Angelopoulos).</li>
<li> NEW: a first cut at readutil.yap (request from Stefan Weinbrenner).</li>
<li> FIXED: compile | as a disjunction (obs from Ole Edsberg).</li>
<li> NEW: rbqueues keeps a simple db queue</li>
<li> NEW: cut_up_to_next_disjunction/0 tries to prune until the closest
choice-point from the parent disjunction (think query packs).</li>
<li> FIXED: error condition when we expand to maximum number of variables.</li>
<li> FIXED: bug when variable list in parser overflows.</li>
<li> FIXED: min_list (obs from Filip Zelezny).</li>
<li> FIXED: -l and -L options (again?).</li>
<li> FIXED: if we cannot read more chars in saved state we're dead.</li>
<li> FIXED: termination info for failed and detached threads (obs Paulo Moura).</li>
<li> FIXED: check_callable should check for modules (obs Paulo Moura).</li>
<li> NEW: add thread_sleep/1, mostly works like system:sleep/1 (request from Paulo Moura).</li>
<li> NEW: add select/3 and intersection/3 to SWI emulation.</li>
<li> FIXED: always keep in mind that Yap_WakeUp may change H (would
break chr).</li>
<li> FIXED: add_clause of new predicate could get in loop.</li>
<li> FIXED: don't have to print anything if there is not anything to
print.</li>
<li> FIXED: current_thread/2 should fail if called with bad alias or
ID (obs Paulo Moura).</li>
<li> FIXED: correct code statistics with DL_MALLOC or SYSTEM_MALLOC.</li>
<li> NEW: use true_file_name for file operations in system library (obs Paulo Moura).</li>
<li> NEW: make YAP large address aware on WIN32 (should be able to
allocate up to 3GB).</li>
<li> FIXED: WIN32 may have a lot of fragmentation so several memory holes may be active at the same time, keep up to 32 open holes.</li>
<li> FIXED: WIN32 may move functions without moving emulator: always fix C-functtions.</li>
<li> FIXED: use $SYSTEMDRIVE to install YAP in WIN32.</li>
<li> FIXED: compilation bug in arg(X,1,A).</li>
<li> NEW: extend interface to pass chunks of integers/floats.</li>
<li> FIXED: get rid of some more global variables.</li>
<li> NEW: thread_yield/0 (request Paulo Moura).</li>
<li> FIXED: current_thread was not returning aliases (obs Paulo Moura).</li>
<li> FIXED: AuxSp was not properly initialised for new threads (obs Paulo Moura).</li>
<li> FIXED: recusive indexing over unbound compound terms was broken
(obs Ricardo Lopes).</li>
<li> FIXED: toplevel_print_options and debugger_print_options was
broken and undocumented (obs Ashwin Srinivasan).</li>
<li> NEW: lock streams while using them (concurrent writing is still allowed).</li>
<li> FIXED: make current_op only walk over atoms.</li>
<li> FIXED: memory corruption when copying consult stack (obs Paulo Moura).</li>
<li> FIXED: get rid of some silly locks.</li>
<li> FIXED: don't compare block top with <= (obs Paulo Moura).</li>
<li> FIXED: ! was not pruning right in p_execute_clause (obs Nicos
Angelopoulos).</li>
<li> FIXED: system/1 and shell/1 should check return code (obs Nicos
Angelopoulos).</li>
<li> FIXED: thread_peek_message should use aliases (obs Paulo Moura).</li>
<li> FIXED: garbage collector should not rewrite cp_tr fields until
after marking (obs Paulo Moura).</li>
<li> FIXED: garbage collector was allowing garbage trail entries for
multi-assignment variables. Namely, old var value might point to new space
(obs Paulo Moura).</li>
<li> FIXED: thread aliases were being cleaned up just after being
installed (obs Paulo Moura).</li>
<li> FIXED: rb_partial_map was broken.</li>
<li> NEW: wdgraph and wundgraph libraries, for weighted graphs.</li>
</ul>
<h2>Yap-5.1.1:</h2>
<ul>
<li> FIXED: compatibility fixes .</li>
</ul>
<h2>Yap-5.1.0:</h2>
<ul>
<li> NEW: new implementation of association lists, based on red-black
trees. </li>
<li> NEW: undgraph library, based on dgraphs. </li>
<li> NEW: dgraphs library, towards a more efficient implementation of
directed graphs. </li>
<li> NEW: rb_update, rb_apply, rb_visit, rb_keys and rb_map. </li>
<li> FIXED: use rb_ prefix for all red black predicates. </li>
<li> FIXED: got confused about position of syntax error (obs Mark
Goadrich). </li>
<li> FIXED: compiling inline lists would compile the lists and then
some more (obs Nicos Angelopoulos). </li>
<li> FIXED: message queue ops should not fail silently (obs Paulo
Moura). </li>
<li> FIXED: stream bugs in iopreds.c (Takeyuki SHIRAMOTO). </li>
<li> FIXED: extra backtrack in informational_messages (obs Nicos
Angelopoulos).</li>
<li> NEW: abolish_module/1 at the request of Nicos Angelopoulos.</li>
<li> FIXED: variable shunting needs HB initialised before any marking
takes place!!!</li>
<li> FIXED: handle possible overflow in term_variables</li>
<li> FIXED: check for singleton warnings in .yap files, try to catch
bugs before they bite people.</li>
<li> FIXED: make threads compile again, fix some compilation warnings.</li>
<li> FIXED: use different chains for dead static clauses, static
indices and dead mega clauses. Extend dead clauses with next field so that
they can added into chain. Fix restore to see dead clauses.</li>
<li> FIXED: check if indexing code is live before purging it (obs
Bernd Gutmann).</li>
<li> FIXED: pass backtrackable C-preds all flags they ask for (obs
Tiago Soares).</li>
<li> FIXED: compilation with dynamic libraries and JPL compilation.</li>
<li> FIXED: typo in manual (obs Bernd Gutmann).</li>
<li> NEW: track the current block more aggressively, to avoid
expand_index taking too long searching for a block.</li>
<li> FIXED: if LU indices have groups, we should create
try-retry-trust sequences immediately, otherwise LU semantics can be
compromised (obs Bernd Gutmann).</li>
<li> FIXED: when cleaning trail, gc would not always clean value
field! (obs Remko Troncon).</li>
<li> FIXED: when cleaning megaclauses, clean flag too.</li>
<li> FIXED: don't put array twice in list of live arrays (gc would loop).</li>
<li> NEW: debugger will not backtrack over complete deterministic computations.</li>
<li> NEW: debugger can show CP stack.</li>
<li> NEW: internal procedure to show choice-point stack.</li>
<li> FIXED: Incremental GC could still get confused after backtracking
over GEN marker. Associate GEN marker with timestamp and make sure
we only use current GEN markers (obs Mark Goadrich).</li>
<li> FIXED: Yap on OSX should not make CreepFlag a register, as this
breaks Interrupt Handling. Also, it seems that if I do not reserve
r13, GCC will use r14 for its own evil purposes.</li>
<li> FIXED: make Yap files usable again as a script (obs Ales Kozumplik).</li>
<li> FIXED: silent informational_messages was being ignored (obs Nicos Angelopoulos).</li>
<li> FIXED: initialization should only be performed after all
consulted files are done.</li>
<li> FIXED: garbage collector now makes refs to erased LU clauses point
to LogUpdErasedMarker.</li>
<li> FIXED: get rid of old code referring to LogUpds from within ImmediateSemantics.</li>
<li> FIXED: indexing code would get confused about size of inlined
float/1 (obs Paulo Moura).</li>
<li> FIXED: broken SIGINT with tkyap (Keri Harris).</li>
<li> FIXED: indexing of bignums was broken, just disable it for now.</li>
<li> FIXED: pipe open was returning the same descriptor twice (obs Christian Thaeter).</li>
<li> FIXED: style check should compare with true file name.</li>
<li> FIXED: ^c should take care about TR and B.</li>
<li> FIXED: don't pass a pointer to a mpz_t. (obs Nuno Fonseca)</li>
<li> FIXED: handle heap overflow from huge atoms in
Yap_LookupAtom/scanner (obs Nuno Fonseca).</li>
<li> FIXED: bignum was using int where should be long int (obs Roberto Bagnara).</li>
<li> NEW: x86_64 should have registers, right? First cut at using them.</li>
<li> FIXED: call_n would break under 64 bits, an int problem.</li>
<li> FIXED: more compilation problems if GMP not there (obs Remko Troncon).</li>
<li> FIXED: make syntax error report the line where the bug was (obs Jude Shavlik).</li>
<li> FIXED: ok, MkBigInt shouldn't free the bigint.</li>
<li> FIXED: MkBigInt already frees bigint.</li>
<li> FIXED: don't pass a pointer to a mpz_t. (obs Nuno Fonseca)</li>
<li> FIXED: YENV may be an HW register (could break some tabling code)
(obs Remko Troncon) </li>
<li> FIXED: All YAAM instructions are now brackedted, so Op introduced an { and EndOp intr
oduces an }. This is because Ricardo assumes that. </li>
<li> FIXED: compile attvars when COROUTING is undefined. </li>
<li> FIXED: compiler warnings due to c-interface changes</li>.
<li> FIXED: scanner would convert LONG_MIN to bigint, but it can be
represent as a LONG; fixed by using mpz_fits_slong_p (obs Roberto Bagnara). </li>
<li> FIXED: indexing cut should stop looking after a cut!!!! (obs Paulo Moura).
<li> FIXED: mktime was broken in WIN32. </li>
<li> FIXED: don't assume a fixed point for WIN32 memory allocation. </li>
<li> FIXED: don't call goal_expand when looking for handlers of undefined procedures. </li>
<li> FIXED: always walk through modules in the same order when waking
up variables (otherwise, breaks CLP(QR)). </li>
<li> NEW: SWI-like yap_flag(float_format,_). </li>
<li> FIXED: change C-interface to use new interface. </li>
<li> FIXED: << and >> should handle overflows. </li>
<li> FIXED: mod and rem now implement ISO semantics (hopefully). </li>
<li> FIXED: change implementation of bigints to be more like GMP style. </li>
<li> FIXED: handle assert/retracts and gprof overhead right. </li>
<li> FIXED: indexing code was not setting up properly registers on longjmps. </li>
<li> FIXED: use RISC architecture on MacOsX (__POWERPC__ + _POWER). </li>
<li> FIXED: init system predicates should generate full static clause. </li>
<li> NEW: tabling does not conflit with depth limit (Trevor Walker). </li>
<li> NEW: make scanner restartable on seekable files (Nuno Fonseca). </li>
<li> NEW: improve error discovery within scanner (Jude Shavlik). </li>
<li> NEW: change event profiler to do profiling online and
off-line. </li>
<li> NEW: routine to find clause/pred </li>
<li> NEW: always end clauses with Ystop START, so that we can refer
back to the clause's beginning. </li>
<li> NEW: always have a pointer to Pred in clauses, so that we can
find current predicate. </li>
<li> NEW: heapgc should now be concurrent when using threads. </li>
<li> FIXED: heapgc wo tags can handle trail overflows right. </li>
<li> NEW: heapgc wo tags does not write on the collected areas during marking. </li>
<li> FIXED: dif/2 might get into trouble restoring assignments to
attributes. </li>
<li> NEW: Yap_DebugPlWrite and Yap_DebugErrorPutc for those debugging
moments. </li>
<li> FIXED: get rid of dead internal variable MutableList. </li>
<li> NEW: write_depth/3 for very large compound terms. </li>
<li> FIXED: new bug in garbage collection. </li>
<li> FIXED: overflow handling in DB/AttVars was resetting old var, and
wasn't resetting trail. </li>
<li> FIXED: when rebuilding DB term with attvars, set global var to
point to attvar. </li>
<li> NEW: add school CLP(BN) example. </li>
<li> NEW: add sc CLP(BN) example. </li>
<li> FIXED: make exception port more like a true port. </li>
<li> FIXED: don't run ^ in setof if there are no excess variables. </li>
<li> FIXED: prolog_load_context(directory) relied on dead code. </li>
<li> FIXED: some small beautifications for system/1, getcwd/1, sh/1, rename/2. </li>
<li> NEW: operating_system_error. </li>
<li> FIXED: Restore could not recover DL_MALLOC info and was not recovering
DBTerms correctly. </li>
<li> FIXED: with locking field, AtomNil and friends might not be
aligned, and would be confused with int. </li>
<li> FIXED: variables should always be reset when doing trail
expansion from the parser, even if there is no shifting (obs Trevor
Walker). </li>
<li> FIXED: growglobal with realloc was broken. </li>
<li> FIXED: with threads, self-deadlocking in new array codes. </li>
<li> FIXED: in tabling, use malloc when AllocCodeSpace fails. </li>
<li> FIXED: in tabling don't look inside cp_ap == NULL and fix recent
bug in walking dependency frames. </li>
<li> FIXED: with tabling ASP sometimes was miscalculated, causing
trouble with stack shifter (obs Kostis Sagonas). </li>
<li> FIXED: ~D should print bignums (obs Jude Shavlik). </li>
<li> FIXED: format's ~d and ~D were broken (obs Jude Shavlik). </li>
<li> FIXED: profiler should not talk about hidden predicates or idb entries. </li>
<li> FIXED: recentg change in setof could bind argument (obs
Jude Shavlik). </li>
<li> FIXED: EOF (-1) at debugger prompt would generate exception (obs
Jude Shavlik). </li>
<li> FIXED: ^C was very broken: break was not accepted, and debug,
trace and statistics did not work at all (obs Jude Shavlik). </li>
<li> FIXED: format_has_tabs could miss tab signs (obs Jude Shavlik). </li>
<li> FIXED: plug holes in memory allocation from scanner (obs
Mark Goadrich). </li>
<li> FIXED: instrument memory allocation when using system malloc. </li>
<li> FIXED: adjust_cp_hbs was readjusting consumer choice-points (it
can only adjust hb once) (obs Remko Troncon). </li>
<li> FIXED: try to make GC trace message "marked N vars" intelligible. </li>
<li> FIXED: garbage collection of mabindings was broken with tabling
(obs Remko Troncon). </li>
<li> FIXED: did not initialise tabling variables
(obs Remko Troncon). </li>
<li> FIXED: should have meta-predicate definitions for calls and
discontiguous. </li>
<li> FIXED: have discontiguous as a builtin, not just as a
declaration (obs Jude Shavlik). </li>
<li> FIXED: if first argument was unbound, comparisons might be
called with second argument undereferenced!! </li>
<li> FIXED: strip ^ before doing execute in setof or bagof. </li>
<li> FIXED: use CONST declarations in interface (thanks to Roberto Bagnara). </li>
<li> FIXED: absmi should consult PREG, not P (obs Remko Troncon). </li>
<li> FIXED: bad init in tabling code. </li>
<li> FIXED: YAP_MkBigIntTerm was broken (obs Roberto Bagnara). </li>
<li> NEW: update documentation to support new CLP(R) and CHR packages. </li>
<li> FIXED: regression in clpbn/utils.yap. </li>
<li> NEW: put_attrs/2. </li>
<li> FIXED: don't install CLP unless coroutining && rational trees are
active. </li>
<li> FIXED: syntax error in ypp.yap (obs Paulo Moura). </li>
<li> FIXED: save/restore should be as usual if using YAP allocation. </li>
<li> FIXED: save/restore FZ regs. </li>
<li> FIXED: $loop_stream could be defined early in boot process. </li>
<li> NEW: make rational trees default. </li>
v<li> NEW: make enable-max-memory default. </li>
<li> FIXED: allow people to disable indexing (obs Ricardo Lopes). </li>
<li> FIXED: make undefined exception more ISO like (obs Paulo Moura). </li>
<li> FIXED: add missing dependency in chr's Makefile.in. </li>
<li> FIXED: fix corruption in ypp.yap. </li>
<li> FIXED: ~@ makes format a meta-predicate. </li>
<li> FIXED: format should do immediate exit on exception (from Prolog call). </li>
<li> FIXED: make format reentrant and thread-safe (format may call itself). </li>
<li> FIXED: don't complain if a module is loading a reexported
predicate and the original predicate. </li>
<li> FIXED: change a few defaults for SWI compatibility. </li>
<li> FIXED: library prandom was broken (obs Nuno Fonseca). </li>
<li> NEW: add max_tagged_integer and min_tagged_inter prolog_flags. </li>
<li> NEW: add ~@ option to format. </li>
<li> NEW: memberchk/2 is like builtin in SWI emulation lib. </li>
<li> NEW: SWI like prolog_source_location/2 </li>
<li> FIXED: $loop_stream usage was broken. Fix $fetch_stream_alias to
be bidirectional.</li>
<li> FIXED: allow nb_set followed by b_set, bheakkkk! The other way round
is still not allowed.</li>
<li> NEW: from SWI maplist/2, maplist/3, maplist/4.</li>
<li> NEW: call/2, call/3, call/4.</li>
<li> FIXED: disable mutables in SWI mode. </li>
<li> FIXED: safe C-preds should always use P when calling garbage
collector, aarrggh :-(, CP use found in GetTermFromArray.</li>
<li> NEW: SWI-like ord_empty/1 and ord_memberchk/2 in library(ordsets).</li>
<li> FIXED: safe call_c should check for signals before calling a built-in.</li>
<li> NEW: -p option allows setting path from command line.</li>
<li> FIXED: during grow, heap references should not be followed from trail.</li>
<li> FIXED: \= was not resetting wakeups correctly.</li>
<li> FIXED: copy_term was broken if attrs were an unbound variable.</li>
<li> FIXED: during garbage collection, heap references should be
copied to trail, and that's it.</li>
<li> FIXED: excessive backtracking in multifile declaration.</li>
<li> NEW: allow style_check(singleton) and style_check(-singleton).</li>
<li> NEW: SWI module now makes atom_concat/{2,3} behave like atomic_concat/{2,3}.</li>
<li> NEW: add SWI-like copy_term_nat/2.</li>
<li> NEW: add SWI-like get_time and convert_time, but using integers, not floats.</li>
<li> NEW: add SWI-like working_directory/2 and chdir/2.</li>
<li> NEW: add append/3 and member/2 to SWI module.</li>
<li> FIXED: use bootstrap/1 to load up system.</li>
<li> FIXED: use_module/3 did not get info on loaded_module.</li>
<li> NEW: use_load_files as main file loading option.</li>
<li> FIXED: broken do_print_message for defined_elsewhere.</li>
<li> FIXED: debugger option.</li>
<li> FIXED: trace through undefined predicates correctly.</li>
<li> FIXED: WIN32 missing include files (untested)</li>
<li> FIXED: -L trouble (my thanks to Takeyuchi Shiramoto-san)!</li>
<li> FIXED: debugging of backtrable user-C preds would core dump.</li>
<li> FIXED: redeclaring a C-predicate as Prolog core dumps.</li>
<li> FIXED: badly protected YapInterface.h.</li>
<li> FIXED: break/0 was failing at exit.</li>
<li> FIXED: YAP_cut_fail and YAP_cut_succeed were different from manual.</li>
<li> FIXED: tracing through data-bases could core dump.</li>
<li> FIXED: cut could break on very large computations.</li>
<li> FIXED: first pass at BigNum issues (obs Roberto Bagnara).</li>
<li> FIXED: debugger could get go awol after fail port.</li>
<li> FIXED: weird message on wrong debugger option.</li>
<li> FIXED: cases where restore/1 could break.</li>
<li> NEW: SWI predicates now update prolog module</li>
<li> NEW: port of Leslie's CLP(R) system.</li>
<li> NEW: generations in garbage collector.</li>
<li> SPEEDUP: optimise some garbage collector code.</li>
</ul>
<hr>
</body>
</html>