Changes in YAP-5.1
Yap-5.1.0:
-  NEW: debugger will not backtrack over complete deterministic computations.
 
-  NEW: debugger can show CP stack.
 
-  NEW: internal procedure to show choice-point stack.
 
-  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).
 
-  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.
 
-  FIXED: make Yap files usable again as a script (obs Ales Kozumplik).
 
-  FIXED: silent informational_messages was being ignored (obs Nicos Angelopoulos).
 
-  FIXED: initialization should only be performed after all
  consulted files are done.
 
-  FIXED: garbage collector now makes refs to erased LU clauses point
  to LogUpdErasedMarker.
 
-  FIXED: get rid of old code referring to LogUpds from within ImmediateSemantics.
 
-  FIXED: indexing code would get confused about size of inlined
float/1 (obs Paulo Moura).
 
-  FIXED: broken SIGINT with tkyap (Keri Harris).
 
-  FIXED: indexing of bignums was broken, just disable it for now.
 
-  FIXED: pipe open was returning the same descriptor twice (obs Christian Thaeter).
 
-  FIXED: style check should compare with true file name.
 
-  FIXED: ^c should take care about TR and B.
 
-  FIXED: don't pass a pointer to a mpz_t. (obs Nuno Fonseca)
 
-  FIXED: handle heap overflow from huge atoms in
  Yap_LookupAtom/scanner (obs Nuno Fonseca).
 
-  FIXED: bignum was using int where should be long int (obs Roberto Bagnara).
 
-  NEW: x86_64 should have registers, right? First cut at using them.
 
-  FIXED: call_n would break under 64 bits, an int problem.
 
-  FIXED: more compilation problems if GMP not there (obs Remko Troncon).
 
-  FIXED: make syntax error report the line where the bug was (obs Jude Shavlik).
 
-  FIXED: ok, MkBigInt shouldn't free the bigint.
 
-  FIXED: MkBigInt already frees bigint.
 
-  FIXED: don't pass a pointer to a mpz_t. (obs Nuno Fonseca)
 
-  FIXED: YENV may be an HW register (could break some tabling code)
  (obs Remko Troncon) 
 
-  FIXED: All YAAM instructions are now brackedted, so Op introduced an { and EndOp intr
oduces an }. This is because Ricardo assumes that. 
 
-  FIXED: compile attvars when COROUTING is undefined. 
 
-  FIXED: compiler warnings due to c-interface changes
 .
-  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). 
 
-  FIXED: indexing cut should stop looking after a cut!!!! (obs Paulo Moura).
 -  FIXED: mktime was broken in WIN32. 
 
-  FIXED: don't assume a fixed point for WIN32 memory allocation. 
 
-  FIXED: don't call goal_expand when looking for handlers of undefined procedures. 
 
-  FIXED: always walk through modules in the same order when waking
  up variables (otherwise, breaks CLP(QR)). 
 
-  NEW: SWI-like yap_flag(float_format,_). 
 
-  FIXED: change C-interface to use new interface. 
 
-  FIXED: << and >> should handle overflows. 
 
-  FIXED: mod and rem now implement ISO semantics (hopefully). 
 
-  FIXED: change implementation of bigints to be more like GMP style. 
 
-  FIXED: handle assert/retracts and gprof overhead right. 
 
-  FIXED: indexing code was not setting up properly registers on longjmps. 
 
-  FIXED: use RISC architecture on MacOsX (__POWERPC__ + _POWER). 
 
-  FIXED: init system predicates should generate full static clause. 
 
-  NEW: tabling does not conflit with depth limit (Trevor Walker). 
 
-  NEW: make scanner restartable on seekable files (Nuno Fonseca). 
 
-  NEW: improve error discovery within scanner (Jude Shavlik). 
 
-  NEW: change event profiler to do profiling online and
off-line. 
 
-  NEW: routine to find clause/pred 
 
-  NEW: always end clauses with Ystop START, so that we can refer
back to the clause's beginning. 
 
-  NEW: always have a pointer to Pred in clauses, so that we can
find current predicate. 
 
-  NEW: heapgc should now be concurrent when using threads. 
 
-  FIXED: heapgc wo tags can handle trail overflows right. 
 
-  NEW: heapgc wo tags does not write on the collected areas during marking. 
 
