# Changes in YAP-5.1

## Yap-5.1.4:

- .
- FIXED: bad locking in p_signal (obs from Paulo Moura).
- FIXED: DESTDIR and chr.
- FIXED: make term_variables a builtin. (SWI compatibility).
- NEW: X is random(Int) (SWI compatibility).
- NEW: seletchk/3.
- FIXED: do meta-expansion from undefp.
- FIXED: handle correctly flatten([_,[_]],L).
- FIXED: bad syntax in config.h (patch from Keri Harris).
- NEW: format over atom/1.
- FIXED: clean up apply_macros in swi mode.
- FIXED: clean up meta-expansion.
- FIXED: do meta-expansion from undefined call.
- NEW: selectchk/3, nth1/3 and nth1/4.
- FIXED: YapOpcodes has wrong formats (obs from Bart Demoen).
- FIXED: improve format message (obs from Bart Demoen).
- NEW: more versions of maplist (obs from Bart Demoen).
- FIXED: use import mechanism for SWI's flatten/2 (obs from Bart Demoen).
- FIXED: steps towards typed rbtrees plus some cases where one should not copy the null node (Tom Schrijvers and Bart Demoen).
- FIXED: map_tree in trees library (Bart Demoen).
- FIXED: bad call to splay_tree (Bart Demoen).
- FIXED: bad type for write_x_var in add_info (Bart Demoen).
- FIXED: exec/3 should flush streams.
- FIXED: load_files/2 compilation_mode to allow :- source and replace compile by compact.
- FIXED: list_concat/2 (fix from Bart Demoen).
- NEW: dgraph_reachable/3 and friends.

## Yap-5.1.3:

