forked from vscosta/yap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes4.3.html
1601 lines (1511 loc) · 102 KB
/
changes4.3.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
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
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
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!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 YAP4.5</h1>
<h2>Yap-4.5.3:</h2>
<li></li>
<ul>
</ul>
<hr>
<h1>Changes in YAP4.3</h1>
<h2>Yap-4.3.23:</h2>
<ul>
<li>UPDATE: new Logtalk version (2.15.2).</li>
<li>NEW: <code>hide_predicate/1</code>. (request from Paulo Moura)</li>
<li>NEW: support condor.</li>
<li>FIXED: bug in waking up attached variables ([email protected]).</li>
<li>FIXED: extra manual bugs (Maleeha Qazi).</li>
<li>UPDATE: updated <code>configure.in</code> for smooth YAP compilation on MacOS X 10.2.</li>
<li>FIXED: <code>rint</code> is not <code>truncate/1</code> (Paulo Moura).</li>
<li>FIXED: recent change broke debugger help message (Nuno Fonseca).</li>
<li>NEW: <code>call_with_args/n</code> simulates <code>call/n</code>.</li>
<li>FIXED: have different types for <code>Atom</code>, <code>Term</code>, and <code>Functor</code> in <code>c_interface</code>.</li>
<li>FIXED: make <code>call_with_args/*</code> check if first arg is atom.</li>
<li>FIXED: make <code>cd/1</code> complain on bugs.</li>
<li>FIXED: always do something on <code>gmp</code> allocation (request from
Roberto Bagnara).</li>
<li>FIXED: always allow abolish on static predicates.</li>
<li>UPDATE: include new <code>apply_macros</code> code from Erick Alphonse,
and acknowledge J. Schimpf.</li>
<li>FIXED: <code>YapRunGoal</code> (Roberto Bagnara).</li>
<li>NEW: <code>term_position</code> option for <code>read_term</code> (Nicos)</li>
<li>UPDATE: fixed <code>shell/1</code> and <code>shell/2</code> in library(system). (Nicos)</li>
<li>FIXED: <code>\newline</code> in strings (Roberto Bagnara). </li>
<li>FIXED: avoid reincluding of <code>c_interface.h</code> (Roberto
Bagnara). </li>
<li>FIXED: make <code>c_interface.h</code> compilable in C++ (Roberto
Bagnara). </li>
<li>FIXED: garbage collector should recover dynamic clauses
and logical semantics DB. Trust gc to recover active clauses </li>
<li>FIXED: <code>read_vars</code> was called with unbound argument.</li>
<li>FIXED: backtrackable C-predicates (thanks to Christophe
Billard for sending the file).</li>
<li>FIXED: new options for <code>file_property</code> (Nicos).</li>
<li>FIXED: check unification result in <code>file_property</code> (Nicos).</li>
<li>FIXED: <code>yap_flag(fileerrors)</code> (Nicos).</li>
<li>FIXED: clauses with blobs cannot be simply abolished.</li>
<li>FIXED: retract of undefined predicate makes it dynamic.</li>
</ul>
<h2>Yap-4.3.22:</h2>
<ul>
<li>FIXED: default syntax error mode should be error.</li>
<li>NEW: atom garbage collector.</li>
<li>FIXED: recover space for logical update semantics.</li>
<li>FIXED: smash references to deleted entries with logical
update semantics.</li>
<li>FIXED: make instance of deleted fail for logical
update semantics.</li>
<li>FIXED: <code>garbage_collect</code> should call <code>do_gc</code> with <code>P</code>, not <code>CP</code>.</li>
<li>FIXED: use <code>YAPSHAREDIR</code> as in manual (Ashwin Srinivasan).</li>
<li>FIXED: warning message about <code>unify_extension</code>.</li>
</ul>
<h2>Yap-4.3.21:</h2>
<ul>
<li>FIXED: syntax errors dumped all numbers as if small integers.</li>
<li>UPDATE: new Logtalk version (2.10.0).</li>
<li>FIXED: debugger could enter infinite loop if spying
<code>portray</code> (Steve Moyle).</li>
<li>FIXED: <code>predicate_property(P,source)</code> (Ines Dutra).</li>
<li>NEW: use system regex routines if available.</li>
<li>FIXED: profiling.</li>
<li>FIXED: Yap in CYGWIN, including DLLs.</li>
<li>NEW: <code>variable_in_term/2</code> at <code>library(terms)</code>.</li>
<li>FIXED: debugger would not step through <code>[-F]</code>.</li>
<li>FIXED: <code>unix(argv(L))</code> was doing bad type checking.</li>
<li>FIXED: <code>assert((a:- m:[f]))</code> would core dump.</li>
<li>FIXED: gc in <code>dexecute</code> should not use current <code>Y</code>, instead if
should look at parent's <code>Y</code> (Ines Dutra).</li>
<li>FIXED: do not loop on unbound metacalls.</li>
<li>FIXED: do not assert clauses if the predicate is active
and you had to abolish first.</li>
<li>FIXED: always allow asserting over static predicates.</li>
<li>FIXED: disable cache when checking whether static was
in use.</li>
<li>FIXED: heap overflow while storing <code>db</code> term.</li>
<li>FIXED: <code>trust_fail</code> should be preceeded by an <code>sla</code>.</li>
<li>FIXED: make <code>sla</code> point to current pred, get rid of current
pred in bitmap.</li>
<li>FIXED: <code>MkVarTerm</code> in <code>c_interface.h</code> (Christophe Billard)</li>
<li>FIXED: get rid of unnecessary <code>USE_OFFSETS</code></li>
<li>FIXED: stupid limit on Heap Size with <code>LowTags</code>. (David Page)</li>
<li>FIXED: make <code>fileerrors</code> default for SICStus. (Nicos Angelopoulos)</li>
<li>FIXED: <code>g(X) :- (Z is 2*X; a(Z))</code>: <code>Z</code> cannot be seen as a free
var. (Nicos Angelopoulos).</li>
<li>FIXED: <code>atom_concat</code> was not allocating heap correctly (Nicos Angelopoulos).</li>
<li>NEW: <code>ord_intersection/4</code> (Nicos Angelopoulos).</li>
<li>NEW: <code>file_search_path/2</code> (Nicos Angelopoulos).</li>
<li>FIXED: fix <code>yap_flag(host_type)</code>.</li>
<li>FIXED: make Yap compile under VC++ again.</li>
<li>FIXED: don't try to handle <code>X/0</code> the ISO way.</li>
<li>FIXED: make Yap runnable in WIN98.</li>
<li>FIXED: access to non-existing dynamic array should not core-dump.</li>
<li>FIXED: <code>abolish(_)</code> should give error in ISO mode.</li>
<li>NEW: <code>yap_flag(argv,L)</code> (Nicos Angelopoulos).</li>
<li>FIXED: make <code>user</code> the name of the first three streams.</li>
<li>NEW: <code>reachable/3</code> in ugraphs (Nicos Angelopoulos).</li>
<li>NEW: <code>-f</code> flag in boot (Nicos Angelopoulos).</li>
<li>FIXED: manual html warnings (Nicos Angelopoulos).</li>
<li>NEW: <code>yap_flag(informational_messages)</code> allows disabling
informational messages (Nicos Angelopoulos).</li>
<li>FIXED: <code>lcc</code> would choke when compiling Yap.</li>
<li>FIXED: <code>simplesim</code> miscompilations.</li>
<li>FIXED: more SICStus like top-level messaging (Nicos Angelopoulos).</li>
<li>FIXED: missing WIN32 interface declaration (Christophe Billard).</li>
<li>FIXED: <code>alarm</code> was not working in WIN32 (Tolga Konick).</li>
<li>FIXED: <code>get0/2</code> and <code>get/2</code> should call <code>$get</code> directly.</li>
<li>CHANGE: make full leash default.</li>
<li>NEW: continue creeping after a goal. (Ines Dutra)</li>
<li>FIXED: <code>creep</code> should not creep the whole debugger.</li>
<li>FIXED: <code>break</code> should not start the whole system.</li>
<li>FIXED: <code>abolish</code> could backtrack and give weird error (Nicos
Angelopoulos).</li>
<li>FIXED: make <code>consult</code>, <code>use_module</code>, and friends meta-predicates
(Nicos Angelopoulos).</li>
<li>FIXED: make <code>use_module</code> a directive.</li>
<li>FIXED: <code>predicate_property/2</code> to handle modules correctly
(Nicos Angelopoulos).</li>
<li>FIXED: stack expansion in meta-execution.</li>
<li>FIXED: <code>depth_limit</code> was not handled correct in
meta-execution of conjunctions (Rui Camacho).</li>
<li>NEW: new option for error handling in the debugger.</li>
<li>UPDATE: new version of Logtalk.</li>
<li>FIXED: heap library.</li>
<li>NEW: <code>empty_heap/3</code>.</li>
<li>FIXED: some system predicates are exported outside the
prolog module.</li>
<li>FIXED: calls to <code>open/3</code>, <code>current_stream/3</code>, <code>tab/{1,2}</code>, and <code>format/3</code>
might interfere with trace.</li>
<li>NEW: new <code>catch/3</code> and <code>throw/1</code> mechanism.</li>
<li>FIXED: <code>p_socket</code> would crash if no streams were
available (Ines Dutra).</li>
<li>FIXED: CLPQR complaints on importing private predicates.</li>
</ul>
<h2>Yap-4.3.20:</h2>
<ul>
<li>FIXED: <code>'aaaa''xaaa'</code> was inserting <code>x</code> instead of <code>'</code> (Miguel Filgueiras).</li>
<li>FIXED: fix CHR using merge from prolog instead of ordsets.</li>
<li>FIXED: store infinite terms in DB properly (at last).</li>
<li>FIXED: <code>execute_7</code> (Paulo Moura).</li>
<li>FIXED: expand meta-call arguments even if they are
built-ins (otherwise breaks <code>bb_*</code>).</li>
<li>FIXED: always generate <code>FATAL_ERROR</code> on <code>SIGSEGV</code>.</li>
<li>FIXED: another GC bug.</li>
<li>FIXED: <code>phrase/2</code> and <code>phrase/3</code> are meta-predicates.</li>
<li>FIXED: use <code>TR</code> instead of <code>H</code> for system.</li>
<li>FIXED: <code>absolute_file_name/2</code> should be SICStus compatible (Nicos Angelopoulos).</li>
<li>FIXED: put < debugger back to work (Ines Dutra).</li>
<li>FIXED: make <code>rem</code> and <code>mod</code> ISO-compatible operators (Paulo Moura).</li>
<li>FIXED: expand consult stack when there are too many
predicates (David Page).</li>
<li>FIXED: create DLs even when you don't need .so.</li>
<li>FIXED: <code>abolish/1</code>.</li>
<li>NEW: try to make module system really compatible.</li>
<li>CLEANUP: don't use state of Pred.</li>
<li>SPEEDUP: improve predicate access by linking predicates to
functors.</li>
<li>FIXED: <code>listing</code> broke when <code>current_predicate</code> became meta.</li>
<li>FIXED: <code>consult</code> should not erase dynamic clauses (report
from James Cussens).</li>
<li>FIXED: check if we still can do garbage collection (<code>MBIT</code>
and <code>RBIT</code> ok) (report from James Cussens).</li>
<li>FIXED: always release stack after <code>InitBigNum</code> (report from
Nicos Angelopoulos).</li>
<li>FIXED: <code>random</code> would not load in windows (report from
Henrik Boström).</li>
<li>FIXED: don't send warnings about repeated predicates from
different modules (report from Henrik Boström).</li>
<li>NEW: <code>socket_buffering/4</code> (report from Henrik Boström).</li>
<li>FIXED: <code>current_hostname/1</code> to <code>current_host/1</code> (report from
Henrik Boström).</li>
<li>FIXED: <code>socket_select/5</code> was completely broken (report from
Henrik Boström).</li>
<li>FIXED: avoid unnecessary choice-point in
<code>yap_flag(user_*,Who)</code> (report from Nicos Angelopoulos).</li>
<li>FIXED: <code>flush</code> should work with readline.</li>
<li>FIXED: reset alarm at top-level.</li>
<li>FIXED: do <code>signal(ALARM)</code> immediately.</li>
<li>FIXED: don't use full optimization for <code>parser.c</code> in cygwin
(report from Steve Moyle).</li>
<li>NEW: Erik Alphonse's apply_macros library.</li>
<li>FIXED: <code>ord_del_element/3</code> (Nicos Angelopoulos).</li>
<li>FIXED: texinfo warnings (Stasinos).</li>
<li>FIXED: under emacs/win32: prompt if $EMACS=t and buf NULL.</li>
<li>FIXED: <code>^C</code> and <code>readline</code> (I hope).</li>
<li>NEW: <code>trace</code> and <code>notrace</code>.</li>
<li>FIXED: make <code>C-c t</code> actually trace.</li>
<li>FIXED: put <code>[debug]</code> when in debug mode.</li>
<li>FIXED: <code>make install_info</code> (actual fix is in Yap-4.3.19).</li>
</ul>
<h2>Yap-4.3.19:</h2>
<ul>
<li>FIXED: <code>fflush(NULL)</code> broken in some machines (Stasinos).</li>
<li>FIXED: don't flush input streams (Stasinos).</li>
<li>FIXED: new <code>statistics/0</code>.</li>
<li>FIXED: use 15 bits of precision for floats, instead of the
default 6..</li>
<li>FIXED: check for last file modification in <code>use_module</code>.</li>
<li>FIXED: <code>get_list</code> + <code>unify_local</code> was being compiled into
<code>glval</code>, breaking <code>ENV</code> vars </li>
<li>FIXED: <code>abort</code> was crashing in Alpha machines.</li>
<li>FIXED: make <code>^c-a</code> work within gc.</li>
<li>FIXED: handle correctly very deep nested terms while gc
marking.</li>
<li>FIXED: <code>ArityOfFunctor</code> was giving trouble with HP-UX cc
(Stasinos Konstantinos).</li>
<li>FIXED: <code>^c</code> works with Yap/MINGW32 (not in cygwin).</li>
<li>FIXED: <code>^c</code> a should never core dump.</li>
<li>FIXED: comparison of variables in sub-terms.</li>
<li>FIXED: parse +inf, -inf, +nan, -nan as floats and write
them accordingly.</li>
<li>FIXED: comparison was breaking ISO.</li>
<li>FIXED: use <code>$(CC)</code> never <code>gcc</code> directly.</li>
<li>FIXED: support newer versions of readline by moving text
to prompt.</li>
<li>FIXED: upgrade to autoconf 2.5.</li>
<li>FIXED: <code>catch</code> and <code>throw</code> should not leave unnecessary
choice-points behind.</li>
<li>FIXED: make catch cleanup queue of findall entries.</li>
<li>FIXED: change <code>catch/3</code> and <code>throw/1</code> to use arrays.</li>
<li>CLEANUP: split <code>TRAIL_REF</code>.</li>
<li>FIXED: give correct type to <code>FreeBlocks</code>.</li>
<li>FIXED: give correct type to alias list.</li>
<li>FIXED: format <code>~NN</code> wasn't implemented (report from Markus Walther).</li>
<li>DELETED: <code>shell/1</code> is now available through system library.</li>
<li>FIXED: <code>!/0</code> in meta-call wasn't cutting.</li>
<li>FIXED: <code>MkLongIntTerm</code> (from Stasinos Konstantinos).</li>
<li>NEW: Logtalk OO library (from Paulo Moura).</li>
<li>FIXED: CHR instalation.</li>
<li>SPEEDUP: avoid unnecessary choice-points with CLPQR.</li>
<li>NEW: inline <code>$mod_switch</code>, <code>$mod_switch</code> now uses
backtrackable updates to modules.</li>
<li>NEW: new method for marking timestamps that simplifies gc</li>
<li>FIXED: bug while collecting multi-assignment variables</li>
<li>FIXED: make yap modules more compatible with SICStus Prolog</li>
<li>NEW: <code>portray_clause/2</code> (request from Nicos Angelopoulos)</li>
<li>FIXED: document <code>absolute_file_name/2</code></li>
<li>FIXED: <code>absolute_file_name/2</code> should return absolute path, never user name! (bug report from Nicos Angelopoulos)</li>
<li>FIXED: in <code>a:-b:call(X)</code> <code>X</code> belongs to the module <code>b</code> (bug report from Nicos Angelopoulos)</li>
<li>FIXED: make <code>consult/1</code> and friends meta-predicates (bug report from Nicos Angelopoulos)</li>
<li>FIXED: allow <code>[M:F]</code> and friends (bug report from Nicos Angelopoulos)</li>
<li>FIXED: <code>ensure_loaded/1</code> can be used as a goal (bug report from Nicos Angelopoulos)</li>
<li>FIXED: <code>abolish(VAR)</code> should abolish all predicates in current module (bug report from Nicos Angelopoulos).</li>
<li>NEW: <code>library(system)</code>, only for Unix system right now.</li>
<li>FIXED: allow <code>current_stream/3</code> to work with third argument known.</li>
<li>FIXED: always leave enough space so that the hybrid garbage collection may work.</li>
<li>FIXED: <code>add_to_path</code> should not leave choice-points.</li>
<li>FIXED: don't initialise first occurrences in branches for func outputs.</li>
<li>FIXED: handle void variables in body.</li>
<li>NEW: externd C-interface with <code>StreamToFileNo</code>, <code>BufferToString</code>, and <code>BufferToAtomList</code>.</li>
<li>NEW: support pipes with <code>open_pipe_stream/2</code>.</li>
<li>FIXED: <code>functor/3</code> was generating too many deallocates at the end of a clause.</li>
<li>FIXED: <code>call_residue/2</code> should not allow constraints to escape (use <code>copy_term_no_variables/2</code> to avoid this).</li>
<li>SPEEDUP: optimise away <code>true/0</code> at the end of a clause.</li>
<li>FIXED: do not short circuit trail entries.</li>
<li>FIXED: Patches for memory allocation in Apple's OS/X.</li>
<li>FIXED: checked whether <code>mmap</code> work right in <code>alloc.c</code>.</li>
<li>FIXED: <code>ASP</code> from <code>Y</code> should have space for <code>env</code> size.</li>
<li>NEW: new garbage collection algorithm.</li>
<li>FIXED: don't allow importing from the module itself.</li>
<li>FIXED: force line buffering for text stream.</li>
<li>FIXED: force no buffering for <code>user_error</code>.</li>
<li>FIXED: flush all streams before writing answer.</li>
<li>FIXED: <code>YP_std*</code> are now streams, so that <code>yap_flag(user_*)</code> will change them too.</li>
<li>FIXED: <code>nth/3</code> and <code>nth0/3</code> would leave one extra choice-point.</li>
<li>FIXED: use <code>Contents</code> instead of <code>Uses</code> to determine live variables.</li>
<li>FIXED: <code>cputime</code> was actually <code>walltime</code> in WIN32, ugh (report from Steve Moyle).</li>
<li>FIXED: regexp library would not compile on recent versions of cygwin.</li>
<li>FIXED: change first two arguments of <code>add_vertices/3</code> for SICStus compatibility (report from Nicos Angelopoulos).</li>
<li>NEW: <code>sum_list/2</code> (request from Nicos Angelopoulos).</li>
<li>FIXED: <code>ord_union/2</code> should not use use <code>merge/3</code> but instead <code>ord_union/3</code> (report from Nicos Angelopoulos).</li>
<li>FIXED: <code>statistics/0</code> should report to <code>user_error</code> (report from Nicos Angelopoulos).</li>
<li>FIXED: database could copy compiled floats, longs, and bigs to <code>Heap</code>, later crashing the garbage collector (report from Nicos Angelopoulos).</li>
<li>NEW: <code>if/3</code> (request from Nicos Angelopoulos).</li>
<li>SPEEDUP: inline <code>functor(S) -> Na,Ar</code>.</li>
<li>SPEEDUP: inline <code>functor(Na,Ar) -> S</code>.</li>
<li>FIXED: pillow installation path.</li>
<li>FIXED: allow <code>yap_flag(user_{},V)</code>.</li>
<li>FIXED: allow second argument unbound to <code>stream_property/2</code>.</li>
<li>FIXED: alias change had broke <code>stream_property/2</code>.</li>
<li>FIXED: alias change had broke <code>tell(user)</code> and <code>see(user)</code>.</li>
<li>SPEEDUP: inline <code>arg/3</code>.</li>
<li>FIXED: extra clause for <code>module/1</code>.</li>
<li>NEW: <code>module/3</code>: SICStus options plus ciao options.</li>
<li>FIXED: mode/1 should not be defined if we do not know what to do about it.</li>
<li>NEW: <code>prolog_flag(version,X)</code>.</li>
<li>FIXED: understand <code>0'\</code> escape sequences.</li>
<li>NEW: <code>atom_concat/2</code> (idea from ciao).</li>
<li>NEW: <code>list_concat/2</code> in <code>library(lists)</code> (idea from ciao).</li>
<li>NEW: allow profile early reset in garbage collector.</li>
<li>FIXED: <code>call_residue</code> should *unify* back constraints *after* restoring original suspension lists.</li>
<li>FIXED: include Mandrake's <code>$(DESTDIR)</code> patches in Makefiles (by Lenny Cartier).</li>
<li>FIXED: <code>close(user_error)</code> now closes stream currently associated with <code>user_error</code>.</li>
<li>FIXED: <code>open(user_*,X,Y)</code> is not special any longer (SICStus compatibility).</li>
<li>FIXED: <code>prolog_flag({max,min}_integer,X)</code> with GMP.</li>
<li>FIXED: <code>prolog_flag(bounded,false)</code> with GMP.</li>
<li>NEW: <code>prolog_flag(user_{input,output,error},X)</code> (request from Nicos Angelopoulos).</li>
<li>FIXED: allow <code>close(file_alias)</code>.</li>
<li>FIXED: <code>user_input</code>, <code>user_output</code>, and <code>user_error</code> are now aliases, like all the others.</li>
<li>FIXED: restore <code>YapLibDir</code>.</li>
</ul>
<h2>Yap-4.3.18:</h2>
<ul>
<li>FIXED: alignment bug with <code>walltime</code> in sparc/solaris.</li>
<li>FIXED: shunting in garbage collector.</li>
<li>FIXED: restore arithmetic operators was broken.</li>
<li>FIXED: restore arrays had never been implemented.</li>
</ul>
<h2>Yap-4.3.17:</h2>
<ul>
<li>FIXED: recording floating point numbers was broken (report from Ashwin Srinivasan).</li>
<li>FIXED: restore bitmap <code>Pred</code> pointers from calls.</li>
<li>FIXED: restore masks when adjusting the data base.</li>
<li>FIXED: handle pointers to <code>Heap</code> and <code>Appls</code> to <code>Trail</code> correctly in <code>grow()</code>.</li>
<li>FIXED: db terms with variables must be adjusted from correct offset (restore db).</li>
<li>FIXED: atomic terms do not need masks (restore db).</li>
<li>FIXED: complex terms in db may also have variables (restore db).</li>
<li>FIXED: functors are never offsets (<code>sshift</code>).</li>
<li>FIXED: check for <code>NULL</code> pointers when restoring FreeSpace mm.</li>
<li>FIXED: make <code>gcc -mno-cygwin</code> default in <code>cygwin</code> environment.</li>
<li>FIXED: kill <code>COMPRESS_DB_TERM</code> and use new rational tree scheme for DB instead.</li>
<li>FIXED: use new <code>rational_tree</code> scheme in <code>arrays.c</code>, <code>cmmpreds.c</code>, and <code>corout.c</code>.</li>
<li>FIXED: make <code>variant/2</code>, <code>term_variables/2</code>, and friends use new <code>rational_tree</code> scheme.</li>
<li>FIXED: make <code>copy_term/2</code> use new <code>rational_tree</code> scheme.</li>
<li>FIXED: don't test for age in <code>unify.c</code>.</li>
<li>NEW: <code>cyclic_term/1</code> and <code>acyclic_term/1</code> in <code>terms</code> library.</li>
<li>FIXED: use <code>RATIONAL_TREES</code> scheme to in <code>unify_with_occurs_check/2</code>.</li>
<li>FIXED: <code>unify_with_occurs_check/2</code>.</li>
<li>FIXED: make Yap run under SGI's <code>gcc -mabi=64</code> (gcc buggy? Needs testing).</li>
<li>FIXED: make Yap run under SGI's <code>cc -64</code>.</li>
<li>FIXED: fix alignment bug for 64bits in <code>AllocCMem</code>.</li>
<li>FIXED: make Yap run under HP-UX's cc.</li>
<li>FIXED: avoid labels before brackets with HP-UX cc.</li>
<li>FIXED: get rid of huge masks in <code>dbase.c</code>.</li>
<li>FIXED: make Yap run under SGI's cc.</li>
<li>FIXED: avoid smart comparison in non-GNUCC compilers.</li>
<li>FIXED: get rid of unused variables.</li>
<li>FIXED: get rid of warnings with <code>enum</code> types.</li>
<li>NEW: <code>number_atom/2</code>.</li>
<li>FIXED: purge unnecessary <code>unify_lvar X0</code> with in <code>unify_n_voids_last</code>.</li>
<li>FIXED: make it compile again under cygwin pure.</li>
<li>FIXED: documentation for pillow.</li>
<li>FIXED: use <code>Yap.spec</code> and <code>/usr/share/info</code> for recent rpms.</li>
<li>FIXED: <code>configure</code> would check for <code>limits.h</code> twice.</li>
</ul>
<h2>Yap-4.3.16:</h2>
<ul>
<li>FIXED: handle trail segments when growing heap or local (tabulation).</li>
<li>FIXED: fix backtracking with multi-assignment variables (bug report from Bart Demoen).</li>
<li>FIXED: only insert into relocation chain if heap pointer.</li>
<li>FIXED: handle overflows in substitution stack for tabulation.</li>
<li>FIXED: documentation bug in CHR.</li>
<li>FIXED: how to include <code>opt.mavar.h</code> (bug report from Luis Fernando).</li>
<li>FIXED: trail overflow while doing gc (bug report from GJVanNoord).</li>
<li>FIXED: System would lose <code>[]</code> because the atom looked like <code>NULL</code> (bug report from Rui Camacho).</li>
</ul>
<h2>Yap-4.3.15:</h2>
<ul>
<li>FIXED: garbage collector now marks all local variables so that we can do early reset on local variables.</li>
<li>FIXED: support second quadrant machines in new scheme for large numbers.</li>
<li>NEW: <code>ord_setproduct/3</code> in <code>library(ordsets)</code>.</li>
<li>NEW: garbage collection for tabled computations.</li>
<li>FIXED: <code>garbage_collect/0</code> shouldn't affect gc heuristics.</li>
<li>NEW: OPTYap's latest tabulation code.</li>
<li>FIXED: respect debugger printining options.</li>
<li>FIXED: make sure variables are globalised before spying.</li>
<li>FIXED: tabling in <code>autoconf</code>.</li>
<li>SPEEDUP: improve variable unification where we know one of the variables is in the heap.</li>
<li>FIXED: when sweeping garbage collector should check for variables posing as blobs (<code>USE_OFFSETS</code>).</li>
<li>FIXED: reduce overheads in <code>functor/3</code>.</li>
<li>FIXED: <code>variant</code> and <code>subsumes</code> must check functor and must check for extensions.</li>
<li>FIXED: activate dorming optimised instructions and fix <code>glist_void_var</code>.</li>
<li>FIXED: performance bug in new multiplication code (only for i386).</li>
<li>FIXED: exit at <code>Error()</code> in <code>Error()</code>.</li>
<li>FIXED: <code>grow()</code> had trouble with array ptrs in Trail.</li>
<li>FIXED: include Stasinos patches for gmp, HP-UX and on documentation.</li>
<li>FIXED: <code>recorda_stat_source</code> was passing 0 instead of tagged 0, also always <code>initialise ->code</code>!</li>
<li>FIXED: accept multiple block declarations and process them as a conjunction.</li>
<li>FIXED: <code>call_residue/2</code>.</li>
<li>FIXED: block even when you have no - modes.</li>
<li>FIXED: use <code>mkstemp()</code> instead of <code>tmpnam()</code> in <code>alloc.c</code>.</li>
<li>FIXED: now I can wake up goals at disjunction, see <code>merge(A,[2],C), A = [1|B], (B = [2]; B = [3])</code>. I had to save temporary registers in a term. Check <code>push_live_regs</code> and <code>restore_regs()</code> for details.</li>
<li>FIXED: <code>->p</code> field of either now points to true.</li>
<li>FIXED: we must execute woken up goals before <code>;/2</code>: force stack checking at either.</li>
<li>FIXED: present a single delayed goal per variable Done.</li>
<li>FIXED: make <code>block/1</code> and <code>wait/1</code> directives.</li>
<li>FIXED: make <code>block/1</code> use <code>when/2</code>.</li>
<li>FIXED: compiling with glibc2.2, gcc-2.96 had small complaints.</li>
<li>FIXED: <code>configure</code> should now work with gmp3.</li>
<li>FIXED: overflow with extremely large terms in <code>copy_term</code>.</li>
<li>FIXED: unification between <code>bignums</code> could fail.</li>
<li>FIXED: improve <code>print_message/2</code>.</li>
<li>FIXED: make <code>number_codes</code> understand <code>inf</code> and <code>nan</code>.</li>
<li>FIXED: parse bigints in files.</li>
<li>FIXED: one should set creep flags whenever adding goals.</li>
<li>FIXED: debugging messages to <code>stderr</code>.</li>
<li>NEW: simpler scheme for delays.</li>
<li>FIXED: (<code>mark_trail</code>) do not mark second assignment to <code>mavar</code> in same choicepoint, helps 5% in mip, zilch in rkf.</li>
<li>FIXED: make <code>goal_expansion</code> and <code>clause_expansion</code> logical and multifile.</li>
<li>FIXED: <code>stackgrow()</code> with <code>biginits</code>.</li>
<li>FIXED: compile bigints properly.</li>
<li>FIXED: <code>ShowCode</code> should know about bigint instructions.</li>
<li>FIXED: <code>arith.yap</code> should understand int != bigint.</li>
<li>FIXED: <code>==/2</code> had bugs with attributed variables.</li>
<li>FIXED: make debugger aware of woken goals.</li>
<li>FIXED: bug in debugger with single update semantics dynamic clause.</li>
<li>FIXED: definition of <code>MAX_WORKSPACE</code> had been deleted from <code>alloc.c</code>??</li>
<li>FIXED: <code>frozen/2</code> and outputting suspended goals.</li>
<li>FIXED: <code>BlobTermAdjust</code> was not always defined.</li>
<li>FIXED: bad memory allocation in <code>parser.c</code> for _ resulted in cryptic error messages.</li>
<li>FIXED: <code>//</code> error in CHR.</li>
<li>FIXED: syntax error in initialization.</li>
<li>FIXED: syntax error messages again point to the error.</li>
<li>FIXED: add extra copyright info about LUM in manual.</li>
</ul>
<h2>Yap-4.3.14:</h2>
<ul>
<li>FIXED: gcc/solaris would not compile.</li>
<li>FIXED: gc instrumentation was still giving noise.</li>
<li>FIXED: bug without GMP.</li>
<li>NEW: CHR manual.</li>
</ul>
<h2>Yap-4.3.13:</h2>
<ul>
<li>FIXED: <code>call_residue/2</code>.</li>
<li>FIXED: <code>==</code> in <code>configure.in</code>.</li>
<li>NEW: document attributed variables and CLP(Q,R).</li>
<li>NEW: initial support for Apple OS/X, thanks to Paulo Moura for the patch.</li>
<li>FIXED: hash trouble in IDB (thanks to Stasinos Konstantinos for the report)).</li>
<li>SPEEDUP: <code>meta_predicate</code> database is now in dynamic procedures with logical updates.</li>
<li>FIXED: module 0 should always be found in DB.</li>
<li>FIXED: alloc space for <code>get_num</code> from trail.</li>
<li>NEW: <code>discontiguous</code> is a valid operator.</li>
<li>FIXED: <code>gcd/2</code> operator would break on negative numbers.</li>
<li>NEW: support for GMP gnu library and longints.</li>
<li>NEW: back to blobs in global.</li>
<li>NEW: new implementation of arithmetic with a function per operator and no switches.</li>
<li>FIXED: <code>##</code> breakage in OS/X cpp (<code>c_interface.h</code>. thks Paulo Moura).</li>
<li>NEW: new arithmetic code.</li>
<li>NEW: <code>CHR</code> (Thanks to Thom Fruewirth).</li>
<li>NEW: itemization bugs in the manual (Stasinos Konstatinos).</li>
<li>NEW: add <code>sequential/0</code> and <code>parallel/0</code> directives.</li>
<li>FIXED: move <code>Codes</code> and <code>Lists</code> to <code>heap_regs</code> as these variables are in fact supposed to be shared between processes.</li>
<li>FIXED: <code>SBA</code> should be able to store bindings in cell.</li>
<li>FIXED: <code>PutAtt</code> and <code>GetAtt</code> might return <code>NULL</code> in <code>SBA</code>.</li>
<li>FIXED: <code>unify</code> and friends would use uninstantiated variables.</li>
<li>FIXED: only install <code>INTERFACE_HEADERS</code>.</li>
<li>FIXED: <code>DO_MATRAIL</code> had reverse order under <code>SBA</code>.</li>
<li>NEW: <code>prolog_load_context/2</code>.</li>
<li>FIXED: allow reutilising aliases to files.</li>
<li>FIXED: replace <code>term_variables</code> by <code>variables_in_term</code> in <code>pl/*.yap</code>.</li>
<li>NEW: dynamic loading support for HP-UX (Stasinos Konstantinos).</li>
<li>FIXED: help info in <code>configure.in</code> and forgotten <code>$</code> (Stasinos Konstantinos).</li>
</ul>
<h2>Yap-4.3.12:</h2>
<ul>
<li>NEW: configure compilation process from <code>configure</code>.</li>
<li>FIXED: save/restore should set <code>CurrentModule</code>.</li>
<li>FIXED: <code>InitYaamRegs</code> should not set <code>CurrentModule</code>.</li>
<li>FIXED: load_dld would crash on NULL argv[0].</li>
<li>FIXED: get rid of <code>install_library</code> and build <code>libYap.a</code> by default. Fix minor bugs in <code>yaplib</code>.</li>
<li>FIXED: used <code>TRAIL</code> to remember structure-to-structure bindings in utilpreds.c and cmppreds.c (this avoids overflow noticed by GJVNoord).</li>
<li>FIXED: split yapor_on so that ! is after <code>yapor_on</code>. This should prevent cutting to before the root of the tree.</li>
<li>FIXED: bad handling of <code>libs</code> in <code>load_dl.c</code> (fix from Stasinos Konstantopoulos).</li>
<li>FIXED: <code>free_answer_hash_chain</code> should untag parent pointer (Ricardo Rocha).</li>
<li>FIXED: walltime would compile with cygwin (patch from [email protected]).</li>
<li>FIXED: <code>try_logical_pred</code> was doing nasty things to choice-points in parallel mode.</li>
</ul>
<h2>Yap-4.3.11:</h2>
<ul>
<li>FIXED: read could fail and not restore the original input stream (noticed by GJ VanNoord).</li>
<li>FIXED: crappy handling of multi-assignment variables while growing stacks (noticed by GJ VanNoord).</li>
<li>FIXED: Bad save/restore machine registers in hppa.</li>
<li>FIXED: Bad initialisation for '<code>_</code>' variables.</li>
<li>FIXED: check null <code>ENV</code> in <code>do_toggle_static_predicates_in_use</code>, this seems to break HP-UX machines.</li>
<li>FIXED: Bad default address on SGI machines.</li>
<li>FIXED: Atom operations were being included too soon.</li>
<li>FIXED: alignment issue in <code>LastWTimePtr</code> with SPARC.</li>
<li>FIXED: Bind needs <code>HBREG</code> in <code>p_save_cp/exec.c</code>.</li>
<li>FIXED: small ints in <code>term_hash</code>.</li>
<li>FIXED: bug in installing CLPQR in <code>Makefile.in</code> (noticed by Luis Castro and GJ VanNoord).</li>
</ul>
<h2>Yap-4.3.10:</h2>
<ul>
<li>FIXED: install info by default in <code>/usr/share/info</code>.</li>
<li>NEW: <code>MULTI_ASSIGNMENT_VARIABLES</code> should work with tabling and or-parallel execution.</li>
<li>FIXED: small glitches with lcc.</li>
<li>FIXED: <code>walltime</code> in parallel system.</li>
<li>FIXED: zombies in ACOW.</li>
<li>NEW: CLPR is now in the YAP distribution.</li>
<li>NEW: sequential tabling can do stack shifting.</li>
<li>NEW: sequential tabling uses standard memory management system.</li>
<li>FIXED: make tracer work with tabling.</li>
<li>FIXED: make <code>exec_goal</code> work with tabling.</li>
<li>NEW: integrated latest OPTYap.</li>
<li>NEW: CIAO's pillow library.</li>
<li>FIXED: <code>verify_attributes</code> should follow SICStus order, or else CLPR will break in <code>critical,go2</code> :-(.</li>
<li>FIXED: debugger was getting confused by modules that import predicates that are also defined in the module.</li>
<li>FIXED: <code>=..</code> was messing with constraints, make it <code>SDerefHead</code>.</li>
<li>NEW: print <code>$VAR("string")</code> as string.</li>
<li>NEW: <code>write_term(X,[write_depth(X)])</code> is a legal option in SICStus.</li>
<li>NEW: <code>write_term(X,[portrayed(X)])</code> is a legal option in SICStus.</li>
<li>FIXED: debugger would get confused with undefined procedures.</li>
<li>FIXED: DB compression bug for lists with rational trees on.</li>
<li>FIXED: the blackboard routines are meta-predicates!</li>
<li>FIXED: initialization should be performed on correct module.</li>
<li>FIXED: make <code>initialization/1</code> an operator.</li>
<li>NEW: <code>print_message</code> and <code>portray_message</code>.</li>
<li>FIXED: do proper meta-predicate processing for <code>user:a :- meta(...)</code>.</li>
<li>FIXED: do term expansion from top level and for <code>end_of_file</code> in consult.</li>
<li>FIXED: don't do grammar expansion if term expansion succeeds.</li>
<li>NEW: <code>yap_flag(toplevel_hook,_)</code>: this is a goal to be executed before prompting at the top-level.</li>
<li>NEW: <code>variant/2</code>.</li>
<li>FIXED: <code>term_hash</code> was not documented and in the wrong modules.</li>
<li>NEW: first try at ugraphs module.</li>
<li>NEW: SICStus compatible <code>module/1</code> and <code>yap_flag(typein_module,_)</code>.</li>
<li>NEW: SICStus compatible <code>prolog_flag/2</code> and <code>prolog_flag/3</code>.</li>
<li>FIXED: for SICStus compatibility primitives module is now prolog module.</li>
<li>FIXED: corrent consulted file could get confused.</li>
<li>FIXED: more fixes to top-level and call-residue with attributed variables.</li>
<li>FIXED: call to <code>compare_terms</code> in <code>optimise_ce</code> relied on correct <code>H</code>. Could corrupt the compiler.</li>
<li>FIXED: fix a few bugs on presenting floundered goals.</li>
<li>FIXED: procedures imported into user should be imported by every module (do that by binding the importer to a variable).</li>
<li>FIXED: do not try to debug over commit.</li>
<li>FIXED: make top-level more SICStus like on how to present variable bindings.</li>
<li>NEW: support columns in <code>format/2</code> and <code>format/3</code>.</li>
<li>FIXED: <code>p_number</code> and friends should check for var before checking for number with corouting support.</li>
<li>FIXED: init was setting WakeUpCode too late.</li>
<li>FIXED: <code>save_program</code> was not restoring WakeUpCode.</li>
<li>FIXED: <code>terms</code> library.</li>
<li>NEW: SICStus compatible <code>prolog_flag/3</code>.</li>
<li>FIXED: <code>\+ \+ nondet1, !, nondet2</code>.</li>
<li>SPEEDUP: improved exec path.</li>
<li>FIXED: hold locks for longer in <code>i_recorded</code>.</li>
<li>CLEANUP: avoid references to corouting data structures in non-corouting code.</li>
<li>NEW: new hashing function for IDB.</li>
<li>FIXED: make <code>profile_data</code> understand modules.</li>
<li>FIXED: first argument for profile_data was inconsistent.</li>
<li>FIXED: broken trail resetting in <code>p_read</code> (thks G.J. VanNoord).</li>
<li>CLEANUP: ANSI-C code cleanup (thks S. Konstantopoulos).</li>
<li>CLEANUP: new <code>Atom.h.m4</code> file splits some stuff from <code>Yatom.h.m4</code>.</li>
<li>CLEANUP: <code>linkblk</code> with one less argument and faster code (hopefully).</li>
<li>FIXED: get rid of <code>AtomBase</code>.</li>
<li>FIXED: keep ordering between <code>MkFunctor</code> and friends.</li>
<li>FIXED: <code>PreviousHeap</code> is trash.</li>
<li>FIXED: too many calls to <code>MkFunctor</code> in <code>GetPred</code>.</li>
</ul>
<h2>Yap-4.3.9:</h2>
<ul>
<li>FIXED: VC++ compilation was broken.</li>
<li>FIXED: handle trail overflows in Windows.</li>
<li>FIXED: general fixes as cygnus compilation was broken.</li>
<li>FIXED: <code>yap.exp</code> got out of sync.</li>
<li>FIXED: YAP would include too many headers such as <code>sys/time.h</code> and <code>sys/wait.h</code> breaking <code>-mno-cygwin</code>.</li>
<li>FIXED: don't trust in <code>string.h</code> to initialise <code>NULL</code>, this seems to cause weird problems in <code>gcc -mno-cygwin</code>.</li>
<li>FIXED: lack of heap in assembler shouldn't force compiler to restart.</li>
<li>FIXED: C-stack would overflow with <code>PermVar</code>, make this function non-recursive.</li>
<li>FIXED: hint <code>growheap</code> on the least heap it needs.</li>
<li>FIXED: expand stack on overflow while parsing and overflow while creating the var table.</li>
<li>FIXED: move <code>ParserStack</code> to <code>Trail</code> so that we can read in very large terms.</li>
<li>FIXED: recursion of <code>c_optimise</code> would break for very large clauses, replaced it by iteration.</li>
<li>CLEANUP: replace defined for <code>enum</code> in <code>Yatom.h.m4</code>.</li>
<li>FIXED: bug in compiled terms with DBRefs (same field was used for <code>CodePtr</code> and <code>RefPtr</code>).</li>
<li>FIXED: guarantee correct locking for <code>PreAllocCodeSpace()</code>.</li>
<li>FIXED: another typo in <code>charsio</code>.</li>
<li>FIXED: always allow asserts but careful, for now system will only recover some space at top-level.</li>
<li>FIXED: In <code>yap.c</code> read <code>false</code> before someone hides it ;-).</li>
<li>CLEANUP: get rid of <code>AtomLive</code> and of <code>AtomFalse</code>.</li>
<li>FIXED: <code>erase/1</code> and <code>erased/1</code> now complain on bad arguments.</li>
<li>FIXED: ANALYST would not compile.</li>
<li>FIXED: go round bad <code>FILENAME_MAX</code> in HPUX (Stasinos Konstantopoulos).</li>
<li>CLEANUP: use <code>sed</code> instead of symbolic links in <code>make depended</code> (Stasinos Konstantopoulos).</li>
<li>FIXED: don't check if someone is looking at an environment while asserting.</li>
<li>FIXED: gc always assumed an immediate <code>DBRef</code>.</li>
<li>FIXED: <code>!</code> now cuts if <code>!=</code> instead of <code><</code> (fixed cut_by).</li>
<li>FIXED: __hpux to __hpux (Stasinos Konstantopoulos).</li>
<li>FIXED: <code>makedepend</code> works again (Stasinos Konstantopoulos).</li>
<li>FIXED: compile under hpux cc (Stasinos Konstantopoulos).</li>
<li>NEW: locking for internal data base.</li>
<li>FIXED: bad cast in <code>DBProp</code>.</li>
</ul>
<h2>Yap-4.3.8:</h2>
<ul>
<li>FIXED: previous change to <code>!</code> was wrong.</li>
<li>FIXED: <code>YAP_ARRAYS</code> was still being used in <code>arrays.c</code> and <code>sbaamiops.h</code>.</li>
<li>FIXED: small glitches in the manual.</li>
<li>NEW: change work dir from Yap4 to Yap-4 (that's what everyone else does).</li>
<li>NEW: <code>make install_info</code>.</li>
<li>NEW: <code>yap.spec</code> and automatic generation of rpms.</li>
</ul>
<h2>Yap4.3.7:</h2>
<ul>
<li>FIXED: fix SBA bug in <code>or.cuts.h</code>.</li>
<li>NEW: cut now looks for <code>==</code>, not <code><</code>.</li>
<li>NEW: <code>FunctorList</code> is now special.</li>
<li>FIXED: Looking up "<code>.</code>" was broken.</li>
<li>FIXED: <code>halt/1</code> would not send out the error code.</li>
<li>NEW: allow executable Prolog files that call YAP (option <code>-L</code>).</li>
<li>FIXED: bad overflow handling when compiling very large terms.</li>
<li>FIXED: bugs in <code>charsio</code> at <code>open_chars_stream</code> and <code>number_to_chars</code>.</li>
<li>FIXED: search for <code>library()</code> did not use env var <code>YAPLIBDIR</code>.</li>
<li>NEW: parallel locking for MIPS machines.</li>
<li>NEW: parallel locking for Alpha machines.</li>
<li>FIXED: In OPTYAP UNLOCK should be machine dependent.</li>
<li>FIXED: In linux, SBA would mess up with DB because MBIT was in <code>binding_array</code> addresses. Fix that and include a check when we allocate BA space.</li>
<li>NEW: Protect DB updates and use with immediate update semantics.</li>
<li>FIXED: get rid of the stuff on searching whether a predicate is in use for YAPOR, as it wouldn't work.</li>
<li>FIXED: disallow asserting and abolishing static procedures in YAPOR.</li>
<li>NEW: allow asserting database references as arguments for dynamic procedures.</li>
<li>FIXED: consult and friends are now directives (this should avoid trouble with YAPOR).</li>
<li>FIXED: change <code>configure.in</code> for Alpha/Linux.</li>
<li>FIXED: change YAPOR not to try to do parallel execution of consult.</li>
<li>FIXED: protect goals from <code>save_program/2</code> and also make sure they don't fail.</li>
<li>FIXED: <code>[a]</code> in top level should be executed as a query.</li>
<li>CLEANUP: get rid of <code>c_csult_stream</code>.</li>
<li>FIXED: fix predicates that depended on <code>current_stream</code> returning user name for file.</li>
<li>FIXED: <code>close/1</code> and <code>close/2</code> should only close atomic filenames in YAP mode, and should not depend on current_stream/3 returning the original name.</li>
<li>FIXED: <code>current_stream</code> should return real name, not user name.</li>
<li>CLEANUP: add consult/reconsult mode and file name to consult stack.</li>
<li>FIXED: force indexing immediately after consult in YAPOR. This guarantees the system will not get into trouble later trying to generate indexing code for a predicate while someone is entering it.</li>
<li>FIXED: bad init interface with YAPOR.</li>
<li>NEW: support partial locking for predicates.</li>
<li>FIXED: wrong include path in regex's <code>Makefile.in</code>.</li>
<li>FIXED: <code>bb_new</code> was doing a broken property insert.</li>
<li>FIXED: <code>save_program</code> now restores <code>SpyCode</code> so that we can restart saved states with spying data.</li>
<li>FIXED: <code>YapInit</code> wasn't using stack size info from saved states.</li>
</ul>
<h2>Yap4.3.6:</h2>
<ul>
<li>FIXED: <code>YapRunGoal</code> wasn't saving/restoring registers properly, thus breaking the alpha platform.</li>
<li>FIXED: could not find saved state.</li>
<li>FIXED: bad substitution in saved states.</li>
<li>NEW: <code>-l</code> option for YAP (consult a Prolog file).</li>
<li>CLEANUP: <code>-l</code> option for YAPOR is now <code>-sl</code>.</li>
<li>CLEANUP: small cleanups in yap.c.</li>
</ul>
<h2>Yap4.3.5:</h2>
<ul>
<li>NEW: add <code>yap_libdir</code>.</li>
<li>NEW: add splay trees.</li>
<li>NEW: add AVL trees.</li>
<li>FIXED: asserting static predicates would not store the right source.</li>
<li>FIXED: <code>assert</code> would loop with <code>assert((H:-b))</code>.</li>
<li>FIXED: GC bug would not process direct pointers from local or trail to lists in code space.</li>
<li>NEW: change directory structure.</li>
<li>NEW: support locking for arrays.</li>
<li>NEW: support locking for operators.</li>
<li>NEW: support locking for values.</li>
<li>FIXED: bad comparison with <code>BB</code> in <code>write_val</code> (SBA).</li>
<li>NEW: support locking on alloc/free.</li>
<li>NEW: support locking on blackboard.</li>
<li>NEW: support locking for individual atoms (protects the property list).</li>
<li>NEW: support locking the atom table.</li>
<li>NEW: sequential code should now compile empty locks.</li>
<li>FIXED: YAP again compiles and runs under AIX4.1.</li>
<li>FIXED: support creating YAP DLL with VC++.</li>
<li>FIXED: VC++ didn't understand <code>S_ISDIR()</code>.</li>
<li>FIXED: small fixes to <code>yap.tex</code>.</li>
<li>FIXED: unsigned/sign comparison warnings in VC++.</li>
</ul>
<h2>Yap4.3.4:</h2>
<ul>
<li>FIXED: IRIX6 is now set up load DLLs.</li>
<li>FIXED: Yap4.3.3 had broken register handling in <code>c_interface.c</code>.</li>
<li>FIXED: bug in <code>library/regex/Makefile.in</code>.</li>
<li>FIXED: FreeBSD/ELF is now set up to load DLLs.</li>
<li>FIXED: <code>in_limbo</code> should now be correct.</li>
<li>FIXED: YAPOR would not compile because of macros.</li>
</ul>
<h2>Yap4.3.3:</h2>
<ul>
<li>FIXED: recover space after every parse/compile in new <code>yap.c</code>.</li>
<li>FIXED: ignore <code>getcwd</code> under simplescalar.</li>
<li>FIXED: only include standard files after YAP headers.</li>
<li>FIXED: save and restore registers correctly under c-interface.</li>
<li>NEW: add <code>YapWrite</code> to C-Interface.</li>
<li>FIXED: mmapped arrays do not compile with <code>simplescalar</code>.</li>
<li>FIXED: force saved states to look up YAP in YAPBINDIR.</li>
<li>FIXED: quoted strings go back to ISO.</li>
<li>FIXED: <code>-DYAP_ARRAYS</code> is no longer an option.</li>
<li>FIXED: get rid of a few of ANSI-C old-style warnings from lcc.</li>
<li>FIXED: <code>TrueFileName</code> had been broken.</li>
<li>FIXED: Yap now configures and compiles with lcc 4.1/Linux.</li>
<li>FIXED: port yap to compile under cygwin 1.1.0/mingw32 and to support winsock2. The new version also supports <code>CreateWaitableTimer</code>.</li>
<li>FIXED: force yap to follow environment variable <code>YAPLIBDIR</code>.</li>
<li>FIXED: force yap to look for dlls in library.</li>
<li>FIXED: replace <code>strcat</code> and <code>strcpy</code> by <code>strncat</code> and <code>strncpy</code>.</li>
<li>FIXED: search for saved states in library.</li>
<li>FIXED: <code>^c-a</code> in MINGW32.</li>
<li>CLEANUP: <code>^C</code> handling.</li>
<li>NEW: creating and loading dll now works in YAP/WIN.</li>
<li>NEW: compile core YAP as a dll under MINGW32.</li>
<li>NEW: <code>yap.c</code> is now external to YAP.</li>
<li>NEW: understand Unix paths under WIN32 and MINGW32.</li>
<li>FIXED: make sure you only start compiling objects after having all headers ready.</li>
<li>FIXED: Debugger (<code>$spycalls</code>) should module switches and consulted the table of imported predicates.</li>
<li>FIXED: Compilation bug and warnings under vc++.</li>
<li>FIXED: <code>YAP_ARRAYS</code> required <code>TERM_EXTENSIONS</code> to compile.</li>
<li>FIXED: compile under cygwin's <code>gcc -mno-cygwin</code>, so that YAP won't need the cygwin dll (MINGW32).</li>
<li>FIXED: <code>save.c</code> should reinitialise user streams.</li>
<li>FIXED: <code>predentries</code> for functions may change address in <code>save.c</code>.</li>
<li>FIXED: <code>SimpleSim</code> does not implement <code>getcwd</code>.</li>
<li>FIXED: <code>tracer.c</code> had a C++ comment.</li>
<li>FIXED: <code>ttyname</code> might return <code>NULL</code>, at least in <code>SimpleSim</code>.</li>
<li>FIXED: <code>reconsult</code> was broken.</li>
<li>FIXED: bracket messages for syntax errors.</li>
<li>FIXED: scanner would break if <code>AllocScannerSpace</code> failed.</li>
<li>FIXED: bad checking of <code>eof_action</code> in open.</li>
<li>FIXED: mistake in compiling <code>/\</code>.</li>
<li>FIXED: extra clauses in <code>environ</code>.</li>
<li>FIXED: checking list of operators was wrong in <code>op/3</code>.</li>
<li>FIXED: missing variable in error message.</li>
<li>FIXED: reset <code>CreepFlag</code> in <code>Error</code>.</li>
<li>FIXED: wrong error in <code>name(int(X),_)</code>.</li>
<li>FIXED: fix writing "<code>\</code>" when writing strings with no character escapes.</li>
<li>NEW: add <code>yap_flag(write_strings,X)</code> as in Ciao.</li>
<li>NEW: add <code>StringToBuffer</code> routine to the c-interface.</li>
<li>NEW: add routines for allocating and releasing database space to the c-interface.</li>
<li>FIXED: change type for <code>unify</code> in <code>CInterface</code>.</li>
<li>FIXED: <code>PlUnGetc</code> should return <code>int</code>, not <code>Int</code>.</li>
<li>FIXED: get rid of C++ comment in <code>save.c</code>.</li>
</ul>
<h2>Yap4.3.2:</h2>
<ul>
<li>FIXED: Yap can now use <code>shm</code> for memory allocation.</li>
<li>NEW: Yap can use <code>malloc</code> if <code>mmap</code>, <code>shm</code>, and <code>sbrk</code> failed.</li>
<li>FIXED: <code>sbrk</code> allocation should be working again.</li>
<li>CLEANUP: get rid of unused functions in old <code>alloc.c</code>.</li>
<li>CLEANUP: in <code>Yap.h.m4</code> make clear when you are in second quadrant.</li>
<li>CLEANUP: keep table with all c-predicates. <code>restore</code> now does not need to reinitialise functions.</li>
<li>FIXED: in <code>alloc.c</code>, handle cases where <code>/dev/zero</code> fails properly.</li>
<li>CLEANUP: move atoms and functors into <code>heap_codes</code>.</li>
<li>CLEANUP: move module info to <code>heap_codes</code>.</li>
<li>FIXED: <code>save.c</code> would not restore properly <code>bfunc</code> instructions. Had to add a p field for these instructions.</li>
<li>FIXED: <code>save.c</code> was not always restoring <code>pp->OpcodeOfPred</code>.</li>
<li>FIXED: reset opcode-op hash-table in new calls to <code>InitReverseLookupOpcode</code>.</li>
<li>FIXED: check if emulator shifted when recovering saved states.</li>
<li>NEW: <code>charsio</code>, SICStus compatible reading to and writing from strings.</li>
<li>FIXED: uncaught instantiation errors in eval routines.</li>
<li>NEW: <code>yap_flag(character_escapes,{on,off})</code>.</li>
<li>CLEANUP: get rid of <code>config.c</code>.</li>
</ul>
<h2>Yap4.3.1:</h2>
<ul>
<li>FIXED: <code>$call</code> and <code>$spied_call</code> used with one less argument by debugger.</li>
<li>FIXED: bug in <code>repeat</code> from top level.</li>
<li>FIXED: <code>MAX_DEPTH</code> was set too high.</li>
<li>FIXED: use actual definition of <code>repeat</code>.</li>
<li>FIXED: use <code><</code> to compare cps for <code>!</code>, not <code>==</code> because of <code>(! ->)</code>.</li>
<li>FIXED: <code>$set_depth_limit</code> should work with Integer, not Int.</li>
<li>FIXED: Allow Linux to compile without <code>getrusage</code> but using times (problem with glibc/kernel).</li>
</ul>
<p>
Yap4.3.0 has been released.
</p>
<h1>Changes in YAP4.2</h1>
<h2>Yap4.2.1:</h2>
<ul>
<li>FIXED: up release number.</li>
<li>FIXED: swap order of first authors in the manual.</li>
<li>NEW: more patches for OPTYap.</li>
<li>FIXED: not all Linuxen that have <code>fpu_control.h</code> understand <code>_FPU_SETCW</code>.</li>
</ul>
<h2>Yap4.2.0pl18:</h2>
<ul>
<li>FIXED: <code>DebugPutc</code>.</li>
<li>FIXED: SBA must initialise or set public permanent variables in the SBA.</li>
<li>FIXED: get rid of a Prolog definition for <code>number_codes</code>.</li>
<li>FIXED: <code>YOUNGER</code> out of OPTYap and renamed <code>YOUNGER_CP</code>.</li>
<li>FIXED: don't use offsets to local in SBA.</li>
<li>FIXED: make <code>DelayedB</code> and <code>TopB</code> actual choicepointers to support SBA.</li>
<li>FIXED: memory allocation for FreeBSD.</li>
<li>RW Locks are now in YAP (unused yet).</li>
<li>FIXED: dynamic arrays were getting too complex, allow the heap to point to the global stack and change garbage collector to handle it. YAP_ARRAYS is now compatible with everything ;-) and can stop being an option.</li>
<li>FIXED: cut used <code><</code> instead of <code>!=</code>.</li>
<li>NEW: new YapOr code from Ricardo.</li>
<li>FIXED: a few complaints with Solaris.</li>
<li>NEW: generate exceptions in ISO mode for HP-UX.</li>
<li>FIXED: <code>use_module</code> relies on <code>ensure_loaded</code>, which is now a directive.</li>
<li>FIXED: 64/32 bit errors in Alpha.</li>
<li>FIXED: <code>SEG_SIZE</code> is pre-defined in HP platform.</li>
<li>FIXED: should call <code>Error</code> only after leaving interrupt handler, otherwise <code>sigsetjmp</code> will overwrite registers.</li>
<li>FIXED: fill <code>CharConversionTable</code> with null chars.</li>
<li>FIXED: warning in PowerPCs.</li>
</ul>
<h2>Yap4.2.0pl17:</h2>
<ul>
<li>FIXED: more improvements to <code>Eval</code>.</li>
<li>NEW: <code>predicate_property(X,public)</code>.</li>
<li>NEW: <code>public/1</code> directive, handling of source was cleaned up (it used to be broken if one would switch between source and no-source).</li>
<li>NEW: special meta-call handling for ISO mode. Reduce amount of testing for other cases.</li>
<li>CLEANUP: complete cleanup of <code>eval</code>. No more duplicate code, no more <code>reg</code> and <code>fli</code>.</li>
<li>SPEEDUP: move <code>get_spy_creep</code> to <code>yap_flags</code>. This speeds up execute a bit.</li>
<li>NEW: <code>strict_iso</code> mode.</li>
<li>CLEANUP: <code>InitEval</code>.</li>
<li>FIXED: arithmetic should be consistent even after an error.</li>
<li>NEW: implement ISO exception handling for operations between floating-point numbers in Linux.</li>
<li>NEW: handle floating point exceptions.</li>
<li>CLEANUP: get rid of <code>EQUAL_FLOATS</code> and <code>EQUAL_LONG_INTS</code> as they weren't used any longer (and they were wrong anyway).</li>
<li>NEW: add <code>e</code>, I've always liked this constant better than <code>pi</code>.</li>
<li>FIXED: get a better <code>pi</code>.</li>
<li>FIXED: fix <code>round</code> and friends for ISO mode.</li>
<li>NEW: add <code>xor</code> (#) and <code>sign</code>.</li>
<li>FIXED: get rid of finite, change integer the limits in YAP.</li>
<li>FIXED: define <code>atanh</code> and friends for VC++ environments.</li>
<li>FIXED: Get <code>PlGetChar()</code> back in, as users may want a simple interface to the current input for their own dubious purposes.</li>
<li>NEW: <code>yap_flag(discontiguous_warnings, single_var_warnings, redefine_warnings)</code> as in SICStus. This should eventually replace style_check and no_style_check.</li>
<li>FIXED: do not mark or sweep environments twice. This fixes Bart's YAP GC performance bug (as mentioned in comp.lang.prolog!).</li>
<li>NEW: do variable shunting, not that it helps very much.</li>
<li>FIXED: save should only save as many registers as it needs, and the ones it does should be adjusted when restoring.</li>
<li>NEW: <code>stream_select/3</code>.</li>
<li>NEW: <code>save/2</code>.</li>
<li>NEW: <code>char_conversion/2</code> and <code>current_char_conversion</code>. Add ISOGetc for this, change scanner for having two getcs (one within strings, the other elsewhere).</li>
<li>FIXED: was recording source for optimised clauses, not just source for module preprocessed clause.</li>
<li>CLEANUP: add specialised versions to <code>PlGetc()</code>: Sockets, EOF, Readline, and Console.</li>
<li>CLEANUP: got rid of <code>PlGetChar()</code>.</li>
<li>CLEANUP: replaced <code>PlPutc()</code> by specialised versions for each type of stream: File, Console, Socket, Socket+Console, and Null.</li>
<li>CLEANUP: got rid of <code>PlPutChar()</code>.</li>
<li>FIXED: ISO compatible mode for <code>floor</code> and friends.</li>
<li>FIXED: YAP would crash with <code>INTEGER mod 0</code>.</li>
<li>FIXED: miscellaneous error handling in <code>eval</code>.</li>
<li>FIXED: <code>number_chars</code> and friends should be compatible with scanner.</li>
<li>FIXED: <code>stream_property</code> should not work with aliases.</li>
<li>NEW: <code>char_code/2</code>.</li>
<li>FIXED: ISO mode activates <code>fileerrors</code>.</li>
<li>FIXED: avoid using <code>atom_chars</code> within the system.</li>
<li>FIXED: <code>number_chars(X,I)</code> and <code>number_codes/2</code> with bad I should give error in ISO mode.</li>
<li>FIXED: make ISO <code>abolish/1</code> succeed for undefined procedures.</li>
<li>FIXED: <code>number_chars</code> and <code>atom_chars</code> should be ISO compatible in ISO mode.</li>
<li>FIXED: errors in <code>call</code> should throw ISO errors.</li>
<li>FIXED: <code>functor/3</code> should now have standard ISO behaviour on errors.</li>
<li>FIXED: <code>assert(X)</code> would loop.</li>
<li>FIXED: <code>char_conversion/2</code> is now also a directive.</li>
<li>FIXED: <code>ensure_loaded/1</code> should be directive and not a built-in.</li>
<li>FIXED: <code>current_predicate/1</code> should not show system predicates and should be module aware.</li>
<li>FIXED: <code>utilpred.s</code> now compiles with <code>-DEUROTRA</code>.</li>
<li>FIXED: <code>abolish/1</code> had several nasty bugs, especially in ISO mode.</li>
<li>CLEANUP: got rid of nasty <code>config.cache</code> in main directory.</li>
<li>FIXED: <code>op/3</code> and <code>set_prolog_flag/2</code> are directives.</li>
</ul>
<h2>Yap4.2.0pl16:</h2>
<ul>
<li>FIXED: <code>retractall</code> was broken.</li>
</ul>
<h2>Yap4.2.0pl15:</h2>
<ul>
<li>FIXED: in <code>catch/3</code> set module to original module before handling a ball.</li>
<li>SPEEDUP: improve testing with DEPTH_LIMIT.</li>
<li>FIXED: <code>DEPTH_LIMIT</code> should only stop code running under <code>depth_bound_call/2</code>.</li>
<li>FIXED: bug in parse_args (fix from Stasinos Konstantopoulos <[email protected]>).</li>
<li>FIXED: <code>copy_term/2</code> should now be able to copy constraints.</li>
<li>FIXED: faster version of <code>copy_term/2</code> should now handle rational trees.</li>
<li>NEW: generate ps version of manual with make ps.</li>
<li>FIXED: disable save term optimisation for extensions, as we may not have an S ready.</li>
<li>CLEANUP: always use '<code>$execute</code>' instead of call internally.</li>
<li>CLEANUP: get rid of '<code>$user_call</code>' as it should the same as '<code>$execute</code>'.</li>
<li>NEW: separate between the standard catch, that uses the full meta-call, and a system catch, that uses <code>$execute0</code> and <code>$mod_switch</code> and that should be only used deep within the bowels of the system.</li>
<li>FIXED: expanded head variables of meta_predicates should not be expanded by inner meta-calls.</li>
<li>FIXED: <code>HAVE_STAT</code> was not being generated correctly by <code>autoconf</code>.</li>
<li>NEW: <code>timeout:time_out</code>.</li>
<li>FIXED: make sure catch handlers are processed from within user.</li>
<li>FIXED: processing of style_check by <code>yap_flag(language,_)</code>.</li>
<li>FIXED: <code>discontiguous</code> should now be module aware.</li>
<li>FIXED: preprocess calls for meta-predicates from top-level.</li>
<li>FIXED: simplify code that handles the fact that modules from primitives can be called from anywhere.</li>
<li>FIXED: <code>$module_expansion</code> could be called with wrong number of arguments.</li>
<li>FIXED: separate '$execute', the low-level mechanism for meta-call, from '$user_call', that must study meta-predicates.</li>
<li>FIXED: <code>README.VC</code>.</li>
</ul>
<h2>Yap4.2.0pl14:</h2>
<ul>
<li>FIXED: allow big flags.</li>
<li>FIXED: typos in <code>yap.tex</code>.</li>
<li>NEW: <code>yap_flag(host_type,X)</code>, where <code>X</code> comes from <code>configure</code>.</li>
<li>NEW: more cleanups for autoconf.</li>
<li>FIXED: more cleanups for <code>autoconf</code>.</li>
<li>NEW: use <code>-DBP_FREE</code> by default for X86 machines.</li>
<li>FIXED: make <code>predicate_property</code> more SICStus Prolog compatible.</li>
<li>NEW: language mode now changes action over dynamic and over directives.</li>
<li>NEW: initial DLL support for WIN32.</li>
<li>FIXED: optimise arithmetic for asserted clauses.</li>
<li>FIXED: calling garbage collector from within a C-backtrackable built-in should also have the extra arguments to the choice-point ready.</li>
<li>NEW: YAP should now be able to load DLLs in WIN32.</li>
<li>FIXED: YAP will now stop creeping after an abort.</li>
<li>FIXED: meta-call within the debugger was externally visible.</li>
<li>FIXED: small ANSI-C compatibility thingies.</li>
<li>FIXED: <code>writeq('aaa===\\''====')</code> now outputs properly.</li>
<li>NEW: <code>yap_flags(update_semantics,logical_assert)</code> if you only want to use logical update semantics for asserted code.</li>
<li>NEW: <code>yap_flags(language,{cprolog,sicstus,iso})</code>.</li>
<li>FIXED: do not test for worken goals before !, it slows down execution too much.</li>
<li>NEW: improve the performance of <code>==/2</code>.</li>
<li>FIXED: compile without COROUTINING.</li>
<li>FIXED: manual would not compile.</li>
</ul>
<h2>Yap4.2.0pl13:</h2>
<ul>
<li>FIXED: <code>term_expansion</code> should be called in user module.</li>
<li>FIXED: include new operation <code>sderef_op</code> when we want to know what a constrained variable is bound to.</li>
<li>FIXED: <code>try_logical_pred</code> depended on <code>B</code>, but <code>B</code> might have been cut. Use trail for the moment.</li>
<li>FIXED: call of <code>project_attributes</code>.</li>
<li>NEW: blackboard routines <code>bb_get</code>, <code>bb_put</code>, <code>bb_delete</code>, <code>bb_update</code>, and <code>yap_flag(n_of_integer_keys_in_bb,INT)</code>. Includes a new file, bb.c.</li>
<li>NEW: <code>yap_flag(n_of_integer_keys_in_db,INT)</code>: dynamically set the number of entries for the hash table used in looking up integer keys for the data-base.</li>
</ul>
<h2>Yap4.2.0pl12:</h2>
<ul>
<li>NEW: <code>README.VC</code> for VisualC++ users.</li>
<li>FIXED: several small changes for VisualC++.</li>
<li>FIXED: <code>_WIN32</code> requires <code>LOWTAGS</code> (<code>0x3000000</code> kind of address) for garbage collection to work.</li>
<li>FIXED: <code>UnifyBound</code> was not handling extensions right.</li>
<li>FIXED: had wrong definition for non-gcc <code>EXTRA_CBACK_ARG</code>.</li>
<li>FIXED: make Yap compile under VisualC++ 6.0 again.</li>
<li>FIXED: <code>exit_yap</code> would not exit.</li>
</ul>
<h2>Yap4.2.0pl11:</h2>
<ul>
<li>FIXED: <code>multifile</code> was not complaining on missing declaration.</li>
<li>FIXED: multifile declarations were not module aware.</li>
<li>CLEANUP: <code>assert/1</code> and <code>dynamic/1</code>.</li>
<li>FIXED: for the nth time tried to make modules SICStus compatible :-(.</li>
<li>NEW: integrated latest version of YAPOR (SBA and ACOW still do not work).</li>
</ul>
<h2>Yap4.2.0pl10:</h2>
<ul>
<li>FIXED: could have a bad cut in <code>call(X->Y)</code>.</li>
<li>FIXED: add <code>ord_intersect/3</code> again (same as <code>ord_intersection/3</code>).</li>
<li>FIXED: <code>save_program/2</code> would not set prompt correctly.</li>
<li>FIXED: bug in <code>stack_shifter</code> after <code>gc</code> (was shifting global pointers).</li>
<li>FIXED: <code>save/1</code> was broken with coroutining.</li>
<li>FIXED: <code>use_module/2</code> should handle lists of files.</li>
<li>FIXED: <code>COROUTINING</code> depended on <code>DEBUG</code> code.</li>
</ul>
<h2>Yap4.2.0pl9:</h2>
<ul>
<li>FIXED: <code>list_to_assoc/2</code>.</li>
<li>FIXED: ANALYST should compile again.</li>