-  FIXED: dif/2 might get into trouble restoring assignments to
attributes. 
 
-  NEW: Yap_DebugPlWrite and Yap_DebugErrorPutc for those debugging
moments. 
 
-  FIXED: get rid of dead internal variable MutableList. 
 
-  NEW: write_depth/3 for very large compound terms. 
 
-  FIXED: new bug in garbage collection. 
 
-  FIXED: overflow handling in DB/AttVars was resetting old var, and
  wasn't resetting trail. 
 
-  FIXED: when rebuilding DB term with attvars, set global var to
  point to attvar. 
 
-  NEW: add school CLP(BN) example. 
 
-  NEW: add sc CLP(BN) example. 
 
-  FIXED: make exception port more like a true port. 
 
-  FIXED: don't run ^ in setof if there are no excess variables. 
 
-  FIXED: prolog_load_context(directory) relied on dead code. 
 
-  FIXED: some small beautifications for system/1, getcwd/1, sh/1, rename/2. 
 
-  NEW: operating_system_error. 
 
-  FIXED: Restore could not recover DL_MALLOC info and was not recovering
DBTerms correctly. 
 
-  FIXED: with locking field, AtomNil and friends might not be
aligned, and would be confused with int. 
 
-  FIXED: variables should always be reset when doing trail
expansion from the parser, even if there is no shifting (obs Trevor
Walker). 
 
-  FIXED: growglobal with realloc was broken. 
 
-  FIXED: with threads, self-deadlocking in new array codes. 
 
-  FIXED: in tabling, use malloc when AllocCodeSpace fails. 
 
-  FIXED: in tabling don't look inside cp_ap == NULL and fix recent
  bug in walking dependency frames. 
 
-  FIXED: with tabling ASP sometimes was miscalculated, causing
  trouble with stack shifter (obs Kostis Sagonas). 
 
-  FIXED: ~D should print bignums (obs Jude Shavlik). 
 
-  FIXED: format's ~d and ~D were broken (obs Jude Shavlik). 
 
-  FIXED: profiler should not talk about hidden predicates or idb entries. 
 
-  FIXED: recentg change in setof could bind argument (obs
  Jude Shavlik). 
 
-  FIXED: EOF (-1) at debugger prompt would generate exception (obs
  Jude Shavlik). 
 
-  FIXED: ^C was very broken: break was not accepted, and debug,
trace and statistics did not work at all (obs Jude Shavlik). 
 
-  FIXED: format_has_tabs could miss tab signs (obs Jude Shavlik). 
 
-  FIXED: plug holes in memory allocation from scanner (obs
Mark Goadrich). 
 
-  FIXED: instrument memory allocation when using system malloc. 
 
-  FIXED: adjust_cp_hbs was readjusting consumer choice-points (it
  can only adjust hb once) (obs Remko Troncon). 
 
-  FIXED: try to make GC trace message "marked  N vars" intelligible. 
 
-  FIXED: garbage collection of mabindings was broken with tabling
(obs Remko Troncon). 
 
-  FIXED: did not initialise tabling variables
(obs Remko Troncon). 
 
-  FIXED: should have meta-predicate definitions for calls and
discontiguous. 
 
-  FIXED: have discontiguous as a builtin, not just as a
  declaration (obs Jude Shavlik). 
 
-  FIXED: if first argument was unbound, comparisons might be
  called with second argument undereferenced!! 
 
-  FIXED: strip ^ before doing execute in setof or bagof. 
 
-  FIXED: use CONST declarations in interface (thanks to Roberto Bagnara). 
 
-  FIXED: absmi should consult PREG, not P (obs Remko Troncon). 
 
-  FIXED: bad init in tabling code. 
 
-  FIXED: YAP_MkBigIntTerm was broken (obs Roberto Bagnara). 
 
-  NEW: update documentation to support new CLP(R) and CHR packages. 
 
-  FIXED: regression in clpbn/utils.yap. 
 
-  NEW: put_attrs/2. 
 
-  FIXED: don't install CLP unless coroutining && rational trees are
  active. 
 
-  FIXED: syntax error in ypp.yap (obs Paulo Moura). 
 
-  FIXED: save/restore should be as usual if using YAP allocation. 
 