- FIXED: try,retry,trust_logical should handle 0 arguments correctly.
- FIXED: RecoverSlots should check if there are slots to recover.
- FIXED: syntax errors should know they are in an included file.
- FIXED: ungetc should not mess with streams.
- FIXED: LogTalk has its own distribution (Paulo Moura).
- FIXED: Introduce YAP_RunGoalOnce and make sure we actually reover as much ASP as possible (obs from Jean Mehat).
- FIXED: abolish_dynamic should drop FAIL_OP (obs from N Angelopoulos).
- FIXED: cygiwn should ignore SWI console (obs from A N Saravanaraj).
- FIXED: avoid null pointer (obs from Nicos Angelopoulos).
- FIXED: do not allow duplicate values in rbtrees (obs from Jan Wielemaker and Rui Mendes).
- FIXED: handle SIGPIPE and improve USR1 and USR2 (obs from Nicos Angelopoulos).
- NEW: tmp_file/2 (request from Nicos Angelopoulos).
- FIXED: too much pruning on predicate_property/2 (obs from Nicos Angelopoulos).
- FIXED: make sure we return to system mode on failing yesno.
- FIXED: debugger was broken on call/n.
- FIXED: user:expand_goal should be called before import, not after.
- NEW: add apply SWI library to apply_macros.
- NEW: add forall/2 and ignore/1 to system (SWI compatibility).
- FIXED: apply_macros should also define the predicates it exports (obs from Rui Mendes).
- FIXED: complain if we want to redefine an imported module.
- FIXED: X is -(222222222222) would crash (obs from Jan Wielemaker).
- FIXED: more restore fixes.
- FIXED: don't ever jump to mid of lu code.
- FIXED: bad mem management in threads (obs from Paulo Moura).
- FIXED: should init_slots when sucessfully exiting (obs from Trevor Walker).
- FIXED: predicate_property should work for empty dynamic predicates.
- FIXED: scanning very large numbers (obs from Ryszard Szopa).
- FIXED: regexp core-dump (obs from Ryszard Szopa).
- FIXED: handle message_queue_create/1 with vars right (obs from Paulo Moura).
- FIXED: handle thread overflow right (obs from Paulo Moura).
- NEW: upgrade clpqr and chr (SWI compatibility).
- NEW: expects_dialect/1 directive (SWI compatibility).
- NEW: terms:unifiable/3 (SWI compatibility).
- NEW: -q flag for silent booting (request from Nicos Angelopoulos).
- NEW: verbose prolog_flag fixes silent (obs from Nicos Angelopoulos).
- FIXED: true_file_name/3 was totally broken (obs from Nicos Angelopoulos).
- FIXED: Environment variables should only be seen at the beginning of the file (obs from Samir Genaim.)
- FIXED: [ ] should be processed by parser, not by scanner (obs from Samir Genaim).
- NEW: file_base_name/2.
- FIXED: in console, count input characters as being output, as they are also supposed to be displayed by the console manager.
- NEW: SWI/SICStus compatible messaging system.
- FIXED: YAPSHAREDIR was only used when creating the saved state (obs from Nuno Fonseca).
- FIXED: indexing code could not see end of static clause (obs from Lisa Torrey).
- FIXED: indexing code for dynamic predicates was broken with profiling (obs from Lisa Torrey).
- NEW: time_file/2 (SWI-compatibility).
- NEW: module_transparent declaration (SWI-compatibility).
- NEW: strip_module/3 (SWI-compatibility).
- 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.
- NEW: *->/2 (SWI-compatibility).
- NEW: variable_names_may_end_with_quotes allows A' in variable names (request from Nicos Angelopoulos).
- SPEEDUP: quickly check if we are importing an undefined goal.
- FIXED: current_predicate/1 should enumerate all non-system predicates visible (obs from Nicos Angelopoulos).
- NEW: time/1 (based on the SWI-Prolog time/1 predicate; request from Paulo Moura).
- FIXED: with 64 bits indexing would separate ints from atoms (obs from A N Saravanaraj).
- FIXED: duplicated clause when starting from trace (obs from A N Saravanaraj).
- FIXED: always remember wchar_t is unsigned in WIN32.
- FIXED: more BOM trouble (obs from P Moura).
- FIXED: testing for BOM forced incorrect execution of gets (obs from A N Saravanaraj), also fixed stup call to Ungetc in getc and friends.
- FIXED: bad handling of trail overflow.
- FIXED: overflow at entry goal (obs from Paulo Moura).
- FIXED: bug with signals while process wasa dying (obs from Paulo Moura).
- FIXED: compilation in OSX/64 (patches from Will Benton).
- FIXED: do not access erased code (obs from Paulo Moura).
- FIXED: clause/3 should not follow fail.
- FIXED: make sure we don't ask for 0-sized blocks, minimal 64K.
- FIXED: Aux reallocation should always increase aux size.
- NEW: start atom garbage collector by default (except for threads).
- FIXED: restore indices should run over the indices, and not mess them up.
- FIXED: make sure to always remove try-trust chains.
- FIXED: don't adjust garbage when doing stack shift.
- FIXED: stack shifter would get ignore big terms.
- FIXED: retract and friends should remove mf pointers.
- FIXED: small memory leaks and use of uninitialised memory (valgrind).
- NEW: char_type/2 and code_type/2 (request from Brian DeVries).
- 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).
- FIXED: small glitches with profon.
- NEW: allow re-exporting other modules.
- FIXED: graph add_ and del_ predicates should have the original graph as the first argument (obs from A N Saravanaraj).
- FIXED: implement atom holds so that the C-interface can make sure the atom garbage collector will not remove an object.
- FIXED: implement JT for CLP(BN).
- FIXED: use safe locking to ensure that dynamic predicates run correctly.
- FIXED: use matrices to implement variavel elimination, also fix some overflow bugs with matrices.
- FIXED: Yap_shift_visit assumed we were using AUX DL_MALLOC (obs from Bernd Gutmann).
- FIXED: auxiliary stack overflow in term_vars (obs from Bernd Gutmann).
- FIXED: trail overflow while copying huge terms (obs from Bernd Gutmann).
- NEW: compilation_mode option for load_files (request from Saverio).
- FIXED: predicate table could not enough room while overflowing (obs from Bernd Gutmann).
- FIXED: compile large ground terms outside clauses (obs from Bernd Gutmann).
- FIXED: YAP_LeaveGoal should always backtrack, if asked for, for deterministic computations (obs from Trevor Walker).
- FIXED: in_this_file_before should check predicate module, not current module.
- FIXED: overflow when copying constraints.
- FIXED: MkBlob should try to allocate more space.
- FIXED: make viterbi more efficient by not generating the whole graph.
- FIXED: make static_clause more careful about when static clauses begin.
- NEW: support conditional compilation using if/1,elif/1,else/0,endif/0 directives.
- FIXED: delay abort until garbage collection or stack shifting is over.
- FIXED: grow_trail assumed SREG points to stack top!
- FIXED: latest SWI chr.
- FIXED: allow abolishing imports.
- FIXED: YAP_EnterGoal would set YENV[E_CB] before setting YENV (obs from Trevor Walker).
- FIXED: setarg/3 should always set a global variable.
- NEW: define dialect and version_data flags.
- NEW: define __YAP_PROLOG__.
- FIXED: LAM compilation was broken (obs from Bernd Gutmann).
- FIXED: profon was broken.
- NEW: send newline even for unleashed ports (obs from Miguel Filgueiras).
- NEW: atom_number/2 for SWI compatibility.
- FIXED: fix YAP_LeaveGoal() (obs from Trevor Walker).
- FIXED: gc generation should not be an integer: otherwise it can be misled by global growth.
- FIXED: sub_atom 0 should work.
- FIXED: have has table of preds with repeated functors (obs from Bernd Gutmann).
- FIXED: major bugs in encoding support (obs from Paulo Moura).
- FIXED: overflow while gc was storing pointers in trail (obs from Angelika Kimmig).
- FIXED: implement directive encoding/1 (obs from Paulo Moura).
- UPGRADED: to current JPL.
- FIXED: incremental garbage collection conflicts with global variables (disable it for now).
- FIXED: trail overflow from calling dynamic predicates (obs from Bernd Gutmann).
- NEW: add nb_*arg versions.
- FIXED: overflow in indexing code (obs from Jesse Davis).
- NEW: improve nb_ routines with linkvar and set_shared_var.
- NEW: make copy_term share ground-terms and add non-sharing version, duplicate_term/2.
- FIXED: improve efficiency of global variables.
- FIXED: simplify Makefile of yap2swi by moving yap2swi.o to main.
- FIXED: tabling broken (obs from Will Benton).
- FIXED: updates to SWI C-interface and corresponding extensions to C-interface .
- FIXED: be careful to give delayarena exactly what it needs to expand.
- FIXED: improve BNT support with CLP(BN).
- FIXED: support checking for big_nums and readline. (obs from Rui Camacho)
- FIXED: make thread_create more compatible with SWI. (obs from Paulo Moura)
- FIXED: give startup path to chr. (obs from Paulo Moura)
- FIXED: optimise pre-compiled meta-calls.
- FIXED: CLP(BN) with BNT.
- FIXED: allow dgraphs with graphs of vars.
- FIXED: add matrix library documentation.
- NEW: start atom_gc by default.
- FIXED: array add was not working for dyamic arrays (obs from Rui Camacho).
- FIXED: add MATLAB interface docs.

