This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/changes-5.1.html

400 lines
22 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<title>YAP change log</title>
<link rel=stylesheet href="changes.css" type="text/css">
</head>
<body>
<hr>
<h1>Changes in YAP-5.1</h1>
<h2>Yap-5.1.2:</h2>
<ul>
<li> FIXED: memory expansion in deallocate would lose cut pointer.</li>
<li> FIXED: make growtrail do more than grow chunks of 64KB.</li>
<li> FIXED: growtrail was broken if called while doing variable shunting.</li>
<li> FIXED: by default,allow defining infix+prefix/posfix instead of
using standard ISO.</li>
<li> FIXED: nb_current was unimplemented (obs from Pablo Beltran).</li>
<li> FIXED: by default,allow defining infix+prefix/posfix instead of
using standard ISO.</li>
<li> NEW: --with-max-workers tells us how many threads we can have (request from Paulo Moura).</li>
<li> FIXED: wchar_t in the WIN32 is unsigned and 16 bits.</li>
<li> FIXED: stack overflow when growing the delay stack.</li>
<li> FIXED: overflows with MIN_INT (obs from Marius Filip).</li>
<li> NEW: make debugger more like standard debuggers (obs from Miguel Filgueiras).</li>
<li> NEW: glist_void_varx was broken (obs from Marius Filip).</li>
<li> NEW: unify_with_occurs_check/2 was broken with extensions (obs from Aline Paes).</li>
<li> NEW: stack_dump/0 from Trevor.</li>
<li> NEW: with_mutex/2.</li>
<li> NEW: call_cleanup/2 and call_cleanup/3 at the request of Paulo
Moura and Christian.</li>
<li> FIXED: garbage collector would not understand bindings to mavars in
tabling version.</li>
<li> FIXED: cut might not prune correctly around meta-call (obs by
Trevor Walker).</li>
<li> NEW: keep history around (use nb and friends).</li>
<li> NEW: fix determinsitic debugging.</li>
<li> NEW: make debugger compatible with threads (use nb and friends).</li>
<li> FIXED: debugger was confused when crossing between regions.</li>
<li> NEW: unify_with_occurs_check was very broken (obs from Aline Paes).</li>
<li> NEW: partial support for UNICODE.</li>
<li> FIXED: &yuml; has ISO-LATIN1 code 255, so it would be confused with EOF
(obs from Miguel Filgueiras).</li>
<li> FIXED: mess with \+ meta-call and modules (obs from Nicos Angelopoulos).</li>
<li> FIXED: reconsult with spy was broken (obs from Miguel Filgueiras).</li>
<li> FIXED: mess with EOF and open (obs from Nicos Angelopoulos).</li>
<li> FIXED: make use_module/3 handle case where module is given.</li>
<li> FIXED: library_directory/1 was not being used.</li>
<li> FIXED: style_checker was failing on DCGs (obs from Miguel Filgueiras).</li>
<li> FIXED: +inf is a number (obs from Trevor Walker).</li>
<li> FIXED: if peek finds EOF get should not return an error (obs
from Miguel Filgueiras).</li>
<li> FIXED: allow overflows on timestamps.</li>
<li> FIXED: more fixes for new dynamic code and stack shifting.</li>
<li> FIXED: if we can generate index on an sub-argument and the
argument is unbound we should generate the code, suspend
on it, and then call the system again.</li>
<li> FIXED: avl_new/1 (obs from Miguel Filgueiras).</li>
<li> FIXED: broken all/3 (obs from Miguel Filgueiras).</li>
<li> FIXED: make 128 maximum disjunction depth (obs from Nicos Angelopoulos).</li>
<li> FIXED: first cut at using timestamps with logical updates.</li>
<li> FIXED: indexing on doubles wasn't working properly.</li>
<li> FIXED: sending large lists of atomics to DB was very, very slow.</li>
<li> FIXED: make library_directory/1 better protected.</li>
<li> FIXED: make YAP smarter at finding libraries in WIN32.</li>
<li> NEW: data structures using global variables: queues, heaps and
beam search support.</li>
<li> NEW: global variables a la hProlog, includes major changes in
stack shifter, garbage collector, and setof.</li>
<li> FIXED: do not call garbage collector if the space we need is more
than what is available (obs from Nicos Angelopoulos).</li>
<li> FIXED: recordaifnot(a,_,_) was broken (obs from Jesse Davis).</li>
<li> SPEEDUP: some speedups to garbage collector (obs from Nicos Angelopoulos).</li>
<li> NEW: a first cut at readutil.yap (request from Stefan Weinbrenner).</li>
<li> FIXED: compile | as a disjunction (obs from Ole Edsberg).</li>
<li> NEW: rbqueues keeps a simple db queue</li>
<li> NEW: cut_up_to_next_disjunction/0 tries to prune until the closest
choice-point from the parent disjunction (think query packs).</li>
<li> FIXED: error condition when we expand to maximum number of variables.</li>
<li> FIXED: bug when variable list in parser overflows.</li>
<li> FIXED: min_list (obs from Filip Zelezny).</li>
<li> FIXED: -l and -L options (again?).</li>
<li> FIXED: if we cannot read more chars in saved state we're dead.</li>
<li> FIXED: termination info for failed and detached threads (obs Paulo Moura).</li>
<li> FIXED: check_callable should check for modules (obs Paulo Moura).</li>
<li> NEW: add thread_sleep/1, mostly works like system:sleep/1 (request from Paulo Moura).</li>
<li> NEW: add select/3 and intersection/3 to SWI emulation.</li>
<li> FIXED: always keep in mind that Yap_WakeUp may change H (would
break chr).</li>
<li> FIXED: add_clause of new predicate could get in loop.</li>
<li> FIXED: don't have to print anything if there is not anything to
print.</li>
<li> FIXED: current_thread/2 should fail if called with bad alias or
ID (obs Paulo Moura).</li>
<li> FIXED: correct code statistics with DL_MALLOC or SYSTEM_MALLOC.</li>
<li> NEW: use true_file_name for file operations in system library (obs Paulo Moura).</li>
<li> NEW: make YAP large address aware on WIN32 (should be able to
allocate up to 3GB).</li>
<li> FIXED: WIN32 may have a lot of fragmentation so several memory holes may be active at the same time, keep up to 32 open holes.</li>
<li> FIXED: WIN32 may move functions without moving emulator: always fix C-functtions.</li>
<li> FIXED: use $SYSTEMDRIVE to install YAP in WIN32.</li>
<li> FIXED: compilation bug in arg(X,1,A).</li>
<li> NEW: extend interface to pass chunks of integers/floats.</li>
<li> FIXED: get rid of some more global variables.</li>
<li> NEW: thread_yield/0 (request Paulo Moura).</li>
<li> FIXED: current_thread was not returning aliases (obs Paulo Moura).</li>
<li> FIXED: AuxSp was not properly initialised for new threads (obs Paulo Moura).</li>
<li> FIXED: recusive indexing over unbound compound terms was broken
(obs Ricardo Lopes).</li>
<li> FIXED: toplevel_print_options and debugger_print_options was
broken and undocumented (obs Ashwin Srinivasan).</li>
<li> NEW: lock streams while using them (concurrent writing is still allowed).</li>
<li> FIXED: make current_op only walk over atoms.</li>
<li> FIXED: memory corruption when copying consult stack (obs Paulo Moura).</li>
<li> FIXED: get rid of some silly locks.</li>
<li> FIXED: don't compare block top with <= (obs Paulo Moura).</li>
<li> FIXED: ! was not pruning right in p_execute_clause (obs Nicos
Angelopoulos).</li>
<li> FIXED: system/1 and shell/1 should check return code (obs Nicos
Angelopoulos).</li>
<li> FIXED: thread_peek_message should use aliases (obs Paulo Moura).</li>
<li> FIXED: garbage collector should not rewrite cp_tr fields until
after marking (obs Paulo Moura).</li>
<li> FIXED: garbage collector was allowing garbage trail entries for
multi-assignment variables. Namely, old var value might point to new space
(obs Paulo Moura).</li>
<li> FIXED: thread aliases were being cleaned up just after being
installed (obs Paulo Moura).</li>
<li> FIXED: rb_partial_map was broken.</li>
<li> NEW: wdgraph and wundgraph libraries, for weighted graphs.</li>
</ul>
<h2>Yap-5.1.1:</h2>
<ul>
<li> FIXED: compatibility fixes .</li>
</ul>
<h2>Yap-5.1.0:</h2>
<ul>
<li> NEW: new implementation of association lists, based on red-black
trees. </li>
<li> NEW: undgraph library, based on dgraphs. </li>
<li> NEW: dgraphs library, towards a more efficient implementation of
directed graphs. </li>
<li> NEW: rb_update, rb_apply, rb_visit, rb_keys and rb_map. </li>
<li> FIXED: use rb_ prefix for all red black predicates. </li>
<li> FIXED: got confused about position of syntax error (obs Mark
Goadrich). </li>
<li> FIXED: compiling inline lists would compile the lists and then
some more (obs Nicos Angelopoulos). </li>
<li> FIXED: message queue ops should not fail silently (obs Paulo
Moura). </li>
<li> FIXED: stream bugs in iopreds.c (Takeyuki SHIRAMOTO). </li>
<li> FIXED: extra backtrack in informational_messages (obs Nicos
Angelopoulos).</li>
<li> NEW: abolish_module/1 at the request of Nicos Angelopoulos.</li>
<li> FIXED: variable shunting needs HB initialised before any marking
takes place!!!</li>
<li> FIXED: handle possible overflow in term_variables</li>
<li> FIXED: check for singleton warnings in .yap files, try to catch
bugs before they bite people.</li>
<li> FIXED: make threads compile again, fix some compilation warnings.</li>
<li> FIXED: use different chains for dead static clauses, static
indices and dead mega clauses. Extend dead clauses with next field so that
they can added into chain. Fix restore to see dead clauses.</li>
<li> FIXED: check if indexing code is live before purging it (obs
Bernd Gutmann).</li>
<li> FIXED: pass backtrackable C-preds all flags they ask for (obs
Tiago Soares).</li>
<li> FIXED: compilation with dynamic libraries and JPL compilation.</li>
<li> FIXED: typo in manual (obs Bernd Gutmann).</li>
<li> NEW: track the current block more aggressively, to avoid
expand_index taking too long searching for a block.</li>
<li> FIXED: if LU indices have groups, we should create
try-retry-trust sequences immediately, otherwise LU semantics can be
compromised (obs Bernd Gutmann).</li>
<li> FIXED: when cleaning trail, gc would not always clean value
field! (obs Remko Troncon).</li>
<li> FIXED: when cleaning megaclauses, clean flag too.</li>
<li> FIXED: don't put array twice in list of live arrays (gc would loop).</li>
<li> NEW: debugger will not backtrack over complete deterministic computations.</li>
<li> NEW: debugger can show CP stack.</li>
<li> NEW: internal procedure to show choice-point stack.</li>
<li> FIXED: Incremental GC could still get confused after backtracking
over GEN marker. Associate GEN marker with timestamp and make sure
we only use current GEN markers (obs Mark Goadrich).</li>
<li> FIXED: Yap on OSX should not make CreepFlag a register, as this
breaks Interrupt Handling. Also, it seems that if I do not reserve
r13, GCC will use r14 for its own evil purposes.</li>
<li> FIXED: make Yap files usable again as a script (obs Ales Kozumplik).</li>
<li> FIXED: silent informational_messages was being ignored (obs Nicos Angelopoulos).</li>
<li> FIXED: initialization should only be performed after all
consulted files are done.</li>
<li> FIXED: garbage collector now makes refs to erased LU clauses point
to LogUpdErasedMarker.</li>
<li> FIXED: get rid of old code referring to LogUpds from within ImmediateSemantics.</li>
<li> FIXED: indexing code would get confused about size of inlined
float/1 (obs Paulo Moura).</li>
<li> FIXED: broken SIGINT with tkyap (Keri Harris).</li>
<li> FIXED: indexing of bignums was broken, just disable it for now.</li>
<li> FIXED: pipe open was returning the same descriptor twice (obs Christian Thaeter).</li>
<li> FIXED: style check should compare with true file name.</li>
<li> FIXED: ^c should take care about TR and B.</li>
<li> FIXED: don't pass a pointer to a mpz_t. (obs Nuno Fonseca)</li>
<li> FIXED: handle heap overflow from huge atoms in
Yap_LookupAtom/scanner (obs Nuno Fonseca).</li>
<li> FIXED: bignum was using int where should be long int (obs Roberto Bagnara).</li>
<li> NEW: x86_64 should have registers, right? First cut at using them.</li>
<li> FIXED: call_n would break under 64 bits, an int problem.</li>
<li> FIXED: more compilation problems if GMP not there (obs Remko Troncon).</li>
<li> FIXED: make syntax error report the line where the bug was (obs Jude Shavlik).</li>
<li> FIXED: ok, MkBigInt shouldn't free the bigint.</li>
<li> FIXED: MkBigInt already frees bigint.</li>
<li> FIXED: don't pass a pointer to a mpz_t. (obs Nuno Fonseca)</li>
<li> FIXED: YENV may be an HW register (could break some tabling code)
(obs Remko Troncon) </li>
<li> FIXED: All YAAM instructions are now brackedted, so Op introduced an { and EndOp intr
oduces an }. This is because Ricardo assumes that. </li>
<li> FIXED: compile attvars when COROUTING is undefined. </li>
<li> FIXED: compiler warnings due to c-interface changes</li>.
<li> FIXED: scanner would convert LONG_MIN to bigint, but it can be
represent as a LONG; fixed by using mpz_fits_slong_p (obs Roberto Bagnara). </li>
<li> FIXED: indexing cut should stop looking after a cut!!!! (obs Paulo Moura).
<li> FIXED: mktime was broken in WIN32. </li>
<li> FIXED: don't assume a fixed point for WIN32 memory allocation. </li>
<li> FIXED: don't call goal_expand when looking for handlers of undefined procedures. </li>
<li> FIXED: always walk through modules in the same order when waking
up variables (otherwise, breaks CLP(QR)). </li>
<li> NEW: SWI-like yap_flag(float_format,_). </li>
<li> FIXED: change C-interface to use new interface. </li>
<li> FIXED: << and >> should handle overflows. </li>
<li> FIXED: mod and rem now implement ISO semantics (hopefully). </li>
<li> FIXED: change implementation of bigints to be more like GMP style. </li>
<li> FIXED: handle assert/retracts and gprof overhead right. </li>
<li> FIXED: indexing code was not setting up properly registers on longjmps. </li>
<li> FIXED: use RISC architecture on MacOsX (__POWERPC__ + _POWER). </li>
<li> FIXED: init system predicates should generate full static clause. </li>
<li> NEW: tabling does not conflit with depth limit (Trevor Walker). </li>
<li> NEW: make scanner restartable on seekable files (Nuno Fonseca). </li>
<li> NEW: improve error discovery within scanner (Jude Shavlik). </li>
<li> NEW: change event profiler to do profiling online and
off-line. </li>
<li> NEW: routine to find clause/pred </li>
<li> NEW: always end clauses with Ystop START, so that we can refer
back to the clause's beginning. </li>
<li> NEW: always have a pointer to Pred in clauses, so that we can
find current predicate. </li>
<li> NEW: heapgc should now be concurrent when using threads. </li>
<li> FIXED: heapgc wo tags can handle trail overflows right. </li>
<li> NEW: heapgc wo tags does not write on the collected areas during marking. </li>
<li> FIXED: dif/2 might get into trouble restoring assignments to
attributes. </li>
<li> NEW: Yap_DebugPlWrite and Yap_DebugErrorPutc for those debugging
moments. </li>
<li> FIXED: get rid of dead internal variable MutableList. </li>
<li> NEW: write_depth/3 for very large compound terms. </li>
<li> FIXED: new bug in garbage collection. </li>
<li> FIXED: overflow handling in DB/AttVars was resetting old var, and
wasn't resetting trail. </li>
<li> FIXED: when rebuilding DB term with attvars, set global var to
point to attvar. </li>
<li> NEW: add school CLP(BN) example. </li>
<li> NEW: add sc CLP(BN) example. </li>
<li> FIXED: make exception port more like a true port. </li>
<li> FIXED: don't run ^ in setof if there are no excess variables. </li>
<li> FIXED: prolog_load_context(directory) relied on dead code. </li>
<li> FIXED: some small beautifications for system/1, getcwd/1, sh/1, rename/2. </li>
<li> NEW: operating_system_error. </li>
<li> FIXED: Restore could not recover DL_MALLOC info and was not recovering
DBTerms correctly. </li>
<li> FIXED: with locking field, AtomNil and friends might not be
aligned, and would be confused with int. </li>
<li> FIXED: variables should always be reset when doing trail
expansion from the parser, even if there is no shifting (obs Trevor
Walker). </li>
<li> FIXED: growglobal with realloc was broken. </li>
<li> FIXED: with threads, self-deadlocking in new array codes. </li>
<li> FIXED: in tabling, use malloc when AllocCodeSpace fails. </li>
<li> FIXED: in tabling don't look inside cp_ap == NULL and fix recent
bug in walking dependency frames. </li>
<li> FIXED: with tabling ASP sometimes was miscalculated, causing
trouble with stack shifter (obs Kostis Sagonas). </li>
<li> FIXED: ~D should print bignums (obs Jude Shavlik). </li>
<li> FIXED: format's ~d and ~D were broken (obs Jude Shavlik). </li>
<li> FIXED: profiler should not talk about hidden predicates or idb entries. </li>
<li> FIXED: recentg change in setof could bind argument (obs
Jude Shavlik). </li>
<li> FIXED: EOF (-1) at debugger prompt would generate exception (obs
Jude Shavlik). </li>
<li> FIXED: ^C was very broken: break was not accepted, and debug,
trace and statistics did not work at all (obs Jude Shavlik). </li>
<li> FIXED: format_has_tabs could miss tab signs (obs Jude Shavlik). </li>
<li> FIXED: plug holes in memory allocation from scanner (obs
Mark Goadrich). </li>
<li> FIXED: instrument memory allocation when using system malloc. </li>
<li> FIXED: adjust_cp_hbs was readjusting consumer choice-points (it
can only adjust hb once) (obs Remko Troncon). </li>
<li> FIXED: try to make GC trace message "marked N vars" intelligible. </li>
<li> FIXED: garbage collection of mabindings was broken with tabling
(obs Remko Troncon). </li>
<li> FIXED: did not initialise tabling variables
(obs Remko Troncon). </li>
<li> FIXED: should have meta-predicate definitions for calls and
discontiguous. </li>
<li> FIXED: have discontiguous as a builtin, not just as a
declaration (obs Jude Shavlik). </li>
<li> FIXED: if first argument was unbound, comparisons might be
called with second argument undereferenced!! </li>
<li> FIXED: strip ^ before doing execute in setof or bagof. </li>
<li> FIXED: use CONST declarations in interface (thanks to Roberto Bagnara). </li>
<li> FIXED: absmi should consult PREG, not P (obs Remko Troncon). </li>
<li> FIXED: bad init in tabling code. </li>
<li> FIXED: YAP_MkBigIntTerm was broken (obs Roberto Bagnara). </li>
<li> NEW: update documentation to support new CLP(R) and CHR packages. </li>
<li> FIXED: regression in clpbn/utils.yap. </li>
<li> NEW: put_attrs/2. </li>
<li> FIXED: don't install CLP unless coroutining && rational trees are
active. </li>
<li> FIXED: syntax error in ypp.yap (obs Paulo Moura). </li>
<li> FIXED: save/restore should be as usual if using YAP allocation. </li>
<li> FIXED: save/restore FZ regs. </li>
<li> FIXED: $loop_stream could be defined early in boot process. </li>
<li> NEW: make rational trees default. </li>
v<li> NEW: make enable-max-memory default. </li>
<li> FIXED: allow people to disable indexing (obs Ricardo Lopes). </li>
<li> FIXED: make undefined exception more ISO like (obs Paulo Moura). </li>
<li> FIXED: add missing dependency in chr's Makefile.in. </li>
<li> FIXED: fix corruption in ypp.yap. </li>
<li> FIXED: ~@ makes format a meta-predicate. </li>
<li> FIXED: format should do immediate exit on exception (from Prolog call). </li>
<li> FIXED: make format reentrant and thread-safe (format may call itself). </li>
<li> FIXED: don't complain if a module is loading a reexported
predicate and the original predicate. </li>
<li> FIXED: change a few defaults for SWI compatibility. </li>
<li> FIXED: library prandom was broken (obs Nuno Fonseca). </li>
<li> NEW: add max_tagged_integer and min_tagged_inter prolog_flags. </li>
<li> NEW: add ~@ option to format. </li>
<li> NEW: memberchk/2 is like builtin in SWI emulation lib. </li>
<li> NEW: SWI like prolog_source_location/2 </li>
<li> FIXED: $loop_stream usage was broken. Fix $fetch_stream_alias to
be bidirectional.</li>
<li> FIXED: allow nb_set followed by b_set, bheakkkk! The other way round
is still not allowed.</li>
<li> NEW: from SWI maplist/2, maplist/3, maplist/4.</li>
<li> NEW: call/2, call/3, call/4.</li>
<li> FIXED: disable mutables in SWI mode. </li>
<li> FIXED: safe C-preds should always use P when calling garbage
collector, aarrggh :-(, CP use found in GetTermFromArray.</li>
<li> NEW: SWI-like ord_empty/1 and ord_memberchk/2 in library(ordsets).</li>
<li> FIXED: safe call_c should check for signals before calling a built-in.</li>
<li> NEW: -p option allows setting path from command line.</li>
<li> FIXED: during grow, heap references should not be followed from trail.</li>
<li> FIXED: \= was not resetting wakeups correctly.</li>
<li> FIXED: copy_term was broken if attrs were an unbound variable.</li>
<li> FIXED: during garbage collection, heap references should be
copied to trail, and that's it.</li>
<li> FIXED: excessive backtracking in multifile declaration.</li>
<li> NEW: allow style_check(singleton) and style_check(-singleton).</li>
<li> NEW: SWI module now makes atom_concat/{2,3} behave like atomic_concat/{2,3}.</li>
<li> NEW: add SWI-like copy_term_nat/2.</li>
<li> NEW: add SWI-like get_time and convert_time, but using integers, not floats.</li>
<li> NEW: add SWI-like working_directory/2 and chdir/2.</li>
<li> NEW: add append/3 and member/2 to SWI module.</li>
<li> FIXED: use bootstrap/1 to load up system.</li>
<li> FIXED: use_module/3 did not get info on loaded_module.</li>
<li> NEW: use_load_files as main file loading option.</li>
<li> FIXED: broken do_print_message for defined_elsewhere.</li>
<li> FIXED: debugger option.</li>
<li> FIXED: trace through undefined predicates correctly.</li>
<li> FIXED: WIN32 missing include files (untested)</li>
<li> FIXED: -L trouble (my thanks to Takeyuchi Shiramoto-san)!</li>
<li> FIXED: debugging of backtrable user-C preds would core dump.</li>
<li> FIXED: redeclaring a C-predicate as Prolog core dumps.</li>
<li> FIXED: badly protected YapInterface.h.</li>
<li> FIXED: break/0 was failing at exit.</li>
<li> FIXED: YAP_cut_fail and YAP_cut_succeed were different from manual.</li>
<li> FIXED: tracing through data-bases could core dump.</li>
<li> FIXED: cut could break on very large computations.</li>
<li> FIXED: first pass at BigNum issues (obs Roberto Bagnara).</li>
<li> FIXED: debugger could get go awol after fail port.</li>
<li> FIXED: weird message on wrong debugger option.</li>
<li> FIXED: cases where restore/1 could break.</li>
<li> NEW: SWI predicates now update prolog module</li>
<li> NEW: port of Leslie's CLP(R) system.</li>
<li> NEW: generations in garbage collector.</li>
<li> SPEEDUP: optimise some garbage collector code.</li>
</ul>
<hr>
</body>
</html>