-  FIXED: save/restore FZ regs. 
 
-  FIXED: $loop_stream could be defined early in boot process. 
 
-  NEW: make rational trees default. 
 
v-  NEW: make enable-max-memory default. 
 
-  FIXED: allow people to disable indexing (obs Ricardo Lopes). 
 
-  FIXED: make undefined exception more ISO like (obs Paulo Moura). 
 
-  FIXED: add missing dependency in chr's Makefile.in. 
 
-  FIXED: fix corruption in ypp.yap. 
 
-  FIXED: ~@ makes format a meta-predicate. 
 
-  FIXED: format should do immediate exit on exception (from Prolog call). 
 
-  FIXED: make format reentrant and thread-safe (format may call itself). 
 
-  FIXED: don't complain if a module is loading a reexported
  predicate and the original predicate. 
 
-  FIXED: change a few defaults for SWI compatibility. 
 
-  FIXED: library prandom was broken (obs Nuno Fonseca). 
 
-  NEW: add max_tagged_integer and min_tagged_inter prolog_flags. 
 
-  NEW: add ~@ option to format. 
 
-  NEW: memberchk/2 is like builtin in SWI emulation lib. 
 
-  NEW: SWI like prolog_source_location/2 
 
-  FIXED: $loop_stream usage was broken. Fix $fetch_stream_alias to
  be bidirectional.
 
-  FIXED: allow nb_set followed by b_set, bheakkkk! The other way round
is still not allowed.
 
-  NEW: from SWI maplist/2, maplist/3, maplist/4.
 
-  NEW: call/2, call/3, call/4.
 
-  FIXED: disable mutables in SWI mode. 
 
-  FIXED: safe C-preds should always use P when calling garbage
       collector, aarrggh :-(, CP use found in GetTermFromArray.
 
-  NEW: SWI-like ord_empty/1 and ord_memberchk/2 in library(ordsets).
 
-  FIXED: safe call_c should check for signals before calling a built-in.
 
-  NEW: -p option allows setting path from command line.
 
-  FIXED: during grow, heap references should not be followed from trail.
 
-  FIXED: \= was not resetting wakeups correctly.
 
-  FIXED: copy_term was broken if attrs were an unbound variable.
 
-  FIXED: during garbage collection, heap references should be
  copied to trail, and that's it.
 
-  FIXED: excessive backtracking in multifile declaration.
 
-  NEW: allow style_check(singleton) and style_check(-singleton).
 
-  NEW: SWI module now makes atom_concat/{2,3} behave like atomic_concat/{2,3}.
 
-  NEW: add SWI-like copy_term_nat/2.
 
-  NEW: add SWI-like get_time and convert_time, but using integers, not floats.
 
-  NEW: add SWI-like working_directory/2 and chdir/2.
 
-  NEW: add append/3 and member/2 to SWI module.
 
-  FIXED: use bootstrap/1 to load up system.
 
-  FIXED: use_module/3 did not get info on loaded_module.
 
-  NEW:  use_load_files as main file loading option.
 
-  FIXED:  broken do_print_message for defined_elsewhere.
 
-  FIXED:  debugger option.
 
-  FIXED: trace through undefined predicates correctly.
 
-  FIXED: WIN32 missing include files (untested)
 
-  FIXED: -L trouble (my thanks to Takeyuchi Shiramoto-san)!
 
-  FIXED: debugging of backtrable user-C preds would core dump.
 
-  FIXED: redeclaring a C-predicate as Prolog core dumps.
 
-  FIXED: badly protected  YapInterface.h.
 
-  FIXED: break/0 was failing at exit.
 
-  FIXED: YAP_cut_fail and YAP_cut_succeed were different from manual.
 
-  FIXED: tracing through data-bases could core dump.
 
-  FIXED: cut could break on very large computations.
 
-  FIXED: first pass at BigNum issues (obs Roberto Bagnara).
 
-  FIXED: debugger could get go awol after fail port.
 
-  FIXED: weird message on wrong debugger option.
 
-  FIXED: cases where restore/1 could break.
 
-  NEW:  SWI predicates now update prolog module
 
-  NEW:  port of Leslie's CLP(R) system.
 
-  NEW:  generations in garbage collector.
 
-  SPEEDUP:  optimise some garbage collector code.