## Yap-5.1.2:

- FIXED: clauses with floats/large ints should be pinnned (obs from Bernd Gutmann).
- FIXED: indexing-code emulator should update S (obs from Rui Camacho).
- FIXED: error with atoms in arithmetic messages (obs from Paulo Moura).
- FIXED: bug in meta-calls to external C code (obs from Bernd Gutmann).
- NEW: matlab interface.
- FIXED: search for libraries right.
- FIXED: alarm used alarm(2) but it should use setitimer(2) so that timeout can work with millisecs (obs from Bernd Gutmann).
- FIXED: add . to -g goal (obs from Paulo Moura).
- FIXED: min_list (obs from Angelika, Bernd & Niels).
- FIXED: issues with C-Interface (obs from Trevor Walker).
- FIXED: mktime needs to know if daylight time savings are on (obs from Bernd Gutmann).
- FIXED: handle atom lookup and functor overflows while parsing (obs from Bernd Gutmann).
- FIXED: get rid of static structures for modules (obs from Bernd Gutmann).
- FIXED: SREG might be lost on trail/heap overflow, and that would confuse later pruning.
- FIXED: UNICODE16 was broken.
- NEW: support for BOM.
- FIXED: debugging and clause/3 over tabled predicates would kill YAP.
- FIXED: memory expansion in deallocate would lose cut pointer.
- FIXED: make growtrail do more than grow chunks of 64KB.
- FIXED: growtrail was broken if called while doing variable shunting.
- FIXED: by default,allow defining infix+prefix/posfix instead of using standard ISO.
- FIXED: nb_current was unimplemented (obs from Pablo Beltran).
- FIXED: by default,allow defining infix+prefix/posfix instead of using standard ISO.
- NEW: --with-max-workers tells us how many threads we can have (request from Paulo Moura).
- FIXED: wchar_t in the WIN32 is unsigned and 16 bits.
- FIXED: stack overflow when growing the delay stack.
- FIXED: overflows with MIN_INT (obs from Marius Filip).
- NEW: make debugger more like standard debuggers (obs from Miguel Filgueiras).
- NEW: glist_void_varx was broken (obs from Marius Filip).
- NEW: unify_with_occurs_check/2 was broken with extensions (obs from Aline Paes).
- NEW: stack_dump/0 from Trevor.
- NEW: with_mutex/2.
- NEW: call_cleanup/2 and call_cleanup/3 at the request of Paulo Moura and Christian.
- FIXED: garbage collector would not understand bindings to mavars in tabling version.
- FIXED: cut might not prune correctly around meta-call (obs by Trevor Walker).
- NEW: keep history around (use nb and friends).
- NEW: fix determinsitic debugging.
- NEW: make debugger compatible with threads (use nb and friends).
- FIXED: debugger was confused when crossing between regions.
- NEW: unify_with_occurs_check was very broken (obs from Aline Paes).
- NEW: partial support for UNICODE.
- FIXED: ÿ has ISO-LATIN1 code 255, so it would be confused with EOF (obs from Miguel Filgueiras).
- FIXED: mess with \+ meta-call and modules (obs from Nicos Angelopoulos).
- FIXED: reconsult with spy was broken (obs from Miguel Filgueiras).
- FIXED: mess with EOF and open (obs from Nicos Angelopoulos).
- FIXED: make use_module/3 handle case where module is given.
- FIXED: library_directory/1 was not being used.
- FIXED: style_checker was failing on DCGs (obs from Miguel Filgueiras).
- FIXED: +inf is a number (obs from Trevor Walker).
- FIXED: if peek finds EOF get should not return an error (obs from Miguel Filgueiras).
- FIXED: allow overflows on timestamps.
- FIXED: more fixes for new dynamic code and stack shifting.
- 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.
- FIXED: avl_new/1 (obs from Miguel Filgueiras).
- FIXED: broken all/3 (obs from Miguel Filgueiras).
- FIXED: make 128 maximum disjunction depth (obs from Nicos Angelopoulos).
- FIXED: first cut at using timestamps with logical updates.
- FIXED: indexing on doubles wasn't working properly.
- FIXED: sending large lists of atomics to DB was very, very slow.
- FIXED: make library_directory/1 better protected.
- FIXED: make YAP smarter at finding libraries in WIN32.
- NEW: data structures using global variables: queues, heaps and beam search support.
- NEW: global variables a la hProlog, includes major changes in stack shifter, garbage collector, and setof.
- FIXED: do not call garbage collector if the space we need is more than what is available (obs from Nicos Angelopoulos).
- FIXED: recordaifnot(a,_,_) was broken (obs from Jesse Davis).
- SPEEDUP: some speedups to garbage collector (obs from Nicos Angelopoulos).
- NEW: a first cut at readutil.yap (request from Stefan Weinbrenner).
- FIXED: compile | as a disjunction (obs from Ole Edsberg).
- NEW: rbqueues keeps a simple db queue
- NEW: cut_up_to_next_disjunction/0 tries to prune until the closest choice-point from the parent disjunction (think query packs).
- FIXED: error condition when we expand to maximum number of variables.
- FIXED: bug when variable list in parser overflows.
- FIXED: min_list (obs from Filip Zelezny).
- FIXED: -l and -L options (again?).
- FIXED: if we cannot read more chars in saved state we're dead.
- FIXED: termination info for failed and detached threads (obs Paulo Moura).
- FIXED: check_callable should check for modules (obs Paulo Moura).
- NEW: add thread_sleep/1, mostly works like system:sleep/1 (request from Paulo Moura).
- NEW: add select/3 and intersection/3 to SWI emulation.
- FIXED: always keep in mind that Yap_WakeUp may change H (would break chr).
- FIXED: add_clause of new predicate could get in loop.
- FIXED: don't have to print anything if there is not anything to print.
- FIXED: current_thread/2 should fail if called with bad alias or ID (obs Paulo Moura).
- FIXED: correct code statistics with DL_MALLOC or SYSTEM_MALLOC.
- NEW: use true_file_name for file operations in system library (obs Paulo Moura).
- NEW: make YAP large address aware on WIN32 (should be able to allocate up to 3GB).
- 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.
- FIXED: WIN32 may move functions without moving emulator: always fix C-functtions.
- FIXED: use $SYSTEMDRIVE to install YAP in WIN32.
- FIXED: compilation bug in arg(X,1,A).
- NEW: extend interface to pass chunks of integers/floats.
- FIXED: get rid of some more global variables.
- NEW: thread_yield/0 (request Paulo Moura).
- FIXED: current_thread was not returning aliases (obs Paulo Moura).
- FIXED: AuxSp was not properly initialised for new threads (obs Paulo Moura).
- FIXED: recusive indexing over unbound compound terms was broken (obs Ricardo Lopes).
- FIXED: toplevel_print_options and debugger_print_options was broken and undocumented (obs Ashwin Srinivasan).
- NEW: lock streams while using them (concurrent writing is still allowed).
- FIXED: make current_op only walk over atoms.
- FIXED: memory corruption when copying consult stack (obs Paulo Moura).
- FIXED: get rid of some silly locks.
- FIXED: don't compare block top with <= (obs Paulo Moura).
- FIXED: ! was not pruning right in p_execute_clause (obs Nicos Angelopoulos).
- FIXED: system/1 and shell/1 should check return code (obs Nicos Angelopoulos).
- FIXED: thread_peek_message should use aliases (obs Paulo Moura).
- FIXED: garbage collector should not rewrite cp_tr fields until after marking (obs Paulo Moura).
- FIXED: garbage collector was allowing garbage trail entries for multi-assignment variables. Namely, old var value might point to new space (obs Paulo Moura).
- FIXED: thread aliases were being cleaned up just after being installed (obs Paulo Moura).
- FIXED: rb_partial_map was broken.
- NEW: wdgraph and wundgraph libraries, for weighted graphs.

## Yap-5.1.1:

- FIXED: compatibility fixes .

## Yap-5.1.0:

- NEW: new implementation of association lists, based on red-black trees.
- NEW: undgraph library, based on dgraphs.
- NEW: dgraphs library, towards a more efficient implementation of directed graphs.
- NEW: rb_update, rb_apply, rb_visit, rb_keys and rb_map.
- FIXED: use rb_ prefix for all red black predicates.
- FIXED: got confused about position of syntax error (obs Mark Goadrich).
- FIXED: compiling inline lists would compile the lists and then some more (obs Nicos Angelopoulos).
- FIXED: message queue ops should not fail silently (obs Paulo Moura).
- FIXED: stream bugs in iopreds.c (Takeyuki SHIRAMOTO).
- FIXED: extra backtrack in informational_messages (obs Nicos Angelopoulos).
- NEW: abolish_module/1 at the request of Nicos Angelopoulos.
- FIXED: variable shunting needs HB initialised before any marking takes place!!!
- FIXED: handle possible overflow in term_variables
- FIXED: check for singleton warnings in .yap files, try to catch bugs before they bite people.
- FIXED: make threads compile again, fix some compilation warnings.
- 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.
- FIXED: check if indexing code is live before purging it (obs Bernd Gutmann).
- FIXED: pass backtrackable C-preds all flags they ask for (obs Tiago Soares).
- FIXED: compilation with dynamic libraries and JPL compilation.
- FIXED: typo in manual (obs Bernd Gutmann).
- NEW: track the current block more aggressively, to avoid expand_index taking too long searching for a block.
- FIXED: if LU indices have groups, we should create try-retry-trust sequences immediately, otherwise LU semantics can be compromised (obs Bernd Gutmann).
- FIXED: when cleaning trail, gc would not always clean value field! (obs Remko Troncon).
- FIXED: when cleaning megaclauses, clean flag too.
- FIXED: don't put array twice in list of live arrays (gc would loop).
- 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.