FIXED: make sure variables are globalised before spying.
-
FIXED: tabling in autoconf
-
SPEEDUP: improve variable unification where we know one of
- the variables is in the heap.
-
FIXED: when sweeping garbage collector should check for
- variables posing as blobs (USE_OFFSETS).
-
FIXED: reduce overheads in functor/3.
-
FIXED: variant and subsumes must check functor and must
- check for extensions.
-
FIXED: activate dorming optimised instructions and fix glist_void_var.
-
FIXED: performance bug in new multiplication code (only for i386).
-
FIXED: exit at Error() in Error().
-
FIXED: grow() had trouble with array ptrs in Trail.
-
FIXED: include Stasinos patches for gmp, HP-UX and on documentation.
-
FIXED: recorda_stat_source was passing 0 instead of tagged
- 0, also always initialise ->code!
-
FIXED: accept multiple block declarations and process them
- as a conjunction.
-
FIXED: call_residue/2.
-
FIXED: block even when you have no - modes.
-
FIXED: use mkstemp() instead of tmpnam() in alloc.c
-
FIXED: now I can wake up goals at disjunction, see
- merge(A,[2],C), A = [1|B], (B = [2]; B = [3]). I had to
- save temporary registers in a term. Check push_live_regs and
- restore_regs() for details.
-
FIXED: ->p field of either now points to true.
-
FIXED: we must execute woken up goals before ;/2: force
- stack checking at either.
-
FIXED: present a single delayed goal per variable Done.
-
FIXED: make block/1 and wait/1 directives.
-
FIXED: make block/1 use when/2.
-
FIXED: compiling with glibc2.2, gcc-2.96 had small complaints.
-
FIXED: configure should now work with gmp3.
-
FIXED: overflow with extremely large terms in copy_term.
-
FIXED: unification between bignums could fail.
-
FIXED: improve print_message/2.
-
FIXED: make number_codes understand inf and nan.
-
FIXED: parse bigints in files.
-
FIXED: one should set creep flags whenever adding goals.
-
FIXED: debugging messages to stderr.
-
NEW: simpler scheme for delays.
-
FIXED: (mark_trail) do not mark second assignment to mavar in same choicepoint, helps 5% in mip, zilch in rkf.
-
FIXED: make goal_expansion and clause_expansion logical and multifile.
-
FIXED: stackgrow() with biginits.
-
FIXED: compile bigints properly.
-
FIXED: ShowCode should know about bigint instructions.
-
FIXED: arith.yap should understand int != bigint.
-
FIXED: ==/2 had bugs with attributed variables.
-
FIXED: make debugger aware of woken goals.
-
FIXED: bug in debugger with single update semantics dynamic clause.
-
FIXED: definition of MAX_WORKSPACE had been deleted from alloc.c??
-
FIXED: frozen/2 and outputting suspended goals.
-
FIXED: BlobTermAdjust was not always defined.
-
FIXED: bad memory allocation in parser.c for _ resulted in cryptic error messages.
-
FIXED: // error in CHR.
-
FIXED: syntax error in initialization.
-
FIXED: syntax error messages again point to the error.
-
FIXED: add extra copyright info about LUM in manual.
-
+
Yap-4.3.18:
+
+
FIXED: alignment bug with walltime in sparc/solaris.
+
FIXED: shunting in garbage collector.
+
FIXED: restore arithmetic operators was broken.
+
FIXED: restore arrays had never been implemented.
+
-
Yap-4.3.14:
-
-
FIXED: gcc/solaris would not compile.
-
FIXED: gc instrumentation was still giving noise.
-
FIXED: bug without GMP.
-
NEW: CHR manual
-
+
Yap-4.3.17:
+
+
FIXED: recording floating point numbers was broken (report from Ashwin Srinivasan).
+
FIXED: restore bitmap Pred pointers from calls.
+
FIXED: restore masks when adjusting the data base.
+
FIXED: handle pointers to Heap and Appls to Trail correctly in grow().
+
FIXED: db terms with variables must be adjusted from correct offset (restore db).
+
FIXED: atomic terms do not need masks (restore db).
+
FIXED: complex terms in db may also have variables (restore db).
+
FIXED: functors are never offsets (sshift).
+
FIXED: check for NULL pointers when restoring FreeSpace mm.
+
FIXED: make gcc -mno-cygwin default in cygwin environment.
+
FIXED: kill COMPRESS_DB_TERM and use new rational tree scheme for DB instead.
+
FIXED: use new rational_tree scheme in arrays.c, cmmpreds.c, and corout.c.
+
FIXED: make variant/2, term_variables/2, and friends use new rational_tree scheme.
+
FIXED: make copy_term/2 use new rational_tree scheme.
+
FIXED: don't test for age in unify.c.
+
NEW: cyclic_term/1 and acyclic_term/1 in terms library.
+
FIXED: use RATIONAL_TREES scheme to in unify_with_occurs_check/2.
+
FIXED: unify_with_occurs_check/2.
+
FIXED: make Yap run under SGI's gcc -mabi=64 (gcc buggy? Needs testing).
+
FIXED: make Yap run under SGI's cc -64.
+
FIXED: fix alignment bug for 64bits in AllocCMem.
+
FIXED: make Yap run under HP-UX's cc.
+
FIXED: avoid labels before brackets with HP-UX cc.
+
FIXED: get rid of huge masks in dbase.c.
+
FIXED: make Yap run under SGI's cc.
+
FIXED: avoid smart comparison in non-GNUCC compilers.
+
FIXED: get rid of unused variables.
+
FIXED: get rid of warnings with enum types.
+
NEW: number_atom/2.
+
FIXED: purge unnecessary unify_lvar X0 with in unify_n_voids_last.
+
FIXED: make it compile again under cygwin pure.
+
FIXED: documentation for pillow.
+
FIXED: use Yap.spec and /usr/share/info for recent rpms.
+
FIXED: configure would check for limits.h twice.
+
-
Yap-4.3.13:
-
-
FIXED: call_residue/2.
-
FIXED: == in configure.in
-
NEW: document attributed variables and CLP(Q,R).
-
NEW: initial support for Apple OS/X, thanks to Paulo Moura for the
- patch.
-
FIXED: hash trouble in IDB (thanks to Stasinos Konstantinos
- for the report)).
-
SPEEDUP: meta_predicate database is now in dynamic procedures
- with logical updates.
-
FIXED: module 0 should always be found in DB.
-
FIXED: alloc space for get_num from trail.
-
NEW: discontiguous is a valid operator.
-
FIXED: gcd/2 operator would break on negative numbers.
-
NEW: support for GMP gnu library and longints.
-
NEW: back to blobs in global.
-
NEW: new implementation of arithmetic with a function per operator and no switches.
-
FIXED: ## breakage in OS/X cpp (c_interface.h. thks Paulo Moura).
-
NEW: new arithmetic code
-
NEW: CHR (Thanks to Thom Fruewirth)
-
NEW: itemization bugs in the manual (Stasinos Konstatinos)
-
NEW: add sequential/0 and parallel/0 directives.
-
FIXED: move Codes and Lists to heap_regs as these variables
- are in fact supposed to be shared between processes.
-
FIXED: SBA should be able to store bindings in cell.
-
FIXED: PutAtt and GetAtt might return NULL in SBA.
-
FIXED: unify and friends would use uninstantiated variables.
-
FIXED: only install INTERFACE_HEADERS.
-
FIXED: DO_MATRAIL had reverse order under SBA.
-
NEW: prolog_load_context/2.
-
FIXED: allow reutilising aliases to files.
-
FIXED: replace term_variables by variables_in_term in pl/*.yap.
-
NEW: dynamic loading support for HP-UX (Stasinos Konstantinos)
-
FIXED: help info in configure.in and forgotten $ (Stasinos Konstantinos)
-
+
Yap-4.3.16:
+
+
FIXED: handle trail segments when growing heap or local (tabulation).
+
FIXED: fix backtracking with multi-assignment variables (bug report from Bart Demoen).
+
FIXED: only insert into relocation chain if heap pointer.
+
FIXED: handle overflows in substitution stack for tabulation.
+
FIXED: documentation bug in CHR.
+
FIXED: how to include opt.mavar.h (bug report from Luis Fernando).
+
FIXED: trail overflow while doing gc (bug report from GJVanNoord).
+
FIXED: System would lose [] because the atom looked like NULL (bug report from Rui Camacho).
+
-
Yap-4.3.12:
-
-
NEW: configure compilation process from configure.
-
FIXED: save/restore should set CurrentModule.
-
FIXED: InitYaamRegs should not set CurrentModule.
-
FIXED: load_dld would crash on NULL argv[0].
-
FIXED: get rid of install_library and build libYap.a by
- default. Fix minor bugs in yaplib.
-
FIXED: used TRAIL to remember structure-to-structure
- bindings in utilpreds.c and cmppreds.c (this avoids
- overflow noticed by GJVNoord).
-
FIXED: split yapor_on so that ! is after yapor_on. This
- should prevent cutting to before the root of the tree.
-
FIXED: bad handling of libs in load_dl.c (fix from Stasinos
- Konstantopoulos)
-
FIXED: free_answer_hash_chain should untag parent pointer
- (Ricardo Rocha).
-
FIXED: walltime would compile with cygwin (patch from
- gzk02612@nifty.com).
-
FIXED: try_logical_pred was doing nasty things to
- choice-points in parallel mode.
-
+
Yap-4.3.15:
+
+
FIXED: garbage collector now marks all local variables so that we can do early reset on local variables.
+
FIXED: support second quadrant machines in new scheme for large numbers.
FIXED: make sure variables are globalised before spying.
+
FIXED: tabling in autoconf.
+
SPEEDUP: improve variable unification where we know one of the variables is in the heap.
+
FIXED: when sweeping garbage collector should check for variables posing as blobs (USE_OFFSETS).
+
FIXED: reduce overheads in functor/3.
+
FIXED: variant and subsumes must check functor and must check for extensions.
+
FIXED: activate dorming optimised instructions and fix glist_void_var.
+
FIXED: performance bug in new multiplication code (only for i386).
+
FIXED: exit at Error() in Error().
+
FIXED: grow() had trouble with array ptrs in Trail.
+
FIXED: include Stasinos patches for gmp, HP-UX and on documentation.
+
FIXED: recorda_stat_source was passing 0 instead of tagged 0, also always initialise ->code!
+
FIXED: accept multiple block declarations and process them as a conjunction.
+
FIXED: call_residue/2.
+
FIXED: block even when you have no - modes.
+
FIXED: use mkstemp() instead of tmpnam() in alloc.c.
+
FIXED: now I can wake up goals at disjunction, see merge(A,[2],C), A = [1|B], (B = [2]; B = [3]). I had to save temporary registers in a term. Check push_live_regs and restore_regs() for details.
+
FIXED: ->p field of either now points to true.
+
FIXED: we must execute woken up goals before ;/2: force stack checking at either.
+
FIXED: present a single delayed goal per variable Done.
+
FIXED: make block/1 and wait/1 directives.
+
FIXED: make block/1 use when/2.
+
FIXED: compiling with glibc2.2, gcc-2.96 had small complaints.
+
FIXED: configure should now work with gmp3.
+
FIXED: overflow with extremely large terms in copy_term.
+
FIXED: unification between bignums could fail.
+
FIXED: improve print_message/2.
+
FIXED: make number_codes understand inf and nan.
+
FIXED: parse bigints in files.
+
FIXED: one should set creep flags whenever adding goals.
+
FIXED: debugging messages to stderr.
+
NEW: simpler scheme for delays.
+
FIXED: (mark_trail) do not mark second assignment to mavar in same choicepoint, helps 5% in mip, zilch in rkf.
+
FIXED: make goal_expansion and clause_expansion logical and multifile.
+
FIXED: stackgrow() with biginits.
+
FIXED: compile bigints properly.
+
FIXED: ShowCode should know about bigint instructions.
+
FIXED: arith.yap should understand int != bigint.
+
FIXED: ==/2 had bugs with attributed variables.
+
FIXED: make debugger aware of woken goals.
+
FIXED: bug in debugger with single update semantics dynamic clause.
+
FIXED: definition of MAX_WORKSPACE had been deleted from alloc.c??
+
FIXED: frozen/2 and outputting suspended goals.
+
FIXED: BlobTermAdjust was not always defined.
+
FIXED: bad memory allocation in parser.c for _ resulted in cryptic error messages.
+
FIXED: // error in CHR.
+
FIXED: syntax error in initialization.
+
FIXED: syntax error messages again point to the error.
+
FIXED: add extra copyright info about LUM in manual.
+
-
Yap-4.3.11:
-
-
FIXED: read could fail and not restore the original input
- stream (noticed by GJ VanNoord).
-
FIXED: crappy handling of multi-assignment variables while
- growing stacks (noticed by GJ VanNoord).
-
FIXED: Bad save/restore machine registers in hppa.
-
FIXED: Bad initialisation for '_' variables.
-
FIXED: check null ENV in
- do_toggle_static_predicates_in_use, this seems to break HP-UX machines.
-
FIXED: Bad default address on SGI machines.
-
FIXED: Atom operations were being included too soon.
-
FIXED: alignment issue in LastWTimePtr with SPARC.
-
FIXED: Bind needs HBREG in p_save_cp/exec.c.
-
FIXED: small ints in term_hash.
-
FIXED: bug in installing CLPQR in Makefile.in (noticed by
- Luis Castro and GJ VanNoord).
-
+
Yap-4.3.14:
+
+
FIXED: gcc/solaris would not compile.
+
FIXED: gc instrumentation was still giving noise.
+
FIXED: bug without GMP.
+
NEW: CHR manual.
+
+
+
Yap-4.3.13:
+
+
FIXED: call_residue/2.
+
FIXED: == in configure.in.
+
NEW: document attributed variables and CLP(Q,R).
+
NEW: initial support for Apple OS/X, thanks to Paulo Moura for the patch.
+
FIXED: hash trouble in IDB (thanks to Stasinos Konstantinos for the report)).
+
SPEEDUP: meta_predicate database is now in dynamic procedures with logical updates.
+
FIXED: module 0 should always be found in DB.
+
FIXED: alloc space for get_num from trail.
+
NEW: discontiguous is a valid operator.
+
FIXED: gcd/2 operator would break on negative numbers.
+
NEW: support for GMP gnu library and longints.
+
NEW: back to blobs in global.
+
NEW: new implementation of arithmetic with a function per operator and no switches.
+
FIXED: ## breakage in OS/X cpp (c_interface.h. thks Paulo Moura).
+
NEW: new arithmetic code.
+
NEW: CHR (Thanks to Thom Fruewirth).
+
NEW: itemization bugs in the manual (Stasinos Konstatinos).
+
NEW: add sequential/0 and parallel/0 directives.
+
FIXED: move Codes and Lists to heap_regs as these variables are in fact supposed to be shared between processes.
+
FIXED: SBA should be able to store bindings in cell.
+
FIXED: PutAtt and GetAtt might return NULL in SBA.
+
FIXED: unify and friends would use uninstantiated variables.
+
FIXED: only install INTERFACE_HEADERS.
+
FIXED: DO_MATRAIL had reverse order under SBA.
+
NEW: prolog_load_context/2.
+
FIXED: allow reutilising aliases to files.
+
FIXED: replace term_variables by variables_in_term in pl/*.yap.
+
NEW: dynamic loading support for HP-UX (Stasinos Konstantinos).
+
FIXED: help info in configure.in and forgotten $ (Stasinos Konstantinos).
+
+
+
Yap-4.3.12:
+
+
NEW: configure compilation process from configure.
+
FIXED: save/restore should set CurrentModule.
+
FIXED: InitYaamRegs should not set CurrentModule.
+
FIXED: load_dld would crash on NULL argv[0].
+
FIXED: get rid of install_library and build libYap.a by default. Fix minor bugs in yaplib.
+
FIXED: used TRAIL to remember structure-to-structure bindings in utilpreds.c and cmppreds.c (this avoids overflow noticed by GJVNoord).
+
FIXED: split yapor_on so that ! is after yapor_on. This should prevent cutting to before the root of the tree.
+
FIXED: bad handling of libs in load_dl.c (fix from Stasinos Konstantopoulos).
+
FIXED: free_answer_hash_chain should untag parent pointer (Ricardo Rocha).
+
FIXED: walltime would compile with cygwin (patch from gzk02612@nifty.com).
+
FIXED: try_logical_pred was doing nasty things to choice-points in parallel mode.
+
+
+
Yap-4.3.11:
+
+
FIXED: read could fail and not restore the original input stream (noticed by GJ VanNoord).
+
FIXED: crappy handling of multi-assignment variables while growing stacks (noticed by GJ VanNoord).
+
FIXED: Bad save/restore machine registers in hppa.
+
FIXED: Bad initialisation for '_' variables.
+
FIXED: check null ENV in do_toggle_static_predicates_in_use, this seems to break HP-UX machines.
+
FIXED: Bad default address on SGI machines.
+
FIXED: Atom operations were being included too soon.
+
FIXED: alignment issue in LastWTimePtr with SPARC.
+
FIXED: Bind needs HBREG in p_save_cp/exec.c.
+
FIXED: small ints in term_hash.
+
FIXED: bug in installing CLPQR in Makefile.in (noticed by Luis Castro and GJ VanNoord).
+
-
Yap-4.3.10:
-
-
FIXED: install info by default in /usr/share/info.
-
NEW: MULTI_ASSIGNMENT_VARIABLES should work with tabling
- and or-parallel execution.
-
FIXED: small glitches with lcc.
-
FIXED: walltime in parallel system.
-
FIXED: zombies in ACOW.
-
NEW: CLPR is now in the YAP distribution.
-
NEW: sequential tabling can do stack shifting.
-
NEW: sequential tabling uses standard memory management system.
-
FIXED: make tracer work with tabling.
-
FIXED: make exec_goal work with tabling.
-
NEW: integrated latest OPTYap.
-
NEW: CIAO's pillow library.
-
FIXED: verify_attributes should follow SICStus order, or
- else CLPR will break in critical,go2 :-(.
-
FIXED: debugger was getting confused by modules that import
- predicates that are also defined in the module.
-
FIXED: =.. was messing with constraints, make it SDerefHead.
-
NEW: print $VAR("string") as string.
-
NEW: write_term(X,[write_depth(X)] is a legal option in SICStus.
-
NEW: write_term(X,[portrayed(X)] is a legal option in SICStus.
-
FIXED: debugger would get confused with undefined procedures.
-
FIXED: DB compression bug for lists with rational trees on.
-
FIXED: the blackboard routines are meta-predicates!
-
FIXED: initialization should be performed on correct module.
-
FIXED: make initialization/1 an operator.
-
NEW: print_message and portray_message.
-
FIXED: do proper meta-predicate processing for user:a :- meta(...).
-
FIXED: do term expansion from top level and for end_of_file
- in consult.
-
FIXED: don't do grammar expansion if term expansion succeeds.
-
NEW: yap_flag(toplevel_hook,_): this is a goal to be executed before
- prompting at the top-level.
-
NEW: variant/2.
-
FIXED: term_hash was not documented and in the wrong modules.
-
NEW: first try at ugraphs module.
-
NEW: SICStus compatible module/1 and yap_flag(typein_module,_).
-
NEW: SICStus compatible prolog_flag/2 and prolog_flag/3.
-
FIXED: for SICStus compatibility primitives module is now
- prolog module.
-
FIXED: corrent consulted file could get confused.
-
FIXED: more fixes to top-level and call-residue with
- attributed variables.
-
FIXED: call to compare_terms in optimise_ce relied on
- correct H. Could corrupt the compiler.
-
FIXED: fix a few bugs on presenting floundered goals.
-
FIXED: procedures imported into user should be imported by
- every module (do that by binding the importer to a variable).
-
FIXED: do not try to debug over commit.
-
FIXED: make top-level more SICStus like on how to present
- variable bindings.
-
NEW: support columns in format/2 and format/3.
-
FIXED: p_number and friends should check for var before
- checking for number with corouting support.
-
FIXED: init was setting WakeUpCode too late.
-
FIXED: save_program was not restoring WakeUpCode.
-
FIXED: terms library.
-
NEW: SICStus compatible prolog_flag/3.
-
FIXED: \+ \+ nondet1, !, nondet2.
-
SPEEDUP: improved exec path.
-
FIXED: hold locks for longer in i_recorded.
-
CLEANUP: avoid references to corouting data structures in
- non-corouting code.
-
NEW: new hashing function for IDB.
-
FIXED: make profile_data understand modules.
-
FIXED: first argument for profile_data was inconsistent.
-
FIXED: broken trail resetting in p_read (thks G.J. VanNoord).
-
CLEANUP: ANSI-C code cleanup (thks S. Konstantopoulos).
-
CLEANUP: new Atom.h.m4 file splits some stuff from Yatom.h.m4.
-
CLEANUP: linkblk with one less argument and faster code
- (hopefully).
-
FIXED: get rid of AtomBase.
-
FIXED: keep ordering between MkFunctor and friends.
-
FIXED: PreviousHeap is trash.
-
FIXED: too many calls to MkFunctor in GetPred.
-
+
Yap-4.3.10:
+
+
FIXED: install info by default in /usr/share/info.
+
NEW: MULTI_ASSIGNMENT_VARIABLES should work with tabling and or-parallel execution.
+
FIXED: small glitches with lcc.
+
FIXED: walltime in parallel system.
+
FIXED: zombies in ACOW.
+
NEW: CLPR is now in the YAP distribution.
+
NEW: sequential tabling can do stack shifting.
+
NEW: sequential tabling uses standard memory management system.
+
FIXED: make tracer work with tabling.
+
FIXED: make exec_goal work with tabling.
+
NEW: integrated latest OPTYap.
+
NEW: CIAO's pillow library.
+
FIXED: verify_attributes should follow SICStus order, or else CLPR will break in critical,go2 :-(.
+
FIXED: debugger was getting confused by modules that import predicates that are also defined in the module.
+
FIXED: =.. was messing with constraints, make it SDerefHead.
+
NEW: print $VAR("string") as string.
+
NEW: write_term(X,[write_depth(X)]) is a legal option in SICStus.
+
NEW: write_term(X,[portrayed(X)]) is a legal option in SICStus.
+
FIXED: debugger would get confused with undefined procedures.
+
FIXED: DB compression bug for lists with rational trees on.
+
FIXED: the blackboard routines are meta-predicates!
+
FIXED: initialization should be performed on correct module.
+
FIXED: make initialization/1 an operator.
+
NEW: print_message and portray_message.
+
FIXED: do proper meta-predicate processing for user:a :- meta(...).
+
FIXED: do term expansion from top level and for end_of_file in consult.
+
FIXED: don't do grammar expansion if term expansion succeeds.
+
NEW: yap_flag(toplevel_hook,_): this is a goal to be executed before prompting at the top-level.
+
NEW: variant/2.
+
FIXED: term_hash was not documented and in the wrong modules.
+
NEW: first try at ugraphs module.
+
NEW: SICStus compatible module/1 and yap_flag(typein_module,_).
+
NEW: SICStus compatible prolog_flag/2 and prolog_flag/3.
+
FIXED: for SICStus compatibility primitives module is now prolog module.
+
FIXED: corrent consulted file could get confused.
+
FIXED: more fixes to top-level and call-residue with attributed variables.
+
FIXED: call to compare_terms in optimise_ce relied on correct H. Could corrupt the compiler.
+
FIXED: fix a few bugs on presenting floundered goals.
+
FIXED: procedures imported into user should be imported by every module (do that by binding the importer to a variable).
+
FIXED: do not try to debug over commit.
+
FIXED: make top-level more SICStus like on how to present variable bindings.
+
NEW: support columns in format/2 and format/3.
+
FIXED: p_number and friends should check for var before checking for number with corouting support.
+
FIXED: init was setting WakeUpCode too late.
+
FIXED: save_program was not restoring WakeUpCode.
+
FIXED: terms library.
+
NEW: SICStus compatible prolog_flag/3.
+
FIXED: \+ \+ nondet1, !, nondet2.
+
SPEEDUP: improved exec path.
+
FIXED: hold locks for longer in i_recorded.
+
CLEANUP: avoid references to corouting data structures in non-corouting code.
+
NEW: new hashing function for IDB.
+
FIXED: make profile_data understand modules.
+
FIXED: first argument for profile_data was inconsistent.
+
FIXED: broken trail resetting in p_read (thks G.J. VanNoord).
+
CLEANUP: ANSI-C code cleanup (thks S. Konstantopoulos).
+
CLEANUP: new Atom.h.m4 file splits some stuff from Yatom.h.m4.
+
CLEANUP: linkblk with one less argument and faster code (hopefully).
+
FIXED: get rid of AtomBase.
+
FIXED: keep ordering between MkFunctor and friends.
+
FIXED: PreviousHeap is trash.
+
FIXED: too many calls to MkFunctor in GetPred.
+
-
Yap-4.3.9:
-
-
FIXED: VC++ compilation was broken.
-
FIXED: handle trail overflows in Windows.
-
FIXED: general fixes as cygnus compilation was broken.
-
FIXED: yap.exp got out of sync.
-
FIXED: YAP would include too many headers such as
- sys/time.h and sys/wait.h breaking -mno-cygwin.
-
FIXED: don't trust in string.h to initialise NULL, this
- seems to cause weird problems in gcc -mno-cygwin.
-
FIXED: lack of heap in assembler shouldn't force compiler
- to restart.
-
FIXED: C-stack would overflow with PermVar, make this
- function non-recursive.
-
FIXED: hint growheap on the least heap it needs.
-
FIXED: expand stack on overflow while parsing and overflow
- while creating the var table.
-
FIXED: move ParserStack to Trail so that we can read in
- very large terms.
-
FIXED: recursion of c_optimise would break for very
- large clauses, replaced it by iteration.
-
CLEANUP: replace defined for enum in Yatom.h.m4.
-
FIXED: bug in compiled terms with DBRefs (same field was
- used for CodePtr and RefPtr).
-
FIXED: guarantee correct locking for PreAllocCodeSpace();
-
FIXED: another typo in charsio.
-
FIXED: always allow asserts but careful, for now system
- will only recover some space at top-level.
-
FIXED: In yap.c read false before someone hides it ;-).
-
CLEANUP: get rid of AtomLive and of AtomFalse.
-
FIXED: erase/1 and erased/1 now complain on bad arguments.
-
FIXED: ANALYST would not compile.
-
FIXED: go round bad FILENAME_MAX in HPUX (Stasinos Konstantopoulos).
-
CLEANUP: use sed instead of symbolic links in make depended (Stasinos Konstantopoulos).
-
FIXED: don't check if someone is looking at an environment
- while asserting.
-
FIXED: gc always assumed an immediate DBRef.
-
FIXED: ! now cuts if != instead of < (fixed cut_by).
-
FIXED: __hpux to __hpux (Stasinos Konstantopoulos).
-
FIXED: makedepend works again (Stasinos Konstantopoulos).
-
FIXED: compile under hpux cc (Stasinos Konstantopoulos).
-
NEW: locking for internal data base.
-
FIXED: bad cast in DBProp.
-
+
Yap-4.3.9:
+
+
FIXED: VC++ compilation was broken.
+
FIXED: handle trail overflows in Windows.
+
FIXED: general fixes as cygnus compilation was broken.
+
FIXED: yap.exp got out of sync.
+
FIXED: YAP would include too many headers such as sys/time.h and sys/wait.h breaking -mno-cygwin.
+
FIXED: don't trust in string.h to initialise NULL, this seems to cause weird problems in gcc -mno-cygwin.
+
FIXED: lack of heap in assembler shouldn't force compiler to restart.
+
FIXED: C-stack would overflow with PermVar, make this function non-recursive.
+
FIXED: hint growheap on the least heap it needs.
+
FIXED: expand stack on overflow while parsing and overflow while creating the var table.
+
FIXED: move ParserStack to Trail so that we can read in very large terms.
+
FIXED: recursion of c_optimise would break for very large clauses, replaced it by iteration.
+
CLEANUP: replace defined for enum in Yatom.h.m4.
+
FIXED: bug in compiled terms with DBRefs (same field was used for CodePtr and RefPtr).
+
FIXED: guarantee correct locking for PreAllocCodeSpace().
+
FIXED: another typo in charsio.
+
FIXED: always allow asserts but careful, for now system will only recover some space at top-level.
+
FIXED: In yap.c read false before someone hides it ;-).
+
CLEANUP: get rid of AtomLive and of AtomFalse.
+
FIXED: erase/1 and erased/1 now complain on bad arguments.
+
FIXED: ANALYST would not compile.
+
FIXED: go round bad FILENAME_MAX in HPUX (Stasinos Konstantopoulos).
+
CLEANUP: use sed instead of symbolic links in make depended (Stasinos Konstantopoulos).
+
FIXED: don't check if someone is looking at an environment while asserting.
+
FIXED: gc always assumed an immediate DBRef.
+
FIXED: ! now cuts if != instead of < (fixed cut_by).
+
FIXED: __hpux to __hpux (Stasinos Konstantopoulos).
+
FIXED: makedepend works again (Stasinos Konstantopoulos).
+
FIXED: compile under hpux cc (Stasinos Konstantopoulos).
+
NEW: locking for internal data base.
+
FIXED: bad cast in DBProp.
+
-
Yap-4.3.8:
-
-
FIXED: previous change to ! was wrong.
-
FIXED: YAP_ARRAYS was still being used in arrays.c and
- sbaamiops.h.
-
FIXED: small glitches in the manual.
-
NEW: change work dir from Yap4 to Yap-4 (that's what
- everyone else does).
-
NEW: make install_info
-
NEW: yap.spec and automatic generation of rpms.
-
+
Yap-4.3.8:
+
+
FIXED: previous change to ! was wrong.
+
FIXED: YAP_ARRAYS was still being used in arrays.c and sbaamiops.h.
+
FIXED: small glitches in the manual.
+
NEW: change work dir from Yap4 to Yap-4 (that's what everyone else does).
+
NEW: make install_info.
+
NEW: yap.spec and automatic generation of rpms.
+
-
Yap4.3.7:
-
-
FIXED: fix SBA bug in or.cuts.h.
-
NEW: cut now looks for ==, not <.
-
NEW: FunctorList is now special.
-
FIXED: Looking up "." was broken.
-
FIXED: halt/1 would not send out the error code.
-
FIXED: bad overflow handling when compiling very large terms.
-
FIXED: bugs in charsio at open_chars_stream and number_to_chars.
-
FIXED: search for library() did not use env var YAPLIBDIR.
-
NEW: parallel locking for MIPS machines.
-
NEW: parallel locking for Alpha machines.
-
FIXED: In OPTYAP UNLOCK should be machine dependent.
-
FIXED: In linux, SBA would mess up with DB because MBIT
- was in binding_array addresses. Fix that and include a check
- when we allocate BA space.
-
NEW: Protect DB updates and use with immediate update
- semantics.
-
FIXED: get rid of the stuff on searching whether a
- predicate is in use for YAPOR, as it wouldn't work.
-
FIXED: disallow asserting and abolishing static procedures
- in YAPOR.
-
NEW: allow asserting database references as arguments for
- dynamic procedures.
-
FIXED: consult and friends are now directives (this should
- avoid trouble with YAPOR).
-
FIXED: change configure.in for Alpha/Linux.
-
FIXED: change YAPOR not to try to do parallel execution of
- consult.
-
FIXED: protect goals from save_program/2 and also make
- sure they don't fail.
-
FIXED: [a] in top level should be executed as a query.
-
CLEANUP: get rid of c_csult_stream;
-
FIXED: fix predicates that depended on current_stream
- returning user name for file.
-
FIXED: close/1 and close/2 should only close atomic
- filenames in YAP mode, and should not depend on
- current_stream/3 returning the original name.
-
FIXED: current_stream should return real name, not user name.
-
CLEANUP: add consult/reconsult mode and file name to
- consult stack.
-
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.
-
FIXED: bad init interface with YAPOR.
-
NEW: support partial locking for predicates.
-
FIXED: wrong include path in regex's Makefile.in.
-
FIXED: bb_new was doing a broken property insert.
-
FIXED: save_program now restores SpyCode so that we can
- restart saved states with spying data.
-
FIXED: YapInit wasn't using stack size info from saved
- states.
-
+
Yap4.3.7:
+
+
FIXED: fix SBA bug in or.cuts.h.
+
NEW: cut now looks for ==, not <.
+
NEW: FunctorList is now special.
+
FIXED: Looking up "." was broken.
+
FIXED: halt/1 would not send out the error code.
+
NEW: allow executable Prolog files that call YAP (option -L).
+
FIXED: bad overflow handling when compiling very large terms.
+
FIXED: bugs in charsio at open_chars_stream and number_to_chars.
+
FIXED: search for library() did not use env var YAPLIBDIR.
+
NEW: parallel locking for MIPS machines.
+
NEW: parallel locking for Alpha machines.
+
FIXED: In OPTYAP UNLOCK should be machine dependent.
+
FIXED: In linux, SBA would mess up with DB because MBIT was in binding_array addresses. Fix that and include a check when we allocate BA space.
+
NEW: Protect DB updates and use with immediate update semantics.
+
FIXED: get rid of the stuff on searching whether a predicate is in use for YAPOR, as it wouldn't work.
+
FIXED: disallow asserting and abolishing static procedures in YAPOR.
+
NEW: allow asserting database references as arguments for dynamic procedures.
+
FIXED: consult and friends are now directives (this should avoid trouble with YAPOR).
+
FIXED: change configure.in for Alpha/Linux.
+
FIXED: change YAPOR not to try to do parallel execution of consult.
+
FIXED: protect goals from save_program/2 and also make sure they don't fail.
+
FIXED: [a] in top level should be executed as a query.
+
CLEANUP: get rid of c_csult_stream.
+
FIXED: fix predicates that depended on current_stream returning user name for file.
+
FIXED: close/1 and close/2 should only close atomic filenames in YAP mode, and should not depend on current_stream/3 returning the original name.
+
FIXED: current_stream should return real name, not user name.
+
CLEANUP: add consult/reconsult mode and file name to consult stack.
+
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.
+
FIXED: bad init interface with YAPOR.
+
NEW: support partial locking for predicates.
+
FIXED: wrong include path in regex's Makefile.in.
+
FIXED: bb_new was doing a broken property insert.
+
FIXED: save_program now restores SpyCode so that we can restart saved states with spying data.
+
FIXED: YapInit wasn't using stack size info from saved states.
FIXED: asserting static predicates would not store the
- right source.
-
FIXED: assert would loop with assert((H:-b)).
-
FIXED: GC bug would not process direct pointers from local or
- trail to lists in code space.
-
NEW: change directory structure.
-
NEW: support locking for arrays.
-
NEW: support locking for operators.
-
NEW: support locking for values.
-
FIXED: bad comparison with BB in write_val (SBA).
-
NEW: support locking on alloc/free.
-
NEW: support locking on blackboard.
-
NEW: support locking for individual atoms (protects the
- property list).
-
NEW: support locking the atom table.
-
NEW: sequential code should now compile empty locks.
-
FIXED: YAP again compiles and runs under AIX4.1.
-
FIXED: support creating YAP DLL with VC++.
-
FIXED: VC++ didn't understand S_ISDIR()
-
FIXED: small fixes to yap.tex.
-
FIXED: unsigned/sign comparison warnings in VC++.
-
+
Yap4.3.5:
+
+
NEW: add yap_libdir.
+
NEW: add splay trees.
+
NEW: add AVL trees.
+
FIXED: asserting static predicates would not store the right source.
+
FIXED: assert would loop with assert((H:-b)).
+
FIXED: GC bug would not process direct pointers from local or trail to lists in code space.
+
NEW: change directory structure.
+
NEW: support locking for arrays.
+
NEW: support locking for operators.
+
NEW: support locking for values.
+
FIXED: bad comparison with BB in write_val (SBA).
+
NEW: support locking on alloc/free.
+
NEW: support locking on blackboard.
+
NEW: support locking for individual atoms (protects the property list).
+
NEW: support locking the atom table.
+
NEW: sequential code should now compile empty locks.
+
FIXED: YAP again compiles and runs under AIX4.1.
+
FIXED: support creating YAP DLL with VC++.
+
FIXED: VC++ didn't understand S_ISDIR().
+
FIXED: small fixes to yap.tex.
+
FIXED: unsigned/sign comparison warnings in VC++.
+
-
Yap4.3.4:
-
-
FIXED: IRIX6 is now set up load DLLs.
-
FIXED: Yap4.3.3 had broken register handling in c_interface.c.
-
FIXED: bug in library/regex/Makefile.in.
-
FIXED: FreeBSD/ELF is now set up to load DLLs.
-
FIXED: in_limbo should now be correct.
-
FIXED: YAPOR would not compile because of macros.
-
+
Yap4.3.4:
+
+
FIXED: IRIX6 is now set up load DLLs.
+
FIXED: Yap4.3.3 had broken register handling in c_interface.c.
+
FIXED: bug in library/regex/Makefile.in.
+
FIXED: FreeBSD/ELF is now set up to load DLLs.
+
FIXED: in_limbo should now be correct.
+
FIXED: YAPOR would not compile because of macros.
+
-
Yap4.3.3:
-
-
FIXED: recover space after every parse/compile in new yap.c.
-
FIXED: ignore getcwd under simplescalar.
-
FIXED: only include standard files after YAP headers.
-
FIXED: save and restore registers correctly under c-interface.
-
NEW: add YapWrite to C-Interface.
-
FIXED: mmapped arrays do not compile with simplescalar.
-
FIXED: force saved states to look up YAP in YAPBINDIR.
-
FIXED: quoted strings go back to ISO.
-
FIXED: -DYAP_ARRAYS is no longer an option.
-
FIXED: get rid of a few of ANSI-C old-style warnings from lcc.
-
FIXED: TrueFileName had been broken.
-
FIXED: Yap now configures and compiles with lcc 4.1/Linux.
-
FIXED: port yap to compile under cygwin 1.1.0/mingw32 and
- to support winsock2. The new version also supports CreateWaitableTimer.
-
FIXED: force yap to follow environment variable YAPLIBDIR.
-
FIXED: force yap to look for dlls in library.
-
FIXED: replace strcat and strcpy by strncat and strncpy.
-
FIXED: search for saved states in library.
-
FIXED: ^c-a in MINGW32.
-
CLEANUP: ^C handling.
-
NEW: creating and loading dll now works in YAP/WIN.
-
NEW: compile core YAP as a dll under MINGW32.
-
NEW: yap.c is now external to YAP.
-
NEW: understand Unix paths under WIN32 and MINGW32.
-
FIXED: make sure you only start compiling objects after
- having all headers ready.
-
FIXED: Debugger ($spycalls) should module switches and
- consulted the table of imported predicates.
-
FIXED: Compilation bug and warnings under vc++.
-
FIXED: YAP_ARRAYS required TERM_EXTENSIONS to compile.
-
FIXED: compile under cygwin's gcc -mno-cygwin, so that YAP
- won't need the cygwin dll (MINGW32).
-
FIXED: save.c should reinitialise user streams
-
FIXED: predentries for functions may change address in save.c
-
FIXED: SimpleSim does not implement getcwd
-
FIXED: tracer.c had a C++ comment.
-
FIXED: ttyname might return NULL, at least in SimpleSim
-
FIXED: reconsult was broken.
-
FIXED: bracket messages for syntax errors.
-
FIXED: scanner would break if AllocScannerSpace failed.
-
FIXED: bad checking of eof_action in open.
-
FIXED: mistake in compiling /\.
-
FIXED: extra clauses in environ.
-
FIXED: checking list of operators was wrong in op/3.
-
FIXED: missing variable in error message.
-
FIXED: reset CreepFlag in Error.
-
FIXED: wrong error in name(int(X),_).
-
FIXED: fix writing "\" when writing strings with no
- character escapes.
-
NEW: add yap_flag(write_strings,X) as in Ciao.
-
NEW: add StringToBuffer routine to the c-interface.
-
NEW: add routines for allocating and releasing database
- space to the c-interface.
-
FIXED: change type for unify in CInterface.
-
FIXED: PlUnGetc should return int, not Int.
-
FIXED: get rid of C++ comment in save.c.
-
+
Yap4.3.3:
+
+
FIXED: recover space after every parse/compile in new yap.c.
+
FIXED: ignore getcwd under simplescalar.
+
FIXED: only include standard files after YAP headers.
+
FIXED: save and restore registers correctly under c-interface.
+
NEW: add YapWrite to C-Interface.
+
FIXED: mmapped arrays do not compile with simplescalar.
+
FIXED: force saved states to look up YAP in YAPBINDIR.
+
FIXED: quoted strings go back to ISO.
+
FIXED: -DYAP_ARRAYS is no longer an option.
+
FIXED: get rid of a few of ANSI-C old-style warnings from lcc.
+
FIXED: TrueFileName had been broken.
+
FIXED: Yap now configures and compiles with lcc 4.1/Linux.
+
FIXED: port yap to compile under cygwin 1.1.0/mingw32 and to support winsock2. The new version also supports CreateWaitableTimer.
+
FIXED: force yap to follow environment variable YAPLIBDIR.
+
FIXED: force yap to look for dlls in library.
+
FIXED: replace strcat and strcpy by strncat and strncpy.
+
FIXED: search for saved states in library.
+
FIXED: ^c-a in MINGW32.
+
CLEANUP: ^C handling.
+
NEW: creating and loading dll now works in YAP/WIN.
+
NEW: compile core YAP as a dll under MINGW32.
+
NEW: yap.c is now external to YAP.
+
NEW: understand Unix paths under WIN32 and MINGW32.
+
FIXED: make sure you only start compiling objects after having all headers ready.
+
FIXED: Debugger ($spycalls) should module switches and consulted the table of imported predicates.
+
FIXED: Compilation bug and warnings under vc++.
+
FIXED: YAP_ARRAYS required TERM_EXTENSIONS to compile.
+
FIXED: compile under cygwin's gcc -mno-cygwin, so that YAP won't need the cygwin dll (MINGW32).
+
FIXED: save.c should reinitialise user streams.
+
FIXED: predentries for functions may change address in save.c.
+
FIXED: SimpleSim does not implement getcwd.
+
FIXED: tracer.c had a C++ comment.
+
FIXED: ttyname might return NULL, at least in SimpleSim.
+
FIXED: reconsult was broken.
+
FIXED: bracket messages for syntax errors.
+
FIXED: scanner would break if AllocScannerSpace failed.
+
FIXED: bad checking of eof_action in open.
+
FIXED: mistake in compiling /\.
+
FIXED: extra clauses in environ.
+
FIXED: checking list of operators was wrong in op/3.
+
FIXED: missing variable in error message.
+
FIXED: reset CreepFlag in Error.
+
FIXED: wrong error in name(int(X),_).
+
FIXED: fix writing "\" when writing strings with no character escapes.
+
NEW: add yap_flag(write_strings,X) as in Ciao.
+
NEW: add StringToBuffer routine to the c-interface.
+
NEW: add routines for allocating and releasing database space to the c-interface.
+
FIXED: change type for unify in CInterface.
+
FIXED: PlUnGetc should return int, not Int.
+
FIXED: get rid of C++ comment in save.c.
+
-
Yap4.3.2:
-
-
FIXED: Yap can now use shm for memory allocation.
-
NEW: Yap can use malloc if mmap, shm, and sbrk failed.
-
FIXED: sbrk allocation should be working again.
-
CLEANUP: get rid of unused functions in old alloc.c.
-
CLEANUP: in Yap.h.m4 make clear when you are in second quadrant
-
CLEANUP: keep table with all c-predicates. restore now
- does not need to reinitialise functions.
-
FIXED: in alloc.c, handle cases where /dev/zero fails properly.
-
CLEANUP: move atoms and functors into heap_codes.
-
CLEANUP: move module info to heap_codes.
-
FIXED: save.c would not restore properly bfunc
- instructions. Had to add a p field for these instructions.
-
FIXED: save.c was not always restoring pp->OpcodeOfPred.
-
FIXED: reset opcode-op hash-table in new calls to
- InitReverseLookupOpcode.
-
FIXED: check if emulator shifted when recovering saved states.
-
NEW: charsio, SICStus compatible reading to and writing
- from strings.
-
FIXED: uncaught instantiation errors in eval routines.
-
NEW: yap_flag(character_escapes,{on,off})
-
CLEANUP: get rid of config.c.
-
+
Yap4.3.2:
+
+
FIXED: Yap can now use shm for memory allocation.
+
NEW: Yap can use malloc if mmap, shm, and sbrk failed.
+
FIXED: sbrk allocation should be working again.
+
CLEANUP: get rid of unused functions in old alloc.c.
+
CLEANUP: in Yap.h.m4 make clear when you are in second quadrant.
+
CLEANUP: keep table with all c-predicates. restore now does not need to reinitialise functions.
+
FIXED: in alloc.c, handle cases where /dev/zero fails properly.
+
CLEANUP: move atoms and functors into heap_codes.
+
CLEANUP: move module info to heap_codes.
+
FIXED: save.c would not restore properly bfunc instructions. Had to add a p field for these instructions.
+
FIXED: save.c was not always restoring pp->OpcodeOfPred.
+
FIXED: reset opcode-op hash-table in new calls to InitReverseLookupOpcode.
+
FIXED: check if emulator shifted when recovering saved states.
+
NEW: charsio, SICStus compatible reading to and writing from strings.
+
FIXED: uncaught instantiation errors in eval routines.
+
NEW: yap_flag(character_escapes,{on,off}).
+
CLEANUP: get rid of config.c.
+
-
Yap4.3.1:
-
-
FIXED: $call and $spied_call used with one less argument by debugger.
-
FIXED: bug in repeat from top level.
-
FIXED: MAX_DEPTH was set too high.
-
FIXED: use actual definition of repeat.
-
FIXED: use < to compare cps for !, not == because of (! ->)
-
FIXED: $set_depth_limit should work with Integer, not Int.
-
FIXED: Allow Linux to compile without getrusage but using
- times (problem with glibc/kernel).
-
+
Yap4.3.1:
+
+
FIXED: $call and $spied_call used with one less argument by debugger.
+
FIXED: bug in repeat from top level.
+
FIXED: MAX_DEPTH was set too high.
+
FIXED: use actual definition of repeat.
+
FIXED: use < to compare cps for !, not == because of (! ->).
+
FIXED: $set_depth_limit should work with Integer, not Int.
+
FIXED: Allow Linux to compile without getrusage but using times (problem with glibc/kernel).
+
-
+
Yap4.3.0 has been released.
-
+
-
Changes in YAP4.2
-
+
Changes in YAP4.2
-
Yap4.2.1:
-
-
FIXED: up release number.
-
FIXED: swap order of first authors in the manual.
-
NEW: more patches for OPTYap.
-
FIXED: not all Linuxen that have fpu_control.h understand
- _FPU_SETCW.
-
+
Yap4.2.1:
+
+
FIXED: up release number.
+
FIXED: swap order of first authors in the manual.
+
NEW: more patches for OPTYap.
+
FIXED: not all Linuxen that have fpu_control.h understand _FPU_SETCW.
+
-
Yap4.2.0pl18:
-
-
FIXED: DebugPutc.
-
FIXED: SBA must initialise or set public permanent
- variables in the SBA.
-
FIXED: get rid of a Prolog definition for number_codes.
-
FIXED: YOUNGER out of OPTYap and renamed YOUNGER_CP.
-
FIXED: don't use offsets to local in SBA.
-
FIXED: make DelayedB and TopB actual choicepointers to
- support SBA.
-
FIXED: memory allocation for FreeBSD.
-
RW Locks are now in YAP (unused yet).
-
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.
-
FIXED: cut used < instead of !=.
-
NEW: new YapOr code from Ricardo.
-
FIXED: a few complaints with Solaris.
-
NEW: generate exceptions in ISO mode for HP-UX.
-
FIXED: use_module relies on ensure_loaded, which is now a directive.
-
FIXED: 64/32 bit errors in Alpha.
-
FIXED: SEG_SIZE is pre-defined in HP platform.
-
FIXED: should call Error only after leaving interrupt
- handler, otherwise sigsetjmp will overwrite registers.
-
FIXED: fill CharConversionTable with null chars;
-
FIXED: warning in PowerPCs.
-
+
Yap4.2.0pl18:
+
+
FIXED: DebugPutc.
+
FIXED: SBA must initialise or set public permanent variables in the SBA.
+
FIXED: get rid of a Prolog definition for number_codes.
+
FIXED: YOUNGER out of OPTYap and renamed YOUNGER_CP.
+
FIXED: don't use offsets to local in SBA.
+
FIXED: make DelayedB and TopB actual choicepointers to support SBA.
+
FIXED: memory allocation for FreeBSD.
+
RW Locks are now in YAP (unused yet).
+
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.
+
FIXED: cut used < instead of !=.
+
NEW: new YapOr code from Ricardo.
+
FIXED: a few complaints with Solaris.
+
NEW: generate exceptions in ISO mode for HP-UX.
+
FIXED: use_module relies on ensure_loaded, which is now a directive.
+
FIXED: 64/32 bit errors in Alpha.
+
FIXED: SEG_SIZE is pre-defined in HP platform.
+
FIXED: should call Error only after leaving interrupt handler, otherwise sigsetjmp will overwrite registers.
+
FIXED: fill CharConversionTable with null chars.
+
FIXED: warning in PowerPCs.
+
-
Yap4.2.0pl17:
-
-
FIXED: more improvements to Eval.
-
NEW: predicate_property(X,public).
-
NEW: public/1 directive, handling of source was cleaned up
- (it used to be broken if one would switch between source and
- no-source).
-
NEW: special meta-call handling for ISO mode. Reduce
- amount of testing for other cases.
-
CLEANUP: complete cleanup of eval. No more duplicate code,
- no more reg and fli.
-
SPEEDUP: move get_spy_creep to yap_flags. This speeds up
- execute a bit.
-
NEW: strict_iso mode.
-
CLEANUP: InitEval.
-
FIXED: arithmetic should be consistent even after an error.
-
NEW: implement ISO exception handling for operations
- between floating-point numbers in Linux.
-
NEW: handle floating point exceptions.
-
CLEANUP: get rid of EQUAL_FLOATS and EQUAL_LONG_INTS as
- they weren't used any longer (and they were wrong anyway).
-
NEW: add e, I've always liked this constant better than pi.
-
FIXED: get a better pi.
-
FIXED: fix round and friends for ISO mode.
-
NEW: add xor (#) and sign.
-
FIXED: get rid of finite, change integer the limits in YAP.
-
FIXED: define atanh and friends for VC++ environments.
-
FIXED: Get PlGetChar() back in, as users may want a simple
- interface to the current input for their own dubious purposes.
-
NEW: yap_flag(discontiguous_warnings, single_var_warnings,
- redefine_warnings) as in SICStus. This should eventually
- replace style_check and no_style_check.
-
FIXED: do not mark or sweep environments twice. This fixes
- Bart's YAP GC performance bug (as mentioned in comp.lang.prolog!).
-
NEW: do variable shunting, not that it helps very much.
-
FIXED: save should only save as many registers as it
- needs, and the ones it does should be adjusted when restoring.
-
NEW: stream_select/3.
-
NEW: save/2.
-
NEW: char_conversion/2 and current_char_conversion. Add
- ISOGetc for this, change scanner for having two getcs (one
- within strings, the other elsewhere).
-
FIXED: was recording source for optimised clauses, not
- just source for module preprocessed clause.
-
CLEANUP: add specialised versions to PlGetc(): Sockets,
- EOF, Readline, and Console.
-
CLEANUP: got rid of PlGetChar();
-
CLEANUP: replaced PlPutc() by specialised versions for
- each type of stream: File, Console, Socket, Socket+Console, and Null;
-
CLEANUP: got rid of PlPutChar();
-
FIXED: ISO compatible mode for floor and friends.
-
FIXED: YAP would crash with INTEGER mod 0.
-
FIXED: miscellaneous error handling in eval.
-
FIXED: number_chars and friends should be compatible with
- scanner.
-
FIXED: stream_property should not work with aliases.
-
NEW: char_code/2.
-
FIXED: ISO mode activates fileerrors.
-
FIXED: avoid using atom_chars within the system.
-
FIXED: number_chars(X,I) and number_codes/2 with bad I
- should give error in ISO mode.
-
FIXED: make ISO abolish/1 succeed for undefined procedures.
-
FIXED: number_chars and atom_chars should be ISO
- compatible in ISO mode.
-
FIXED: errors in call should throw ISO errors.
-
FIXED: functor/3 should now have standard ISO behaviour on
- errors.
-
FIXED: assert(X) would loop.
-
FIXED: char_conversion/2 is now also a directive.
-
FIXED: ensure_loaded/1 should be directive and not a built-in.
-
FIXED: current_predicate/1 should not show system
- predicates and should be module aware.
-
FIXED: utilpred.s now compiles with -DEUROTRA.
-
FIXED: abolish/1 had several nasty bugs, especially in ISO mode.
-
CLEANUP: got rid of nasty config.cache in main directory.
-
FIXED: op/3 and set_prolog_flag/2 are directives.
-
+
Yap4.2.0pl17:
+
+
FIXED: more improvements to Eval.
+
NEW: predicate_property(X,public).
+
NEW: public/1 directive, handling of source was cleaned up (it used to be broken if one would switch between source and no-source).
+
NEW: special meta-call handling for ISO mode. Reduce amount of testing for other cases.
+
CLEANUP: complete cleanup of eval. No more duplicate code, no more reg and fli.
+
SPEEDUP: move get_spy_creep to yap_flags. This speeds up execute a bit.
+
NEW: strict_iso mode.
+
CLEANUP: InitEval.
+
FIXED: arithmetic should be consistent even after an error.
+
NEW: implement ISO exception handling for operations between floating-point numbers in Linux.
+
NEW: handle floating point exceptions.
+
CLEANUP: get rid of EQUAL_FLOATS and EQUAL_LONG_INTS as they weren't used any longer (and they were wrong anyway).
+
NEW: add e, I've always liked this constant better than pi.
+
FIXED: get a better pi.
+
FIXED: fix round and friends for ISO mode.
+
NEW: add xor (#) and sign.
+
FIXED: get rid of finite, change integer the limits in YAP.
+
FIXED: define atanh and friends for VC++ environments.
+
FIXED: Get PlGetChar() back in, as users may want a simple interface to the current input for their own dubious purposes.
+
NEW: yap_flag(discontiguous_warnings, single_var_warnings, redefine_warnings) as in SICStus. This should eventually replace style_check and no_style_check.
+
FIXED: do not mark or sweep environments twice. This fixes Bart's YAP GC performance bug (as mentioned in comp.lang.prolog!).
+
NEW: do variable shunting, not that it helps very much.
+
FIXED: save should only save as many registers as it needs, and the ones it does should be adjusted when restoring.
+
NEW: stream_select/3.
+
NEW: save/2.
+
NEW: char_conversion/2 and current_char_conversion. Add ISOGetc for this, change scanner for having two getcs (one within strings, the other elsewhere).
+
FIXED: was recording source for optimised clauses, not just source for module preprocessed clause.
+
CLEANUP: add specialised versions to PlGetc(): Sockets, EOF, Readline, and Console.
+
CLEANUP: got rid of PlGetChar().
+
CLEANUP: replaced PlPutc() by specialised versions for each type of stream: File, Console, Socket, Socket+Console, and Null.
+
CLEANUP: got rid of PlPutChar().
+
FIXED: ISO compatible mode for floor and friends.
+
FIXED: YAP would crash with INTEGER mod 0.
+
FIXED: miscellaneous error handling in eval.
+
FIXED: number_chars and friends should be compatible with scanner.
+
FIXED: stream_property should not work with aliases.
+
NEW: char_code/2.
+
FIXED: ISO mode activates fileerrors.
+
FIXED: avoid using atom_chars within the system.
+
FIXED: number_chars(X,I) and number_codes/2 with bad I should give error in ISO mode.
+
FIXED: make ISO abolish/1 succeed for undefined procedures.
+
FIXED: number_chars and atom_chars should be ISO compatible in ISO mode.
+
FIXED: errors in call should throw ISO errors.
+
FIXED: functor/3 should now have standard ISO behaviour on errors.
+
FIXED: assert(X) would loop.
+
FIXED: char_conversion/2 is now also a directive.
+
FIXED: ensure_loaded/1 should be directive and not a built-in.
+
FIXED: current_predicate/1 should not show system predicates and should be module aware.
+
FIXED: utilpred.s now compiles with -DEUROTRA.
+
FIXED: abolish/1 had several nasty bugs, especially in ISO mode.
+
CLEANUP: got rid of nasty config.cache in main directory.
+
FIXED: op/3 and set_prolog_flag/2 are directives.
+
-
Yap4.2.0pl16:
-
-
FIXED: retractall was broken.
-
+
Yap4.2.0pl16:
+
+
FIXED: retractall was broken.
+
-
Yap4.2.0pl15:
-
-
FIXED: in catch/3 set module to original module before
- handling a ball.
-
SPEEDUP: improve testing with DEPTH_LIMIT.
-
FIXED: DEPTH_LIMIT should only stop code running under
- depth_bound_call/2.
-
FIXED: bug in parse_args (fix from Stasinos
- Konstantopoulos ).
-
FIXED: copy_term/2 should now be able to copy constraints.
-
FIXED: faster version of copy_term/2 should now handle
- rational trees.
-
NEW: generate ps version of manual with make ps.
-
FIXED: disable save term optimisation for extensions, as
- we may not have an S ready.
-
CLEANUP: always use '$execute' instead of call internally.
-
CLEANUP: get rid of '$user_call' as it should the same as
- '$execute'.
-
NEW: separate between the standard catch, that uses the
- full meta-call, and a system catch, that uses $execute0 and
- $mod_switch and that should be only used deep within the bowels
- of the system.
-
FIXED: expanded head variables of meta_predicates should not be
- expanded by inner meta-calls.
-
FIXED: HAVE_STAT was not being generated correctly by autoconf.
-
NEW: timeout:time_out.
-
FIXED: make sure catch handlers are processed from within user.
-
FIXED: processing of style_check by yap_flag(language,_).
-
FIXED: discontiguous should now be module aware.
-
FIXED: preprocess calls for meta-predicates from top-level.
-
FIXED: simplify code that handles the fact that modules
- from primitives can be called from anywhere.
-
FIXED: $module_expansion could be called with wrong number
- of arguments.
-
FIXED: separate '$execute', the low-level mechanism for
- meta-call, from '$user_call', that must study meta-predicates.
-
FIXED: README.VC
-
+
Yap4.2.0pl15:
+
+
FIXED: in catch/3 set module to original module before handling a ball.
+
SPEEDUP: improve testing with DEPTH_LIMIT.
+
FIXED: DEPTH_LIMIT should only stop code running under depth_bound_call/2.
+
FIXED: bug in parse_args (fix from Stasinos Konstantopoulos <konstant@let.rug.nl>).
+
FIXED: copy_term/2 should now be able to copy constraints.
+
FIXED: faster version of copy_term/2 should now handle rational trees.
+
NEW: generate ps version of manual with make ps.
+
FIXED: disable save term optimisation for extensions, as we may not have an S ready.
+
CLEANUP: always use '$execute' instead of call internally.
+
CLEANUP: get rid of '$user_call' as it should the same as '$execute'.
+
NEW: separate between the standard catch, that uses the full meta-call, and a system catch, that uses $execute0 and $mod_switch and that should be only used deep within the bowels of the system.
+
FIXED: expanded head variables of meta_predicates should not be expanded by inner meta-calls.
+
FIXED: HAVE_STAT was not being generated correctly by autoconf.
+
NEW: timeout:time_out.
+
FIXED: make sure catch handlers are processed from within user.
+
FIXED: processing of style_check by yap_flag(language,_).
+
FIXED: discontiguous should now be module aware.
+
FIXED: preprocess calls for meta-predicates from top-level.
+
FIXED: simplify code that handles the fact that modules from primitives can be called from anywhere.
+
FIXED: $module_expansion could be called with wrong number of arguments.
+
FIXED: separate '$execute', the low-level mechanism for meta-call, from '$user_call', that must study meta-predicates.
+
FIXED: README.VC.
+
-
Yap4.2.0pl14:
-
-
FIXED: allow big flags.
-
FIXED: typos in yap.tex.
-
NEW: yap_flag(host_type,X), where X comes from configure.
-
NEW: more cleanups for autoconf.
-
FIXED: more cleanups for autoconf.
-
NEW: use -DBP_FREE by default for X86 machines.
-
FIXED: make predicate_property more SICStus Prolog
- compatible.
-
NEW: language mode now changes action over dynamic and
- over directives.
-
NEW: initial DLL support for WIN32.
-
FIXED: optimise arithmetic for asserted clauses.
-
FIXED: calling garbage collector from within a
- C-backtrackable built-in should also have the extra arguments
- to the choice-point ready.
-
NEW: YAP should now be able to load DLLs in WIN32.
-
FIXED: YAP will now stop creeping after an abort.
-
FIXED: meta-call within the debugger was externally visible.
-
FIXED: small ANSI-C compatibility thingies.
-
FIXED: writeq('aaa===\\''====') now outputs properly.
-
NEW: yap_flags(update_semantics,logical_assert) if you
- only want to use logical update semantics for asserted code.
-
NEW: yap_flags(language,{cprolog,sicstus,iso})
-
FIXED: do not test for worken goals before !, it slows
- down execution too much.
-
NEW: improve the performance of ==/2.
-
FIXED: compile without COROUTINING
-
FIXED: manual would not compile.
-
+
Yap4.2.0pl14:
+
+
FIXED: allow big flags.
+
FIXED: typos in yap.tex.
+
NEW: yap_flag(host_type,X), where X comes from configure.
+
NEW: more cleanups for autoconf.
+
FIXED: more cleanups for autoconf.
+
NEW: use -DBP_FREE by default for X86 machines.
+
FIXED: make predicate_property more SICStus Prolog compatible.
+
NEW: language mode now changes action over dynamic and over directives.
+
NEW: initial DLL support for WIN32.
+
FIXED: optimise arithmetic for asserted clauses.
+
FIXED: calling garbage collector from within a C-backtrackable built-in should also have the extra arguments to the choice-point ready.
+
NEW: YAP should now be able to load DLLs in WIN32.
+
FIXED: YAP will now stop creeping after an abort.
+
FIXED: meta-call within the debugger was externally visible.
+
FIXED: small ANSI-C compatibility thingies.
+
FIXED: writeq('aaa===\\''====') now outputs properly.
+
NEW: yap_flags(update_semantics,logical_assert) if you only want to use logical update semantics for asserted code.
+
NEW: yap_flags(language,{cprolog,sicstus,iso}).
+
FIXED: do not test for worken goals before !, it slows down execution too much.
+
NEW: improve the performance of ==/2.
+
FIXED: compile without COROUTINING.
+
FIXED: manual would not compile.
+
-
Yap4.2.0pl13:
-
-
FIXED: term_expansion should be called in user module.
-
FIXED: include new operation sderef_op when we want to
- know what a constrained variable is bound to.
-
FIXED: try_logical_pred depended on B, but B might have
- been cut. Use trail for the moment.
-
FIXED: call of project_attributes.
-
NEW: blackboard routines bb_get, bb_put, bb_delete, bb_update
- and yap_flag(n_of_integer_keys_in_bb,INT). Includes a new file,
- bb.c.
-
NEW: yap_flag(n_of_integer_keys_in_db,INT): dynamically set the
- number of entries for the hash table used in looking up integer
- keys for the data-base.
-
+
Yap4.2.0pl13:
+
+
FIXED: term_expansion should be called in user module.
+
FIXED: include new operation sderef_op when we want to know what a constrained variable is bound to.
+
FIXED: try_logical_pred depended on B, but B might have been cut. Use trail for the moment.
+
FIXED: call of project_attributes.
+
NEW: blackboard routines bb_get, bb_put, bb_delete, bb_update, and yap_flag(n_of_integer_keys_in_bb,INT). Includes a new file, bb.c.
+
NEW: yap_flag(n_of_integer_keys_in_db,INT): dynamically set the number of entries for the hash table used in looking up integer keys for the data-base.
+
-
Yap4.2.0pl12:
-
-
NEW: README.VC for VisualC++ users.
-
FIXED: several small changes for VisualC++.
-
FIXED: _WIN32 requires LOWTAGS (0x3000000 kind of address)
- for garbage collection to work.
-
FIXED: UnifyBound was not handling extensions right.
-
FIXED: had wrong definition for non-gcc EXTRA_CBACK_ARG.
-
FIXED: make Yap compile under VisualC++ 6.0 again.
-
FIXED: exit_yap would not exit.
-
+
Yap4.2.0pl12:
+
+
NEW: README.VC for VisualC++ users.
+
FIXED: several small changes for VisualC++.
+
FIXED: _WIN32 requires LOWTAGS (0x3000000 kind of address) for garbage collection to work.
+
FIXED: UnifyBound was not handling extensions right.
+
FIXED: had wrong definition for non-gcc EXTRA_CBACK_ARG.
+
FIXED: make Yap compile under VisualC++ 6.0 again.
+
FIXED: exit_yap would not exit.
+
-
Yap4.2.0pl11:
-
-
FIXED: multifile was not complaining on missing declaration.
-
FIXED: multifile declarations were not module aware.
-
CLEANUP: assert/1 and dynamic/1.
-
FIXED: for the nth time tried to make modules SICStus
- compatible :-(.
-
NEW: integrated latest version of YAPOR (SBA and ACOW
- still do not work).
-
+
Yap4.2.0pl11:
+
+
FIXED: multifile was not complaining on missing declaration.
+
FIXED: multifile declarations were not module aware.
+
CLEANUP: assert/1 and dynamic/1.
+
FIXED: for the nth time tried to make modules SICStus compatible :-(.
+
NEW: integrated latest version of YAPOR (SBA and ACOW still do not work).
+
-
Yap4.2.0pl10:
-
-
FIXED: could have a bad cut in call(X->Y).
-
FIXED: add ord_intersect/3 again (same as ord_intersection/3).
-
FIXED: save_program/2 would not set prompt correctly.
-
FIXED: bug in stack_shifter after gc (was shifting global pointers).
-
FIXED: save/1 was broken with coroutining.
-
FIXED: use_module/2 should handle lists of files.
-
FIXED: COROUTINING depended on DEBUG code.
-
+
Yap4.2.0pl10:
+
+
FIXED: could have a bad cut in call(X->Y).
+
FIXED: add ord_intersect/3 again (same as ord_intersection/3).
+
FIXED: save_program/2 would not set prompt correctly.
+
FIXED: bug in stack_shifter after gc (was shifting global pointers).
+
FIXED: save/1 was broken with coroutining.
+
FIXED: use_module/2 should handle lists of files.
+
FIXED: COROUTINING depended on DEBUG code.
+
-
Yap4.2.0pl9:
-
-
FIXED: list_to_assoc/2.
-
FIXED: ANALYST should compile again.
-
FIXED: ensure_loaded and use_module are not directives!
-
FIXED: bug in cleaning up for logical update semantics.
-
FIXED: cuts will now call suspended goals.
-
FIXED: debugger should now step through meta-predicates correctly.
-
FIXED: trust_logical_pred did not release trail entry correctly.
-
FIXED: recordedp might be create a new key in a different mode from
- the one used to create the dynamic procedure.
-
FIXED: don't go through $undefp for dynamic procedures.
-
FIXED: bugs in asserting dynamic procedures from compiled clauses.
-
FIXED: buglets with multifile/1.
-
FIXED: do not open directories except as binary files.
-
NEW: library random.
-
NEW: assoc now has ord_list_to_assoc/2 and get_assoc/5.
-
NEW: compatibility module terms for term_utils.
-
NEW: ordsets now has ord_union/4 and ord_del_element/3.
-
NEW: add public/1 directive but currently this does nothing.
-
FIXED: be more precise about which files you have consulted.
-
FIXED: use_module/2 should not handle lists of files.
-
FIXED: compare would stop whenever it would find two
- numbers, even if they were equal.
-
NEW: attributed variables.
-
FIXED: coroutining would break \=/2.
-
NEW: ord_add_element/1 in ordsets.
-
NEW: empty_assoc/1 in assoc_lists.
-
CLEANUP: compile under lcc4.1/Linux.
-
FIXED: storing compressed rational trees on DB was buggy.
-
FIXED: $unknown(_:_) should not give an error.
-
FIXED: ord_intersect/3 now is ord_intersection/3.
-
FIXED: recursive do_goal would corrupt coroutining
- information.
-
FIXED: handle possible overflows in quoted strings.
-
CLEANUP: move .pl library files to .yap.
-
CLEANUP: get rid of unused SusRecTop and SusRecBase.
-
CLEANUP: move HeapUsed, HeapMax and HeapTop to Heap.
-
FIXED: add MMAP_ADDR for WIN32.
-
+
Yap4.2.0pl9:
+
+
FIXED: list_to_assoc/2.
+
FIXED: ANALYST should compile again.
+
FIXED: ensure_loaded and use_module are not directives!
+
FIXED: bug in cleaning up for logical update semantics.
+
FIXED: cuts will now call suspended goals.
+
FIXED: debugger should now step through meta-predicates correctly.
+
FIXED: trust_logical_pred did not release trail entry correctly.
+
FIXED: recordedp might be create a new key in a different mode from the one used to create the dynamic procedure.
+
FIXED: don't go through $undefp for dynamic procedures.
+
FIXED: bugs in asserting dynamic procedures from compiled clauses.
+
FIXED: buglets with multifile/1.
+
FIXED: do not open directories except as binary files.
+
NEW: library random.
+
NEW: assoc now has ord_list_to_assoc/2 and get_assoc/5.
+
NEW: compatibility module terms for term_utils.
+
NEW: ordsets now has ord_union/4 and ord_del_element/3.
+
NEW: add public/1 directive but currently this does nothing.
+
FIXED: be more precise about which files you have consulted.
+
FIXED: use_module/2 should not handle lists of files.
+
FIXED: compare would stop whenever it would find two numbers, even if they were equal.
+
NEW: attributed variables.
+
FIXED: coroutining would break \=/2.
+
NEW: ord_add_element/1 in ordsets.
+
NEW: empty_assoc/1 in assoc_lists.
+
CLEANUP: compile under lcc4.1/Linux.
+
FIXED: storing compressed rational trees on DB was buggy.
+
FIXED: $unknown(_:_) should not give an error.
+
FIXED: ord_intersect/3 now is ord_intersection/3.
+
FIXED: recursive do_goal would corrupt coroutining information.
+
FIXED: handle possible overflows in quoted strings.
+
CLEANUP: move .pl library files to .yap.
+
CLEANUP: get rid of unused SusRecTop and SusRecBase.
+
CLEANUP: move HeapUsed, HeapMax, and HeapTop to Heap.
+
FIXED: add MMAP_ADDR for WIN32.
+
-
Yap4.2.0pl8:
-
-
NEW: user:goal_expansion/3.
-
SPEEDUP: use separate table for integer keys to data
- base. Table size can be configured with -DMAX_DB_INT_KEYS=.
-
SPEEDUP: increase the size of HashTable, which was
- ridiculously small.
-
CLEANUP: allocate heap_regs as heap start.
-
SPEEDUP: avoid calculation for compile-time keys.
-
NEW: get_float.
-
NEW: change the way functors of processed.
-
CLEANUP: got rid of disgusting GeneralRef type, it has
- been replaced by Integer.
-
FIXED: unknown_error should not complain if print is called
- with undefined portray.
-
FIXED: delay cuts that go through embeddeded c-calls. This
- requires two extra registers, DelayedB and TopB.
-
CLEANUP: LockPred wasn't being used any longer.
-
FIXED: fact for true was not being asserted.
-
NEW: now long ints and floats are tagged.
-
FIXED: array/2 was a safe predicate that could call gc().
-
FIXED: growstack in cclause should also call gc().
-
+
Yap4.2.0pl8:
+
+
NEW: user:goal_expansion/3.
+
SPEEDUP: use separate table for integer keys to data base. Table size can be configured with -DMAX_DB_INT_KEYS=.
+
SPEEDUP: increase the size of HashTable, which was ridiculously small.
+
CLEANUP: allocate heap_regs as heap start.
+
SPEEDUP: avoid calculation for compile-time keys.
+
NEW: get_float.
+
NEW: change the way functors of processed.
+
CLEANUP: got rid of disgusting GeneralRef type, it has been replaced by Integer.
+
FIXED: unknown_error should not complain if print is called with undefined portray.
+
FIXED: delay cuts that go through embeddeded c-calls. This requires two extra registers, DelayedB and TopB.
+
CLEANUP: LockPred wasn't being used any longer.
+
FIXED: fact for true was not being asserted.
+
NEW: now long ints and floats are tagged.
+
FIXED: array/2 was a safe predicate that could call gc().
+
FIXED: growstack in cclause should also call gc().
+
-
Yap4.2.0pl7:
-
-
FIXED: 8 bit characters would be mangled by char->Int
- conversion in StringToList.
-
NEW: Garbage collection should now work for a total space
- of 1GB on second quadrant (use low_tags).
-
FIXED: ExtendWorkSpace would not always guarantee aligned size.
-
NEW: call_with_args/n, meta-call with variable arity (up
- to 10).
-
FIXED: array/2 overflow had not been fixed properly.
-
FIXED: sort and friends would not handle overflow properly.
-
FIXED: improve manual include small bugs, compatibility stuff.
-
SPEEDUP: replace opcode(_index_pred) with INDEX_OPCODE.
-
SPEEDUP: replace opcode(_undef_p) with UNDEF_OPCODE.
-
FIXED: only optimise common_expressions up to level 5.
-
+
Yap4.2.0pl7:
+
+
FIXED: 8 bit characters would be mangled by char->Int conversion in StringToList.
+
NEW: Garbage collection should now work for a total space of 1GB on second quadrant (use low_tags).
+
FIXED: ExtendWorkSpace would not always guarantee aligned size.
+
NEW: call_with_args/n, meta-call with variable arity (up to 10).
+
FIXED: array/2 overflow had not been fixed properly.
+
FIXED: sort and friends would not handle overflow properly.
+
FIXED: improve manual include small bugs, compatibility stuff.
+
SPEEDUP: replace opcode(_index_pred) with INDEX_OPCODE.
+
SPEEDUP: replace opcode(_undef_p) with UNDEF_OPCODE.
+
FIXED: only optimise common_expressions up to level 5.
+
-
Yap4.2.0pl6:
-
-
FIXED: coroutining had been broken when initialisation was
- reordered.
-
ISO: predicate_property of static predicates now returns
- static, instead of compiled.
-
FIXED: if format/2 ~s would complain for empty strings.
-
FIXED: bug with too large arrays.
-
NEW: term_hash/2 and term_hash/4.
-
FIXED: allow modules in bodies of DCGs.
-
FIXED: get rid of modules in head before they hit DCGs.
-
FIXED: current_predicate with modules.
-
FIXED: $undefined/1 should never collapse.
-
FIXED: listing would collapse because of :/2. :/2 is not
- an undefined procedure now.
-
FIXED: in saved states replace $* by "$@".
-
NEW: user:unknown_predicate_handler/3 from SICStus.
-
FIXED: declare findall/4 a meta_predicate.
-
FIXED: switch third and fourth argument to findall/4 to
- obtain SICStus compatibility.
-
FIXED: unknown/2 should know about modules.
-
FIXED: speedup handling of unknown predicates in meta-calls.
-
FIXED: speedup depth_bound_call(A,D) by using $execute.
-
FIXED: add chapter on modules to manual.
-
FIXED: meta_predicates from same module were not being
- expanded.
-
FIXED: modules use current module for meta predicate.
-
REVERSE: default meta_predicates back to user.
-
+
Yap4.2.0pl6:
+
+
FIXED: coroutining had been broken when initialisation was reordered.
+
ISO: predicate_property of static predicates now returns static, instead of compiled.
+
FIXED: if format/2 ~s would complain for empty strings.
+
FIXED: bug with too large arrays.
+
NEW: term_hash/2 and term_hash/4.
+
FIXED: allow modules in bodies of DCGs.
+
FIXED: get rid of modules in head before they hit DCGs.
+
FIXED: current_predicate with modules.
+
FIXED: $undefined/1 should never collapse.
+
FIXED: listing would collapse because of :/2. :/2 is not an undefined procedure now.
+
FIXED: in saved states replace $* by "$@".
+
NEW: user:unknown_predicate_handler/3 from SICStus.
+
FIXED: declare findall/4 a meta_predicate.
+
FIXED: switch third and fourth argument to findall/4 to obtain SICStus compatibility.
+
FIXED: unknown/2 should know about modules.
+
FIXED: speedup handling of unknown predicates in meta-calls.
+
FIXED: speedup depth_bound_call(A,D) by using $execute.
+
FIXED: add chapter on modules to manual.
+
FIXED: meta_predicates from same module were not being expanded.
+
FIXED: modules use current module for meta predicate.
+
REVERSE: default meta_predicates back to user.
+
-
Yap4.2.0pl5:
-
-
FIXED: meta_predicate should be a directive, not a
- standard predicate.
-
FIXED: all default meta_predicates should belong to user,
- not primitives.
-
FIXED: give errors when not finding libraries.
-
FIXED: load_module/1 and load_module/2 are now directives.
-
FIXED: load_module/2 would not accept libraries and had
- bad error handling.
-
FIXED: catch/3 did not have a meta_predicate declaration.
-
FIXED: meta predicates were not being expanded correctly.
-
FIXED: saved state script was not passing arguments to Yap.
-
FIXED: go around gcc bug in current_op for hpux machines.
-
FIXED: top level abort would crash in hp machines (TR was
- overwritten).
-
FIXED: error messages for op/3.
-
FIXED: ord_member/2 in ordsets.
-
+
Yap4.2.0pl5:
+
+
FIXED: meta_predicate should be a directive, not a standard predicate.
+
FIXED: all default meta_predicates should belong to user, not primitives.
+
FIXED: give errors when not finding libraries.
+
FIXED: load_module/1 and load_module/2 are now directives.
+
FIXED: load_module/2 would not accept libraries and had bad error handling.
+
FIXED: catch/3 did not have a meta_predicate declaration.
+
FIXED: meta predicates were not being expanded correctly.
+
FIXED: saved state script was not passing arguments to Yap.
+
FIXED: go around gcc bug in current_op for hpux machines.
+
FIXED: top level abort would crash in hp machines (TR was overwritten).
+
FIXED: error messages for op/3.
+
FIXED: ord_member/2 in ordsets.
+
-
Yap4.2.0pl4:
-
-
NEW: the evil recordaifnot/3 and recordzifnot/3 are now in
- the manual.
-
FIXED: include ord_union/2 and ord_member/2 in ordsets.
-
FIXED: complain about _:G.
-
FIXED: allow modules in heads for assert and friends.
-
FIXED: allow modules in multifile and dynamic declarations.
-
FIXED: send error messages in modules.yap to user_error.
-
FIXED: get rid of error message in eraseall.
-
NEW: term_variables/2.
-
FIXED: directives had broken ensure_loaded/1 for use_module/1.
-
NEW: small performance improvements in unification
- routines (UnifyGlobalCells).
-
+
Yap4.2.0pl4:
+
+
NEW: the evil recordaifnot/3 and recordzifnot/3 are now in the manual.
+
FIXED: include ord_union/2 and ord_member/2 in ordsets.
+
FIXED: complain about _:G.
+
FIXED: allow modules in heads for assert and friends.
+
FIXED: allow modules in multifile and dynamic declarations.
+
FIXED: send error messages in modules.yap to user_error.
+
FIXED: get rid of error message in eraseall.
+
NEW: term_variables/2.
+
FIXED: directives had broken ensure_loaded/1 for use_module/1.
+
NEW: small performance improvements in unification routines (UnifyGlobalCells).
+
-
Yap4.2.0pl3:
-
-
FIXED: small performance improvements in unification
- routines.
-
FIXED: logical_update semantics were broken in pl2.
-
FIXED: findall and friends were broken in pl2.
-
FIXED: bind_global within unify_struct
-
+
Yap4.2.0pl3:
+
+
FIXED: small performance improvements in unification routines.
+
FIXED: logical_update semantics were broken in pl2.
+
FIXED: findall and friends were broken in pl2.
+
FIXED: bind_global within unify_struct.
+
-
Yap4.2.0pl2:
-
-
NEW: static arrays of DB terms.
-
NEW: close_static_array and resize_static_array now work
- over mmapped files.
-
FIXED: rename delete_static_array to close_static_array.
-
FIXED: improve the manual a little bit. Add info in
- README to Manual.
-
FIXED: support for ISO-style atom_chars/2 and number_chars/2.
-
NEW: ISO include/1 directive.
-
ISO: ensure_loaded/1 is now a directive (and it cannot be
- called as a procedure).
-
NEW: discontiguous/1 directive.
-
NEW: process multifile/1 as a directive.
-
FIXED: give warning if multifile procedures are used
- before multifile declaration.
-
FIXED: multifile was very severy broken.
-
FIXED: initialize/1 now follows ANSI semantics. We have
- prolog_initialize/1 for SICStus Prolog code.
-
FIXED: don't explode if the compiler finds too many
- variables or if there is not enough code space to store our code.
-
NEW: ISO quoted character sequences (note that this means
- that '\+' will break now).
-
FIXED: remove limit on size of strings and quoted atoms.
-
FIXED: [ ] is now parsed as [], like other Prologs do.
-
FIXED: read-in clauses predicated by modules
- (mod:clause).
-
FIXED: gcc/HP-UX would generate incorrect code for
- PredForCode. Use an extra temporary (at) and the probably goes
- away.
-
NEW: add "make install-info", "make info" and "make html".
-
FIXED: create a README file mentioning the license, get
- rid of the INSTALL file for now.
-
FIXED: don't shadow S, CP, HB in hppa. They have their
- own registers.
-
FIXED: change x86 back to base address 0x10000000 and
- tags back to opstags for Linux.
-
+
Yap4.2.0pl2:
+
+
NEW: static arrays of DB terms.
+
NEW: close_static_array and resize_static_array now work over mmapped files.
+
FIXED: rename delete_static_array to close_static_array.
+
FIXED: improve the manual a little bit. Add info in README to Manual.
+
FIXED: support for ISO-style atom_chars/2 and number_chars/2.
+
NEW: ISO include/1 directive.
+
ISO: ensure_loaded/1 is now a directive (and it cannot be called as a procedure).
+
NEW: discontiguous/1 directive.
+
NEW: process multifile/1 as a directive.
+
FIXED: give warning if multifile procedures are used before multifile declaration.
+
FIXED: multifile was very severy broken.
+
FIXED: initialize/1 now follows ANSI semantics. We have prolog_initialize/1 for SICStus Prolog code.
+
FIXED: don't explode if the compiler finds too many variables or if there is not enough code space to store our code.
+
NEW: ISO quoted character sequences (note that this means that '\+' will break now).
+
FIXED: remove limit on size of strings and quoted atoms.
+
FIXED: [ ] is now parsed as [], like other Prologs do.
+
FIXED: read-in clauses predicated by modules (mod:clause).
+
FIXED: gcc/HP-UX would generate incorrect code for PredForCode. Use an extra temporary (at) and the probably goes away.
+
NEW: add "make install-info", "make info" and "make html".
+
FIXED: create a README file mentioning the license, get rid of the INSTALL file for now.
+
FIXED: don't shadow S, CP, HB in hppa. They have their own registers.
+
FIXED: change x86 back to base address 0x10000000 and tags back to opstags for Linux.
+
-
Yap4.2.0pl1:
-
-
FIXED: works(?) in HP/UX.
-
NEW: update_array for dynamic arrays.
-
FIXED: works in FreeBSD.
-
FIXED: improvements and additions to configuration scripts
-
NEW: port to Visual C++ (_MSC_VER)
-
NEW: major improvements and bug fixes to YAPOR.
-
CLEANUP: _REG to _
-
NEW: arrays of bytes and of unsigned bytes.
-
FIXED: worked a bit on manual.
-
NEW: resize_static_array/3
-
NEW: delete_static_array/1
-
FIXED: ACOW in YAPOR.
-
FIXED: Error after Error would not notice there was no place
- to cut back to.
-
FIXED: SBA in YAPOR.
-
NEW: version/0 and version/1. Deleted yap_version/1.
-
NEW: is_mutable/1.
-
FIXED: recent bug in dif.
-
SYNCH: with Ricardo Rocha's optyap. SBA is broken.
-
FIXED: reverse_opcode_lookup table.
-
NEW: YAP as a library,
-
-
New functions provide an interface for initialising
- and calling Yap from external environments. Note that Yap
- is still a big chunk.
-
Restoring embedded C-functions is now performed by
- restore_heap together with InitStaff.
-
The code to restore a clause has been updated to use
- yamop and GONEXT. The same code does both indices and clauses.
-
All macros that adjust pointers are now functions,
- and type-check their arguments.
-
All functions that restore a stack (from restore,
- growheap and growlocal) have now been merged in a general
- function in grow.c. This decreases efficiency slightly, but
- should improve maintainability.
-
InitStaff() now has an argument saying whether we are
- calling from boot or from restore. Note that most Prolog
- executions will actually call InitStaff() twice.
-
initialisation code in yap.c was simplified. Several
- functions and variables were moved out to init.c.
-
routines that start new goals were moved out of
- cdmgr.c to exec.c.
-
-
FIXED: all clauses should terminate with _Ystop, but we
- just did emit_op instead of a_e.
-
NEW: save_program/2.
-
NEW: save_program/1. Default startup is now through
- save_program.
-
FIXED: break should not remove choice-points.
-
FIXED: allow (call(X), X) to possibly succeed. It is
- unclear whether that conforms to the ISO standard, but there
- is the excuse it is SICStus compatible.
-
FIXED: $undefp would call a bad $user_call.
-
FIXED: bad calculations for walltime.
-
FIXED: bug with depth_bound_call for not and \+.
-
FIXED: execute_goal would not recover registers correctly.
-
NEW: SICStus compatibility predicates including incore/1,
- callable/1, and simple/1.
-
NEW: add arity as an extra argument to _struct functions.
-
FIXED: uninitialised profiling counters.
-
FIXED: OPTYap had broken unknown=error.
-
FIXED: small bug in assembling index code.
-
FIXED: growheap would not fix trail properly.
-
NEW: logical update semantics for internal data-base.
-
CLEANUP: indexed code also has a tag.
-
FIXED: putenv/2 must allocate static memory.
-
FIXED: remove duplicate clauses in environ/2.
-
+
Yap4.2.0pl1:
+
+
FIXED: works(?) in HP/UX.
+
NEW: update_array for dynamic arrays.
+
FIXED: works in FreeBSD.
+
FIXED: improvements and additions to configuration scripts.
+
NEW: port to Visual C++ (_MSC_VER).
+
NEW: major improvements and bug fixes to YAPOR.
+
CLEANUP: _REG to _.
+
NEW: arrays of bytes and of unsigned bytes.
+
FIXED: worked a bit on manual.
+
NEW: resize_static_array/3.
+
NEW: delete_static_array/1.
+
FIXED: ACOW in YAPOR.
+
FIXED: Error after Error would not notice there was no place to cut back to.
+
FIXED: SBA in YAPOR.
+
NEW: version/0 and version/1. Deleted yap_version/1.
+
NEW: is_mutable/1.
+
FIXED: recent bug in dif.
+
SYNCH: with Ricardo Rocha's optyap. SBA is broken.
+
FIXED: reverse_opcode_lookup table.
+
NEW: YAP as a library:
+
+
New functions provide an interface for initialising and calling Yap from external environments. Note that Yap is still a big chunk.
+
Restoring embedded C-functions is now performed by restore_heap together with InitStaff.
+
The code to restore a clause has been updated to use yamop and GONEXT. The same code does both indices and clauses.
+
All macros that adjust pointers are now functions, and type-check their arguments.
+
All functions that restore a stack (from restore, growheap and growlocal) have now been merged in a general function in grow.c. This decreases efficiency slightly, but should improve maintainability.
+
InitStaff() now has an argument saying whether we are calling from boot or from restore. Note that most Prolog executions will actually call InitStaff() twice.
+
initialisation code in yap.c was simplified. Several functions and variables were moved out to init.c.
+
routines that start new goals were moved out of cdmgr.c to exec.c.
+
+
FIXED: all clauses should terminate with _Ystop, but we just did emit_op instead of a_e.
+
NEW: save_program/2.
+
NEW: save_program/1. Default startup is now through save_program.
+
FIXED: break should not remove choice-points.
+
FIXED: allow (call(X), X) to possibly succeed. It is unclear whether that conforms to the ISO standard, but there is the excuse it is SICStus compatible.
+
FIXED: $undefp would call a bad $user_call.
+
FIXED: bad calculations for walltime.
+
FIXED: bug with depth_bound_call for not and \+.
+
FIXED: execute_goal would not recover registers correctly.
+
NEW: SICStus compatibility predicates including incore/1, callable/1, and simple/1.
+
NEW: add arity as an extra argument to _struct functions.
+
FIXED: uninitialised profiling counters.
+
FIXED: OPTYap had broken unknown=error.
+
FIXED: small bug in assembling index code.
+
FIXED: growheap would not fix trail properly.
+
NEW: logical update semantics for internal data-base.
+
CLEANUP: indexed code also has a tag.
+
FIXED: putenv/2 must allocate static memory.
+
FIXED: remove duplicate clauses in environ/2.
+
-
Yap4.2.0:
-
-
NEW: YAP4.2.0 is out
-
REMOVED: file RELEASE.NOTES
-
+
Yap4.2.0:
+
+
NEW: YAP4.2.0 is out.
+
REMOVED: file RELEASE.NOTES.
+
-
Changes in YAP4.1
-
+
Changes in YAP4.1
-
Yap4.1.19:
-
-
FIXED: phrase/3 had bad call to $t_body.
-
FIXED: warnings on alpha.
-
FIXED: make YAP compile on SGI's cc.
-
ISO-YAP: accept 0o notation for octal integers.
-
FIXED: rcdifnot would try to unify with NULL return pointer.
-
FIXED: when/3 did not link Done variables.
-
FIXED: bad copying of arguments in co-routining.
-
NEW: first cut at SBA or-parallel execution.
-
FIXED: YAP version is now in Makefile.
-
NEW: alarm/3 (see manual).
-
FIXED: errno handling is in io.h.
-
+
Yap4.1.19:
+
+
FIXED: phrase/3 had bad call to $t_body.
+
FIXED: warnings on alpha.
+
FIXED: make YAP compile on SGI's cc.
+
ISO-YAP: accept 0o notation for octal integers.
+
FIXED: rcdifnot would try to unify with NULL return pointer.
+
FIXED: when/3 did not link Done variables.
+
FIXED: bad copying of arguments in co-routining.
+
NEW: first cut at SBA or-parallel execution.
+
FIXED: YAP version is now in Makefile.
+
NEW: alarm/3 (see manual).
+
FIXED: errno handling is in io.h.
+
-
Yap4.1.18:
-
-
FIXED: debugger would not work after change to call.
-
FIXED: do not trace !G within debugger.
-
+
Yap4.1.18:
+
+
FIXED: debugger would not work after change to call.
+
FIXED: do not trace !G within debugger.
+
-
Yap4.1.17:
-
-
FIXED: error handler for floats was too enthusiastic in format/3.
-
FIXED: accept list of dynamic predicates.
-
NEW: merge new version of Ricardo Rocha's OPTYAP
- including support for tabulation.
-
NEW: improve performance of call.
-
FIXED: trail overflow in heap gc (store_ref_in_dbtable).
-
FIXED: close fd if mmap fails.
-
FIXED: IsPrimitiveTerm would succeed on suspended variables.
-
FIXED: small bug in socket_select.
-
FIXED: garbage collector would follow old values of
- multi-assignment variables even if they were not heap
- pointers.
-
FIXED: garbage collector was following list of suspended
- goals as if a variable.
-
FIXED: call/1 was not importing modules correctly.
-
NEW: A library. Right now it just consists of
- several files copied from the Edinburg Prolog library, with
- little or no change. To use it, you must do "make install" or
- have LIBDIR in the Makefile set to the YAP source directory.
-
FIXED: garbage in debugger.
-
FIXED: fix writing \+ (a,b) properly.
-
NEW: get rid of addresses for the unify() routines. Unify
- now receives values, as it should, instead of addresses.
-
NEW: get rid of the representant stuff for
- coroutining. Instead of trying to find out if we bound an
- external variable, from now on we must guarantee that we
- pass a non-dereferenced external variable (e.g. argument) to
- the unification routine, otherwise delayed variables may not
- wake up.
-
FIXED: get rid of bind_variable.
-
FIXED: exit_yap was not working (halt).
-
FIXED: write version number when booting from a saved
- state.
-
+
Yap4.1.17:
+
+
FIXED: error handler for floats was too enthusiastic in format/3.
+
FIXED: accept list of dynamic predicates.
+
NEW: merge new version of Ricardo Rocha's OPTYAP including support for tabulation.
+
NEW: improve performance of call.
+
FIXED: trail overflow in heap gc (store_ref_in_dbtable).
+
FIXED: close fd if mmap fails.
+
FIXED: IsPrimitiveTerm would succeed on suspended variables.
+
FIXED: small bug in socket_select.
+
FIXED: garbage collector would follow old values of multi-assignment variables even if they were not heap pointers.
+
FIXED: garbage collector was following list of suspended goals as if a variable.
+
FIXED: call/1 was not importing modules correctly.
+
NEW: A library. Right now it just consists of several files copied from the Edinburg Prolog library, with little or no change. To use it, you must do "make install" or have LIBDIR in the Makefile set to the YAP source directory.
+
FIXED: garbage in debugger.
+
FIXED: fix writing \+ (a,b) properly.
+
NEW: get rid of addresses for the unify() routines. Unify now receives values, as it should, instead of addresses.
+
NEW: get rid of the representant stuff for coroutining. Instead of trying to find out if we bound an external variable, from now on we must guarantee that we pass a non-dereferenced external variable (e.g. argument) to the unification routine, otherwise delayed variables may not wake up.
+
FIXED: get rid of bind_variable.
+
FIXED: exit_yap was not working (halt).
+
FIXED: write version number when booting from a saved state.
+
-
Yap4.1.16:
-
-
FIXED: don't crash if you're not booting from the
- standard file (SavedInfo should not assume LookupAtom works).
-
FIXED: prompt (again).
-
FIXED: debugging dynamic or source mode procedures would
- ignore depth limits.
-
FIXED: -DBP_FREE could lose program counter, if changed
- by ErCl or ErDBE.
-
FIXED: global registers could be smashed by the compiler
- within error handlers (SGI).
-
FIXED: fix a bug on and thus enable garbage collection of
- code space.
-
FIXED: bug in cut_by_y.
-
FIXED: be less optimistic about when to expand the trail
- after a sigsegv.
-
+
Yap4.1.16:
+
+
FIXED: don't crash if you're not booting from the standard file (SavedInfo should not assume LookupAtom works).
+
FIXED: prompt (again).
+
FIXED: debugging dynamic or source mode procedures would ignore depth limits.
+
FIXED: -DBP_FREE could lose program counter, if changed by ErCl or ErDBE.
+
FIXED: global registers could be smashed by the compiler within error handlers (SGI).
+
FIXED: fix a bug on and thus enable garbage collection of code space.
+
FIXED: bug in cut_by_y.
+
FIXED: be less optimistic about when to expand the trail after a sigsegv.
+
-
Yap4.1.15:
-
-
FIXED: disable garbage collection of code space.
-
FIXED: growstack did not know OldH.
-
FIXED: be conservative about new variables in branches (active_branch).
-
NEW: change code to artistic license.
-
FIXED: include errno.h in socket code.
-
FIXED: strcpy of NULL pointers in sysbits.c.
-
FIXED: writing \+ (a,b) would not output middle space,
- confusing the parser.
-
NEW: initial support for the SBA model (parallelism).
-
FIXED: make the system more robust when it can't get more
- memory.
-
FIXED: recorded with unbounded key was crashing.
-
CLEANUP: use derefa when we know the possible address for
- a variable. This avoids reading a memory cell twice.
-
CLEANUP: make sockets a special stream, make actual
- reading and writing on sockets work, unify all close
- operations on sockets, update iopreds to take special care of
- sockets. Still not working: ungetc on sockets, eof has not
- been tested.
-
CLEANUP: conditions on c-interface.
-
FIXED: growheap could be called with wrong local stack pointer.
-
NEW: always_prompt_user/0, for those who hide behind pipes
- and sockets.
-
FIXED: bug in frozen/2 and friends.
-
CLEANUP: use Prolog terms in coroutining, avoid NULL pointers.
-
FIXED: save/restore was breaking corouting.
-
FIXED: readline does not work under parallel execution.
-
CLEANUP: cleanup some constructs so that YAP will compile
- under lcc again.
-
FIXED: incorrect detection of overflows in index.c.
-
+
Yap4.1.15:
+
+
FIXED: disable garbage collection of code space.
+
FIXED: growstack did not know OldH.
+
FIXED: be conservative about new variables in branches (active_branch).
+
NEW: change code to Artistic license.
+
FIXED: include errno.h in socket code.
+
FIXED: strcpy of NULL pointers in sysbits.c.
+
FIXED: writing \+ (a,b) would not output middle space, confusing the parser.
+
NEW: initial support for the SBA model (parallelism).
+
FIXED: make the system more robust when it can't get more memory.
+
FIXED: recorded with unbounded key was crashing.
+
CLEANUP: use derefa when we know the possible address for a variable. This avoids reading a memory cell twice.
+
CLEANUP: make sockets a special stream, make actual reading and writing on sockets work, unify all close operations on sockets, update iopreds to take special care of sockets. Still not working: ungetc on sockets, eof has not been tested.
+
CLEANUP: conditions on c-interface.
+
FIXED: growheap could be called with wrong local stack pointer.
+
NEW: always_prompt_user/0, for those who hide behind pipes and sockets.
+
FIXED: bug in frozen/2 and friends.
+
CLEANUP: use Prolog terms in coroutining, avoid NULL pointers.
+
FIXED: save/restore was breaking corouting.
+
FIXED: readline does not work under parallel execution.
+
CLEANUP: cleanup some constructs so that YAP will compile under lcc again.
FIXED: incorrect detection of overflows in index.c.
+
-
Yap4.1.14:
-
-
FIXED: texi2dvi failed on the manual because of incorrect
- placement of @*.
-
FIXED: RECOVER_MACHINE_REGS for MIPS in Regs.h had
- somehow lost an E!
-
FIXED: expand stacks if effectiveness of garbage
- collection is below 20%.
-
FIXED: YAP was not checking for excessive number of
- labels while assembling.
-
FIXED: get rid of no in sequential init.
-
FIXED: bug in checking modules for abolish and friends.
-
FIXED: with readline, prompt even if stderr is not a
- tty. Also make sure prompt goes to stderr, not to stdout.
-
NEW: SICStus Prolog compatible socket interface (see
- manual, still experimental).
-
+
Yap4.1.14:
+
+
FIXED: texi2dvi failed on the manual because of incorrect placement of @*.
+
FIXED: RECOVER_MACHINE_REGS for MIPS in Regs.h had somehow lost an E!
+
FIXED: expand stacks if effectiveness of garbage collection is below 20%.
+
FIXED: YAP was not checking for excessive number of labels while assembling.
+
FIXED: get rid of no in sequential init.
+
FIXED: bug in checking modules for abolish and friends.
+
FIXED: with readline, prompt even if stderr is not a tty. Also make sure prompt goes to stderr, not to stdout.
+
NEW: SICStus Prolog compatible socket interface (see manual, still experimental).
+
-
Yap4.1.13:
-
-
FIXED: Cygnus/getrusage does not work under WIN95.
-
FIXED: extraneous push in compiling bvmap for either.
-
FIXED: long printf in heapgc.c
-
FIXED: extraneous printf in dbase.c
-
NEW: sync until leftmost in YAPOR.
-
NEW: sequential predicates in YAPOR.
-
FIXED: YAPOR in OPTYap now runs queens.
-
+
Yap4.1.13:
+
+
FIXED: Cygnus getrusage does not work under WIN95.
+
FIXED: extraneous push in compiling bvmap for either.
+
FIXED: long printf in heapgc.c.
+
FIXED: extraneous printf in dbase.c.
+
NEW: sync until leftmost in YAPOR.
+
NEW: sequential predicates in YAPOR.
+
FIXED: YAPOR in OPTYap now runs queens.
+
-
Yap4.1.12:
-
-
FIXED: make sure that when you backtrack to an erased
- clause you don't get caught by dangling pointers.
-
FIXED: check args to arithmetic comparisons are not free.
-
FIXED: make sure you only mark an env var as initialised
- if the instruction refers it for the first time.
-
FIXED: Error handler depended on pointer to freed code.
-
FIXED: always fully gc clean the last environment.
-
FIXED: new dbref gc cleaner could mess with dbqueues.
-
FIXED: test if YAP can allocate more memory.
-
FIXED: YAP now makes procedures dynamic after first assert.
-
FIXED: because of disjunctions, variables in clauses do not
- always grow linearly. Change compiler to informe gc of actual
- live variables in an environment at any point, not including
- variables outside the current branch (even if at ancestor's
- branches). Take special care with optimised if-then-elses.
-
NEW: speedup compact_heap.
-
FIXED: CheckDBOverflow in MkDBTerm would not reset
- variables, as it should.
-
FIXED: recover HB in gc.
-
NEW: Integer macros for integers that may overflow.
-
NEW: jump across unmarked cells in downward pass.
-
NEW: simplify marking longints and doubles.
-
NEW: small performance improvement in meta-call.
-
FIXED: make toggle preds robust to meta-calls.
-
FIXED: bad error handling in evaluable predicates.
-
NEW: upgrade YAPOR to most recent OPTYAP.
-
CLEANUP: use the RESET_VARIABLE macro to reset a variable.
-
FIXED: ITERATIVE_DEEPENING option is now called DEPTH_LIMIT
-
NEW: simplified autoconf script and Makefile.
-
FIXED: YAPOR now compiles again and reaches top-level.
-
CLEANUP: make assembly built-ins accessible as standard
- predicates. This makes meta-calls somewhat less bulky.
-
FIXED: YAP could crash while reading in binary files. The
- problem was that the hash function could return an offset <
- 0.
-
NEW: in GC check if db terms are in use, and if not reset
- counters. Further reclaim immediately space for terms erased
- and not in use (current implementation uses an inefficient
- unbalanced binary tree).
-
NEW: in GC untrail unmarked bindings and reset the pointers.
-
+
Yap4.1.12:
+
+
FIXED: make sure that when you backtrack to an erased clause you don't get caught by dangling pointers.
+
FIXED: check args to arithmetic comparisons are not free.
+
FIXED: make sure you only mark an env var as initialised if the instruction refers it for the first time.
+
FIXED: Error handler depended on pointer to freed code.
+
FIXED: always fully gc clean the last environment.
+
FIXED: new dbref gc cleaner could mess with dbqueues.
+
FIXED: test if YAP can allocate more memory.
+
FIXED: YAP now makes procedures dynamic after first assert.
+
FIXED: because of disjunctions, variables in clauses do not always grow linearly. Change compiler to informe gc of actual live variables in an environment at any point, not including variables outside the current branch (even if at ancestor's branches). Take special care with optimised if-then-elses.
+
NEW: speedup compact_heap.
+
FIXED: CheckDBOverflow in MkDBTerm would not reset variables, as it should.
+
FIXED: recover HB in gc.
+
NEW: Integer macros for integers that may overflow.
+
NEW: jump across unmarked cells in downward pass.
+
NEW: simplify marking longints and doubles.
+
NEW: small performance improvement in meta-call.
+
FIXED: make toggle preds robust to meta-calls.
+
FIXED: bad error handling in evaluable predicates.
+
NEW: upgrade YAPOR to most recent OPTYAP.
+
CLEANUP: use the RESET_VARIABLE macro to reset a variable.
+
FIXED: ITERATIVE_DEEPENING option is now called DEPTH_LIMIT.
+
NEW: simplified autoconf script and Makefile.
+
FIXED: YAPOR now compiles again and reaches top-level.
+
CLEANUP: make assembly built-ins accessible as standard predicates. This makes meta-calls somewhat less bulky.
+
FIXED: YAP could crash while reading in binary files. The problem was that the hash function could return an offset < 0.
+
NEW: in GC check if db terms are in use, and if not reset counters. Further reclaim immediately space for terms erased and not in use (current implementation uses an inefficient unbalanced binary tree).
+
NEW: in GC untrail unmarked bindings and reset the pointers.
+
-
Yap4.1.11:
-
-
NEW: after several requests, added assert_static and friends.
-
FIXED: bug in adding spaces while writing X is $VAR(2)+...
-
NEW: stream aliases.
-
FIXED: ^C-a now works on PUSH_REGS (eg, X86).
-
FIXED: catch could remove other valid catches.
-
FIXED: several cases of non-compatible ISO error handling.
-
FIXED: current_input and current_output would fail for
- instantiated arguments.
-
FIXED: writing $VAR(X) terms could core dump miserably.
-
FIXED: initialisation was not protected by a catch/3.
-
FIXED: system would exit after trying to compile Numeric
- or DBRef goal.
-
NEW: improve performance of arithmetic comparisons by
- inserting them as ops in abstract machine.
-
FIXED: meta-call would get lost in call((X,Y)). Callable
- checking is now ISO (almost).
-
FIXED: recursive compare was not catching term_exts on
- second argument to comparison.
-
FIXED: compilation warning on printing Int in alpha.
-
FIXED: gc would mark terms accessible only from the
- trail. Change so that these pointers are only relocated, and
- remove dangling pointers from the trail.
-
+
Yap4.1.11:
+
+
NEW: after several requests, added assert_static and friends.
+
FIXED: bug in adding spaces while writing X is $VAR(2)+...
+
NEW: stream aliases.
+
FIXED: ^C-a now works on PUSH_REGS (eg, X86).
+
FIXED: catch could remove other valid catches.
+
FIXED: several cases of non-compatible ISO error handling.
+
FIXED: current_input and current_output would fail for instantiated arguments.
+
FIXED: writing $VAR(X) terms could core dump miserably.
+
FIXED: initialisation was not protected by a catch/3.
+
FIXED: system would exit after trying to compile Numeric or DBRef goal.
+
NEW: improve performance of arithmetic comparisons by inserting them as ops in abstract machine.
+
FIXED: meta-call would get lost in call((X,Y)). Callable checking is now ISO (almost).
+
FIXED: recursive compare was not catching term_exts on second argument to comparison.
+
FIXED: compilation warning on printing Int in alpha.
+
FIXED: gc would mark terms accessible only from the trail. Change so that these pointers are only relocated, and remove dangling pointers from the trail.
+
-
Yap4.1.10:
-
-
FIXED: get rid of ExecuteProlog as used by print/1,
- execute_goal can do the same.
-
FIXED: $undefined succeeded for predicates written in
- assembly.
-
FIXED: provide 16 registers (ARG1 to ARG16).
-
FIXED: some changes to make YAP work without ALIGN_LONGS.
-
FIXED: old timing bug.
-
FIXED: bug in generating cut.
-
FIXED: don't crash if have several errors on the same expression.
-
FIXED: use strerror instead of sys_errlist.
-
FIXED: make system more resilient to small ints.
-
FIXED: system should be more resilient when allocating
- large chunks of memory.
-
FIXED: X is cputime should have no rounding problems.
-
FIXED: silently fail on wrong array accesses.
-
FIXED: true was not seen as built-in.
-
FIXED: DEPTH was not always saved correctly in execute_prolog.
-
+
Yap4.1.10:
+
+
FIXED: get rid of ExecuteProlog as used by print/1, execute_goal can do the same.
+
FIXED: execute_goal should survive garbage collection and/or stack shifting.
+
FIXED: $undefined succeeded for predicates written in assembly.
+
FIXED: provide 16 registers (ARG1 to ARG16).
+
FIXED: some changes to make YAP work without ALIGN_LONGS.
+
FIXED: old timing bug.
+
FIXED: bug in generating cut.
+
FIXED: don't crash if have several errors on the same expression.
+
FIXED: use strerror instead of sys_errlist.
+
FIXED: make system more resilient to small ints.
+
FIXED: system should be more resilient when allocating large chunks of memory.
+
FIXED: X is cputime should have no rounding problems.
+
FIXED: silently fail on wrong array accesses.
+
FIXED: true was not seen as built-in.
+
FIXED: DEPTH was not always saved correctly in execute_prolog.
+
-
Yap4.1.9:
-
-
FIXED: bug in scanner.
-
FIXED: bug in allocating large chunks of memory under NT,
- and change to allow YAP to at least run under WIN95/98
- (memory allocation and timing are not working yet for WIN98).
-
+
Yap4.1.9:
+
+
FIXED: bug in scanner.
+
FIXED: bug in allocating large chunks of memory under NT, and change to allow YAP to at least run under WIN95/98 (memory allocation and timing are not working yet for WIN98).
+
-
Yap4.1.8:
-
-
FIXED: random would only work in Linux.
-
FIXED: better names for array_element/3 and update_array/3.
-
FIXED: array access now does boundary checking, and fails
- if you try to access an undefined reference.
-
NEW: profiling now counts calls to non-profiled
- predicates, included system built-ins.
-
FIXED: profiling now does not need to disable indexing.
-
FIXED: predicate_property was returning just the name for
- unbound calls.
-
NEW: putenv/2. If you want to start shell scripts.
-
NEW: YAP now supports 8 bits char sets. The default is iso-latin.
-
NEW: call_residue/2 now available.
-
FIXED: serious bug in can_unify: HB was not set to
- H. Should be no problem with B.
-
FIXED: trim_trail is not compatible with Multi-Assignment
- variables.
-
FIXED: under a few cases code could have problems if some
- was using a dynamic clause and retracted it.
-
NEW: improve absmi for coroutining.
-
FIXED: bug in statistics(runtime,T).
-
NEW: statics(walltime,T) and internal walltime() function
-
FIXED: changed code that assumed dir_separator could only
- be a single character. Some MS-DOS systems accept both slash
- and backslash.
-
FIXED: for compatibility with other Prologs, YAP now
- changes directory to the directory
- containing the file it is consulting. Don't need to create an
- init.yap any longer.
-
NEW: getcwd/1.
-
FIXED: disallow integer as argument to cd/1 and friends.
-
FIXED: rand should depend on MAX_RAND; document srandom.
-
NEW: environ now allows access to a process' environment.
-
+
Yap4.1.8:
+
+
FIXED: random would only work in Linux.
+
FIXED: better names for array_element/3 and update_array/3.
+
FIXED: array access now does boundary checking, and fails if you try to access an undefined reference.
+
NEW: profiling now counts calls to non-profiled predicates, included system built-ins.
+
FIXED: profiling now does not need to disable indexing.
+
FIXED: predicate_property was returning just the name for unbound calls.
+
NEW: putenv/2. If you want to start shell scripts.
+
NEW: YAP now supports 8 bits char sets. The default is iso-latin.
+
NEW: call_residue/2 now available.
+
FIXED: serious bug in can_unify: HB was not set to H. Should be no problem with B.
+
FIXED: trim_trail is not compatible with Multi-Assignment variables.
+
FIXED: under a few cases code could have problems if some was using a dynamic clause and retracted it.
+
NEW: improve absmi for coroutining.
+
FIXED: bug in statistics(runtime,T).
+
NEW: statics(walltime,T) and internal walltime() function.
+
FIXED: changed code that assumed dir_separator could only be a single character. Some MS-DOS systems accept both slash and backslash.
+
FIXED: for compatibility with other Prologs, YAP now changes directory to the directory containing the file it is consulting. Don't need to create an init.yap any longer.
+
NEW: getcwd/1.
+
FIXED: disallow integer as argument to cd/1 and friends.
+
FIXED: rand should depend on MAX_RAND; document srandom.
+
NEW: environ now allows access to a process' environment.
+
-
Yap4.1.7:
-
-
FIXED: bug in read_term/singletons. I incorrectly assumed
- variables were being allocated in order.
-
FIXED: too much space was being allocated for 64 bit
- architectures.
-
FIXED: error handling in data base could collapse.
-
FIXED: ASP for growheap could be wrong.
-
FIXED: growheap and growstack forgot about dangling
- pointers in the trail.
-
FIXED: increase margins as garbage collections happens.
-
FIXED: make recorded and friends restartable for the
- case there is no space left to copy the new term.
-
FIXED: make memory allocation routine more generic, try
- to use temporary files when /dev/zero is not available,
- control whether we are fetching the right addresses, and
- close open mmaped stream.
-
FIXED: make sure we always have an error handler in the
- debugger.
-
FIXED: GC should now work with named dynamic arrays and
- array extensions. Access to named dynamic arrays now goes
- through the trail.
-
FIXED: make arg/3 silently fail on negative or 0 first
- arguments. Breaks the ISO standard, but seems to be compatible
- with other Prologs.
-
FIXED: dequeue could leave dangling pointers to the data-base.
-
FIXED: bad error handling in arithmetic built-ins.
-
FIXED: absolute_file_name/2 was buggy.
-
NEW: extend C-interface to allow calling back Prolog.
-
FIXED: moved to version 98.
-
FIXED: variable ppc was causing trouble with Rhapsody.
-
FIXED: GC should now work with coroutining.
-
FIXED: coroutining had bug with reference chains.
-
FIXED: error handler called unexisting procedure $close/2.
-
FIXED: small bug in unknown/2.
-
CLEANUP: improve meta-call performance by avoiding
- unnecessary choice-points.
-
FIXED: assert and source mode are now aware that modules
- call meta-calls.
-
FIXED: libraries should be checked for existence before
- checking for the files themselves.
-
NEW: dynamic loader now works in Linux/Alpha and in
- Digital Unix/Alpha! Fixed bugs where YAP would corrupt global
- variables allocated by external functions.
-
FIXED: BP_FREE didn't do callee save for PREG, possibly
- corrupting the caller. Core dumped print/1 on X86.
-
CLEANUP: separate error handling into separate files.
-
FIXED: RATIONAL_TREES should now work in all built-ins.
-
FIXED: make sure the GC does not follow invalid trail
- entries.
-
+
Yap4.1.7:
+
+
FIXED: bug in read_term/singletons. I incorrectly assumed variables were being allocated in order.
+
FIXED: too much space was being allocated for 64 bit architectures.
+
FIXED: error handling in data base could collapse.
+
FIXED: ASP for growheap could be wrong.
+
FIXED: growheap and growstack forgot about dangling pointers in the trail.
+
FIXED: increase margins as garbage collections happens.
+
FIXED: make recorded and friends restartable for the case there is no space left to copy the new term.
+
FIXED: make memory allocation routine more generic, try to use temporary files when /dev/zero is not available, control whether we are fetching the right addresses, and close open mmaped stream.
+
FIXED: make sure we always have an error handler in the debugger.
+
FIXED: GC should now work with named dynamic arrays and array extensions. Access to named dynamic arrays now goes through the trail.
+
FIXED: make arg/3 silently fail on negative or 0 first arguments. Breaks the ISO standard, but seems to be compatible with other Prologs.
+
FIXED: dequeue could leave dangling pointers to the data-base.
+
FIXED: bad error handling in arithmetic built-ins.
+
FIXED: absolute_file_name/2 was buggy.
+
NEW: extend C-interface to allow calling back Prolog.
+
FIXED: moved to version 98.
+
FIXED: variable ppc was causing trouble with Rhapsody.
+
FIXED: GC should now work with coroutining.
+
FIXED: coroutining had bug with reference chains.
+
FIXED: error handler called unexisting procedure $close/2.
+
FIXED: small bug in unknown/2.
+
CLEANUP: improve meta-call performance by avoiding unnecessary choice-points.
+
FIXED: assert and source mode are now aware that modules call meta-calls.
+
FIXED: libraries should be checked for existence before checking for the files themselves.
+
NEW: dynamic loader now works in Linux/Alpha and in Digital Unix/Alpha! Fixed bugs where YAP would corrupt global variables allocated by external functions.
+
FIXED: BP_FREE didn't do callee save for PREG, possibly corrupting the caller. Core dumped print/1 on X86.
+
CLEANUP: separate error handling into separate files.
+
FIXED: RATIONAL_TREES should now work in all built-ins.
+
FIXED: make sure the GC does not follow invalid trail entries.
+
-
Yap4.1.6:
-
-
NEW: execute_goal(Goal) function allows calling
- Prolog from C. Still under testing, and not yet officially in
- the interface. Note that execute_goal will destroy all X
- arguments, and that it only keeps the first solution (it
- performs an implicit cut).
-
FIXED: complaints while compiling YAP in WIN/NT platform.
-
FIXED: debugger got confused when quasi-skipping through
- inline builtins
-
FIXED: DEPTH_BOUND_CALL was not restoring depth for retry_c.
-
NEW: compilation flag LOW_LEVEL_TRACER, if this flag is
- defined, enables detailing execution. Use
- start_low_level_trace and stop_level_trace, or T from
- interrupt to access this functionality.
-
CLEANUP: overflows are now processed within the
- emulator, not back in the caller.
-
FIXED: memory allocation during boot could crash returning NULL
- pointer, system would then crash.
-
ISO-YAP: many new predicates, major rewrite of manual.
-
FIXED: debugger should now understand better immediate
- update semantics (eg, dynamic predicates).
-
ISO-YAP: all error handling is now ISO style.
-
FIXED: could not write MIN_INT
-
ISO-YAP: add Z is float_integer_part(X).
-
ISO-YAP: add Z is float_fractional_part(X).
-
ISO-YAP: arg/3 now generates errors.
-
ISO-YAP: abolish/1 now does errors the YAP way, and
- only abolishes dynamic procedures. Use abolish/2 to clear
- static procedures.
-
break boot.yap file into smaller files.
-
YAP now compiles well under Linux/Alpha.
-
X now is called XREGS to avoid problems with Linux/Alpha
- includes.
-
Abort now jumps to before the absmi emulator and then
- does a long cut. This should simplify YapOr, and allow for
- restricting toplevels.
-
+
Yap4.1.6:
+
+
NEW: execute_goal(Goal) function allows calling Prolog from C. Still under testing, and not yet officially in the interface. Note that execute_goal will destroy all X arguments, and that it only keeps the first solution (it performs an implicit cut).
+
FIXED: complaints while compiling YAP in WIN/NT platform.
+
FIXED: debugger got confused when quasi-skipping through inline builtins.
+
FIXED: DEPTH_BOUND_CALL was not restoring depth for retry_c.
+
NEW: compilation flag LOW_LEVEL_TRACER, if this flag is defined, enables detailing execution. Use start_low_level_trace and stop_level_trace, or T from interrupt to access this functionality.
+
CLEANUP: overflows are now processed within the emulator, not back in the caller.
+
FIXED: memory allocation during boot could crash returning NULL pointer, system would then crash.
+
ISO-YAP: many new predicates, major rewrite of manual.
+
FIXED: debugger should now understand better immediate update semantics (eg, dynamic predicates).
+
ISO-YAP: all error handling is now ISO style.
+
FIXED: could not write MIN_INT.
+
ISO-YAP: add Z is float_integer_part(X).
+
ISO-YAP: add Z is float_fractional_part(X).
+
ISO-YAP: arg/3 now generates errors.
+
ISO-YAP: abolish/1 now does errors the YAP way, and only abolishes dynamic procedures. Use abolish/2 to clear static procedures.
+
Break boot.yap file into smaller files.
+
YAP now compiles well under Linux/Alpha.
+
X now is called XREGS to avoid problems with Linux/Alpha includes.
+
Abort now jumps to before the absmi emulator and then does a long cut. This should simplify YapOr, and allow for restricting toplevels.
+
-
Yap4.1.5:
-
-
FIXED: MAX_INT on Tags_LowTag was wrong.
-
NEW: first cut of profiling. Right now, Currently, for
- static predicates, profiling disables indexing. That should be
- fixed in the next version.
-
NEW: source mode debugging is active. Compile with ":-
- source" and debug/step through all your builtins!
-
FIXED: major bug in cut_by, since early 4.1 :-(. Affects
- debugging.
-
NEW: fetch first op from pred before jumping.
-
NEW: use SREG to cache A1 for switches and tries.
-
FIXED: warning messages for SGI CC.
-
FIXED: warning messages for alphas.
-
NEW: optimise switch_on_list for the list case.
-
NEW: WAM registers optimised for MIPS.
-
FIXED: shadow CP and HB on sparcs. They need every bit of
- performance we can get them.
-
FIXED: famous curprio bug in parser, from now on parser
- backtracks cleanly.
-
NEW: Got rid of SREG for call-type instructions.
-
NEW: CPREG in absmi for Suns.
-
CLEANUP: got rid of obsolete absmi regs.
-
FIXED: small bug in the Prolog code for unknown/2.
-
NEW: Small speed improvements for complex absmi
- instructions.
-
+
Yap4.1.5:
+
+
FIXED: MAX_INT on Tags_LowTag was wrong.
+
NEW: first cut of profiling. Right now, Currently, for static predicates, profiling disables indexing. That should be fixed in the next version.
+
NEW: source mode debugging is active. Compile with ":- source" and debug/step through all your builtins!
+
FIXED: major bug in cut_by, since early 4.1 :-(. Affects debugging.
+
NEW: fetch first op from pred before jumping.
+
NEW: use SREG to cache A1 for switches and tries.
+
FIXED: warning messages for SGI CC.
+
FIXED: warning messages for alphas.
+
NEW: optimise switch_on_list for the list case.
+
NEW: WAM registers optimised for MIPS.
+
FIXED: shadow CP and HB on sparcs. They need every bit of performance we can get them.
+
FIXED: famous curprio bug in parser, from now on parser backtracks cleanly.
+
NEW: Got rid of SREG for call-type instructions.
+
NEW: CPREG in absmi for Suns.
+
CLEANUP: got rid of obsolete absmi regs.
+
FIXED: small bug in the Prolog code for unknown/2.
+
NEW: Small speed improvements for complex absmi instructions.
+
-
Yap4.1.4:
-
-
NEW: read_term/3 and new syntax_error option to yap_flag.
-
FIXED: got rid of fast predicates from compiler.
-
NEW: Makefile now generates a bootable save state as YAP
- default.
-
NEW: started working on manual for 4.1. Fixed info format
- so that it will generate info files. Add several missing
- built-ins to manual.
-
NEW: bootable saved states with arguments, accessible
- though unix(argv(L))).
-
NEW: optimised code for tests (var/1 and friends) and
- arithmetic (is/2).
-
NEW: much faster code for /\, \/, >> and <<.
-
FIXED: debugger does not go into recorded/3 and friends.
-
+
Yap4.1.4:
+
+
NEW: read_term/3 and new syntax_error option to yap_flag.
+
FIXED: got rid of fast predicates from compiler.
+
NEW: Makefile now generates a bootable save state as YAP default.
+
NEW: started working on manual for 4.1. Fixed info format so that it will generate info files. Add several missing built-ins to manual.
+
NEW: bootable saved states with arguments, accessible though unix(argv(L)).
+
NEW: optimised code for tests (var/1 and friends) and arithmetic (is/2).
+
NEW: much faster code for /\, \/, >> and <<.
+
FIXED: debugger does not go into recorded/3 and friends.
+
-
Yap4.1.3:
-
-
NEW: unix(argv(X)).
-
FIXED: abs complains if int != Int.
-
+
Yap4.1.3:
+
+
NEW: unix(argv(X)).
+
FIXED: abs complains if int != Int.
+
-
Yap4.1.2:
-
-
NEW: saved states now search for $BINDIR/yap.exe to boot.
-
FIXED: bugs with handling errors.
-
FIXED: got rid of $recorded/3 for now.
-
NEW: generate specialised code for OR, AND, SHIFT LEFT
- and SHIFT RIGHT.
-
FIXED: statistics(runtime,_) now does not count GC time,
- as in other Prologs. statistics(cputime,_) counts everything.
-
FIXED: time is returned as an integer, not as a float.
-
+
Yap4.1.2:
+
+
NEW: saved states now search for $BINDIR/yap.exe to boot.
+
FIXED: bugs with handling errors.
+
FIXED: got rid of $recorded/3 for now.
+
NEW: generate specialised code for OR, AND, SHIFT LEFT, and SHIFT RIGHT.
+
FIXED: statistics(runtime,_) now does not count GC time, as in other Prologs. statistics(cputime,_) counts everything.
+
FIXED: time is returned as an integer, not as a float.
+
-
Yap4.1.1:
-
-
CLEANUP: get rid of warnings under Cygnus GCC.
-
FIXED: Use Windows memory allocation routine, now YAP can
- recover from saved states for smaller stacks.
-
CLEANUP: don't use the UNIX define. Use instead configure
- to say exactly which UNIX feature you need.
-
FIXED: compiler would not handle correctly unsafe
- variable from disjunctions.
-
FIXED: force indexing to ask for more stack if stack runs
- out. This should help if you have really many clauses.
-
CLEANUP: clean all error code from C to use the new
- Error() routine.
-
NEW: use throw/1 to send system errors.
-
NEW: catch/3 and throw/1
-
NEW: load_foreign_file/3 for SunOS4 (tested) and AIX
- (compiles).
-
+
Yap4.1.1:
+
+
CLEANUP: get rid of warnings under Cygnus GCC.
+
FIXED: Use Windows memory allocation routine, now YAP can recover from saved states for smaller stacks.
+
CLEANUP: don't use the UNIX define. Use instead configure to say exactly which UNIX feature you need.
+
FIXED: compiler would not handle correctly unsafe variable from disjunctions.
+
FIXED: force indexing to ask for more stack if stack runs out. This should help if you have really many clauses.
+
CLEANUP: clean all error code from C to use the new Error() routine.
+
NEW: use throw/1 to send system errors.
+
NEW: catch/3 and throw/1.
+
NEW: load_foreign_file/3 for SunOS4 (tested) and AIX (compiles).
+
-
Yap4.1.0:
-
-
NEW: memory mapped arrays.
-
NEW: make garbage collector expand stack quickly to avoid
- excessive number of GCs.
-
NEW: do the same for heap overflow detector.
-
CLEANUP: cleanup readline code for not using strcpy, strlen and
- friends. Current code was broken for very large input strings.
-
NEW: sort and friends implemented in C.
-
NEW: Removed 256B limitation on atom size while parsing.
-
CLEANUP: Change AllocCodeSpace to return NULL on code failure,
- make cclause() call growstack on stack failure.
-
NEW: Static Arrays!
-
Split previous support for arrays and co-routines. We now have
- TERM_EXTENSIONS to control extensions to unification. Tried
- to redesign the extensions so that they would be modular,
- the file TermExt.h.m4 shows how to implement an extension.
-
Got rid of lock_pred and friends. Usage of static predicates is
- now detected when compilation starts, or when assert
- is used.
-
Got rid of hash table in optimise_ce, it wasn't working.
-
Current predicate access:
- add new argument to call, so that call can recognise which
- predicate it is working on.
- add extra argument to try and frieds, so that they can
- directly access a predicate.
-
Internal cleanup
- Change cdmgr.c and friends so that we now move in a clause
- through the Clause structure. Get rid of ptrs, except for
- save.c.
-
Changes to immediate update semantics implementation:
-
-
Entries are now removed from the chain immediately,
- instead of only when they are physically deleted.
-
Each entry has an age (positive if entry is from recordz,
- negative if from recorda).
-
When we backtrack to deleted entries, we search the property
- list for entries with younger ages.
-
When we erase a clause, we don't place a fail in
- the clause. Instead, we remove the clause from the
- chain immediately.
-
-
NEW:
- MIPS architecture support in Regs.h and absmi.c.
-
X86 Speedups:
-
-
Force opcode prefetching for simple instructions in X86
-
Cache Y for control instructions in X86
-
Optimise Bind() for X86 by jumping only if we need to
- trail for cases close to the end of the instruction. This
- does not seem to improve performance for X86 machines.
-
Cache SREG usage.
-
-
Cleanup:
- Move AuxSp and AuxTop to REGS
- Use Aux for emulator PDL
-
Cleanup: compiler.h
- Use enum for compiler ops.
-
NEW: Indexing
-
-
simplify GC and ORP: instructions do not store
- intermediate values in global;
-
unnecessary instructions purged;
-
new try_tail like trail_head, but jumps to atomic code
-
switch on types insts after backtracking now look
- like retry and have correct clause information for ORP;
-
switch_on_type talks to switch_on_func through S, and to
- switch on cons through A[0]. I_R disappeared.
-
-
+
Yap4.1.0:
+
+
NEW: memory mapped arrays.
+
NEW: make garbage collector expand stack quickly to avoid excessive number of GCs.
+
NEW: do the same for heap overflow detector.
+
CLEANUP: cleanup readline code for not using strcpy, strlen and friends. Current code was broken for very large input strings.
+
NEW: sort and friends implemented in C.
+
NEW: Removed 256B limitation on atom size while parsing.
+
CLEANUP: Change AllocCodeSpace to return NULL on code failure, make cclause() call growstack on stack failure.
+
NEW: Static Arrays!
+
Split previous support for arrays and co-routines. We now have TERM_EXTENSIONS to control extensions to unification. Tried to redesign the extensions so that they would be modular, the file TermExt.h.m4 shows how to implement an extension.
+
Got rid of lock_pred and friends. Usage of static predicates is now detected when compilation starts, or when assert is used.
+
Got rid of hash table in optimise_ce, it wasn't working.
+
Current predicate access:
+
+
add new argument to call, so that call can recognise which predicate it is working on.
+
add extra argument to try and frieds, so that they can directly access a predicate.
+
+
Internal cleanup: change cdmgr.c and friends so that we now move in a clause through the Clause structure. Get rid of ptrs, except for save.c.
+
Changes to immediate update semantics implementation:
+
+
Entries are now removed from the chain immediately, instead of only when they are physically deleted.
+
Each entry has an age (positive if entry is from recordz, negative if from recorda).
+
When we backtrack to deleted entries, we search the property list for entries with younger ages.
+
When we erase a clause, we don't place a fail in the clause. Instead, we remove the clause from the chain immediately.
+
+
NEW: MIPS architecture support in Regs.h and absmi.c.
+
X86 Speedups:
+
+
Force opcode prefetching for simple instructions in X86.
+
Cache Y for control instructions in X86.
+
Optimise Bind() for X86 by jumping only if we need to trail for cases close to the end of the instruction. This does not seem to improve performance for X86 machines.
+
Cache SREG usage.
+
+
Cleanup:
+
+
Move AuxSp and AuxTop to REGS.
+
Use Aux for emulator PDL.
+
+
Cleanup: compiler.h. Use enum for compiler ops.
+
NEW: Indexing:
+
+
simplify GC and ORP: instructions do not store intermediate values in global.
+
unnecessary instructions purged.
+
new try_tail like trail_head, but jumps to atomic code.
+
switch on types insts after backtracking now look like retry and have correct clause information for ORP.
+
switch_on_type talks to switch_on_func through S, and to switch on cons through A[0]. I_R disappeared.
+
+
+
+
+
+
+
+
diff --git a/config.h.in b/config.h.in
index de4abecc0..c7055cce2 100644
--- a/config.h.in
+++ b/config.h.in
@@ -26,10 +26,12 @@
#undef HAVE_ARPA_INET_H
#undef HAVE_CTYPE_H
#undef HAVE_DIRECT_H
+#undef HAVE_DIRENT_H
#undef HAVE_ERRNO_H
#undef HAVE_FCNTL_H
#undef HAVE_FENV_H
#undef HAVE_FPU_CONTROL_H
+#undef HAVE_GMP_H
#undef HAVE_IEEEFP_H
#undef HAVE_LIMITS_H
#undef HAVE_MEMORY_H
@@ -37,6 +39,7 @@
#undef HAVE_NETINET_IN_H
#undef HAVE_REGEX_H
#undef HAVE_SIGINFO_H
+#undef HAVE_SIGNAL_H
#undef HAVE_STDARG_H
#undef HAVE_STRING_H
#undef HAVE_SYS_FILE_H
@@ -56,7 +59,6 @@
#undef HAVE_UNISTD_H
#undef HAVE_WINSOCK_H
#undef HAVE_WINSOCK2_H
-#undef HAVE_GMP_H
/* Do we have restartable syscalls */
#undef HAVE_RESTARTABLE_SYSCALLS
@@ -101,6 +103,9 @@
#undef HAVE_DUP2
#undef HAVE_FETESTEXCEPT
#undef HAVE_FINITE
+#undef HAVE_GETHOSTBYNAME
+#undef HAVE_GETHOSTID
+#undef HAVE_GETHOSTNAME
#undef HAVE_GETRUSAGE
#undef HAVE_GETCWD
#undef HAVE_GETENV
@@ -110,15 +115,22 @@
#undef HAVE_GETWD
#undef HAVE_ISATTY
#undef HAVE_ISNAN
+#undef HAVE_KILL
#undef HAVE_LABS
#undef HAVE_LINK
+#undef HAVE_LOCALTIME
+#undef HAVE_LSTAT
#undef HAVE_MMAP
#undef HAVE_MEMCPY
#undef HAVE_MEMMOVE
#undef HAVE_MKSTEMP
+#undef HAVE_MKTEMP
+#undef HAVE_OPENDIR
+#undef HAVE_POPEN
#undef HAVE_PUTENV
#undef HAVE_RAND
#undef HAVE_RANDOM
+#undef HAVE_RENAME
#undef HAVE_RINT
#undef HAVE_SBRK
#undef HAVE_STAT
@@ -132,6 +144,7 @@
#undef HAVE_SIGPROCMASK
#undef HAVE_SIGSEGV
#undef HAVE_SIGSETJMP
+#undef HAVE_SLEEP
#undef HAVE_SNPRINTF
#undef HAVE_SOCKET
#undef HAVE_STRERROR
@@ -140,9 +153,12 @@
#undef HAVE_STRCHR
#undef HAVE_STRTOD
#undef HAVE_SYSTEM
+#undef HAVE_TIME
#undef HAVE_TIMES
#undef HAVE_TMPNAM
+#undef HAVE_USLEEP
#undef HAVE_VSNPRINTF
+#undef HAVE_WAITPID
#undef HAVE_ENVIRON
#undef HAVE_MPZ_XOR
diff --git a/configure b/configure
index 28b9eb9da..7ec4b9aee 100755
--- a/configure
+++ b/configure
@@ -2461,7 +2461,7 @@ else
fi
done
-for ac_hdr in sys/select.h direct.h
+for ac_hdr in sys/select.h direct.h dirent.h signal.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
@@ -3612,7 +3612,7 @@ else
fi
done
-for ac_func in setlinebuf
+for ac_func in setlinebuf lstat opendir localtime time gethostname
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3619: checking for $ac_func" >&5
@@ -3667,15 +3667,125 @@ else
fi
done
+for ac_func in gethostid gethostbyname kill mktemp popen rename waitpid
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3674: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <&6
+fi
+done
+
+for ac_func in sleep usleep
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3729: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <&6
+fi
+done
+
echo $ac_n "checking for mpz_xor""... $ac_c" 1>&6
-echo "configure:3673: checking for mpz_xor" >&5
+echo "configure:3783: checking for mpz_xor" >&5
if eval "test \"`echo '$''{'yap_mpz_xor'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
void check(mpz_t rop,mpz_t op1,mpz_t op2) {
@@ -3686,7 +3796,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
yap_mpz_xor=yes
else
@@ -3713,6 +3823,7 @@ EOF
fi
mkdir -p library/regex
+mkdir -p library/system
trap '' 1 2 15
cat > confcache <<\EOF
@@ -3815,7 +3926,7 @@ done
ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
-trap 'rm -fr `echo "Makefile library/regex/Makefile .depend config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "Makefile library/regex/Makefile library/system/Makefile .depend config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
diff --git a/configure.in b/configure.in
index 2f56e250e..f019bb4fb 100644
--- a/configure.in
+++ b/configure.in
@@ -395,7 +395,7 @@ AC_CHECK_HEADERS(sys/param.h errno.h netdb.h netinet/in.h arpa/inet.h)
AC_CHECK_HEADERS(string.h memory.h sys/mman.h sys/stat.h stdarg.h ctype.h)
AC_CHECK_HEADERS(sys/resource.h limits.h siginfo.h time.h fenv.h)
AC_CHECK_HEADERS(fpu_control.h sys/shm.h regex.h winsock.h winsock2.h)
-AC_CHECK_HEADERS(sys/select.h direct.h)
+AC_CHECK_HEADERS(sys/select.h direct.h dirent.h signal.h)
if test "$yap_cv_gmp" != "no"
then
AC_CHECK_HEADERS(gmp.h)
@@ -567,7 +567,9 @@ AC_CHECK_FUNCS(snprintf vsnprintf setbuf system link getpwnam dup2 sigprocmask)
AC_CHECK_FUNCS(labs strncat tmpnam getenv gettimeofday gethrtime putenv)
AC_CHECK_FUNCS(strerror socket memmove alarm asinh acosh atanh rint)
AC_CHECK_FUNCS(stat select fetestexcept finite strncpy mkstemp isnan)
-AC_CHECK_FUNCS(setlinebuf)
+AC_CHECK_FUNCS(setlinebuf lstat opendir localtime time gethostname)
+AC_CHECK_FUNCS(gethostid gethostbyname kill mktemp popen rename waitpid)
+AC_CHECK_FUNCS(sleep usleep)
dnl check for mpz_xor
AC_MSG_CHECKING(for mpz_xor)
@@ -589,8 +591,9 @@ AC_DEFINE(HAVE_MPZ_XOR,0)
fi
mkdir -p library/regex
+mkdir -p library/system
-AC_OUTPUT(Makefile library/regex/Makefile .depend)
+AC_OUTPUT(Makefile library/regex/Makefile library/system/Makefile .depend)
make depend
diff --git a/docs/yap.tex b/docs/yap.tex
index d5047b9b3..35838491a 100644
--- a/docs/yap.tex
+++ b/docs/yap.tex
@@ -3250,7 +3250,8 @@ YAP currently ignores these options.
@cnindex current_stream/3
Defines the relation: The stream @var{S} is opened on the file @var{F} in
mode @var{M}. It might be used to obtain all open streams (by
-backtracking) or to access the stream for a file @var{F} in mode @var{M}.
+backtracking), to access the stream for a file @var{F} in mode @var{M},
+or to find properties for a stream @var{S}.
@item flush_output [ISO]
@findex flush_output/0
@@ -11521,7 +11522,7 @@ void init_my_predicates()
The commands to compile the above file depend on the operating
system. Under Linux (i386 and Alpha) you should use:
@example
- gcc -c -shared -fPIC my_process.c -o my_process.o
+ gcc -c -shared -fPIC my_process.c
ld -shared -o my_process.so my_process.o
@end example
@noindent
diff --git a/include/c_interface.h b/include/c_interface.h
index ed6edd57d..260922627 100644
--- a/include/c_interface.h
+++ b/include/c_interface.h
@@ -504,6 +504,24 @@ static void (YapIStringToBuffer)() = YapStringToBuffer;
#define StringToBuffer(T,BUF,SIZE) YapStringToBuffer(T,BUF,SIZE)
#endif
+/* int BufferToString(char *) */
+extern X_API Term PROTO(YapBufferToString,(char *));
+#ifdef IndirectCalls
+static void (YapIBufferToString)() = YapBufferToString;
+#define BufferToString(BUF) (*YapIBufferToString)(BUF)
+#else
+#define BufferToString(BUF) YapBufferToString(BUF)
+#endif
+
+/* int BufferToAtomList(char *) */
+extern X_API Term PROTO(YapBufferToAtomList,(char *));
+#ifdef IndirectCalls
+static void (YapIBufferToAtomList)() = YapBufferToAtomList;
+#define BufferToAtomList(BUF) (*YapIBufferToAtomList)(BUF)
+#else
+#define BufferToAtomList(BUF) YapBufferToAtomList(BUF)
+#endif
+
/* void YapInitSocks(char *,long) */
extern X_API int PROTO(YapInitSocks,(char *,long));
#ifdef IndirectCalls
@@ -534,6 +552,36 @@ static void (*YapISetOutputMessage)() = YapSetOutputMessage;
#define YapSetOutputMessage() (*YapISetOutputMessage)()
#endif
+/* Term YapSetOutputMessage() */
+extern X_API int PROTO(YapStreamToFileNo,(Term));
+#ifdef IndirectCalls
+static void (*YapIStreamToFileNo)() = YapStreamToFileNo;
+#define YapStreamToFileNo() (*YapIStreamToFileNo)()
+#endif
+
+/* Term YapSetOutputMessage() */
+extern X_API void PROTO(YapCloseAllOpenStreams,(void));
+#ifdef IndirectCalls
+static void (*YapICloseAllOpenStreams)() = YapCloseAllOpenStreams;
+#define YapCloseAllOpenStreams() (*YapICloseAllOpenStreams)()
+#endif
+
+#define YAP_INPUT_STREAM 0x01
+#define YAP_OUTPUT_STREAM 0x02
+#define YAP_APPEND_STREAM 0x04
+#define YAP_PIPE_STREAM 0x08
+#define YAP_TTY_STREAM 0x10
+#define YAP_POPEN_STREAM 0x20
+#define YAP_BINARY_STREAM 0x40
+#define YAP_SEEKABLE_STREAM 0x80
+
+/* Term YapP() */
+extern X_API Term PROTO(YapOpenStream,(void *, char *, Term, int));
+#ifdef IndirectCalls
+static Term (*YapIOpenStream)() = YapOpenStream;
+#define YapOpenStream(FD,S,T,FL) (*YapIOpenStream)(FD,S,T,FL)
+#endif
+
#define InitCPred(N,A,F) UserCPredicate(N,F,A)
diff --git a/misc/yap.def b/misc/yap.def
index a87d9b114..e927d8e16 100644
--- a/misc/yap.def
+++ b/misc/yap.def
@@ -42,6 +42,8 @@ Yapcut_succeed
YapAllocSpaceFromYap
YapFreeSpaceFromYap
YapStringToBuffer
+YapBufferToString
+YapBufferToAtomList
YapError
YapRunGoal
YapContinueGoal
@@ -58,4 +60,6 @@ YapSetOutputMessage
YapWrite
YapInitConsult
YapEndConsult
-
+YapStreamToFileNo
+YapCloseAllOpenStreams
+YapOpenStream
diff --git a/pl/arith.yap b/pl/arith.yap
index 6b947e16e..e061a074a 100644
--- a/pl/arith.yap
+++ b/pl/arith.yap
@@ -36,6 +36,11 @@ do_not_compile_expressions :- '$set_value'('$c_arith',[]).
'$c_built_in'(IN, IN).
+'$do_c_built_in'(\+ G, OUT) :-
+ nonvar(G),
+ G = (A = B),
+ !,
+ OUT = (A \= B).
'$do_c_built_in'(recorded(K,T,R), OUT) :-
nonvar(K),
!,
diff --git a/pl/boot.yap b/pl/boot.yap
index a7b7d6f6e..49949fd9f 100644
--- a/pl/boot.yap
+++ b/pl/boot.yap
@@ -116,7 +116,8 @@ set_output(Stream) :-
8 use portray(_)
*/
-write(T) :- current_output(S), '$write'(S,4,T).
+write(T) :- current_output(S), '$write'(S,4,T), fail.
+write(_).
write(Stream,T) :-
'$write'(Stream,4,T),
@@ -127,7 +128,8 @@ put(Stream,N) :- N1 is N, '$put'(Stream,N1).
nl(Stream) :- '$put'(Stream,10).
-nl :- current_output(Stream), '$put'(Stream,10).
+nl :- current_output(Stream), '$put'(Stream,10), fail.
+nl.
/* main execution loop */
'$read_vars'(Stream,T,V) :-
@@ -1049,7 +1051,7 @@ add_to_path(New) :- add_to_path(New,last).
add_to_path(New,Pos) :- '$check_path'(New,Str), '$add_to_path'(Str,Pos).
'$add_to_path'(New,_) :- '$recorded'('$path',New,R), erase(R), fail.
-'$add_to_path'(New,last) :- '$recordz'('$path',New,_).
+'$add_to_path'(New,last) :- !, '$recordz'('$path',New,_).
'$add_to_path'(New,first) :- '$recorda'('$path',New,_).
remove_from_path(New) :- '$check_path'(New,Path),
diff --git a/pl/errors.yap b/pl/errors.yap
index 0b840e629..4ec5548cf 100644
--- a/pl/errors.yap
+++ b/pl/errors.yap
@@ -101,6 +101,9 @@ print_message(help,M) :-
'$output_error_message'(domain_error(character_code_list,Opt), Where) :-
format(user_error,"[ DOMAIN ERROR- ~w: invalid list of codes ~w ]~n",
[Where,Opt]).
+'$output_error_message'(domain_error(delete_file_option,Opt), Where) :-
+ format(user_error,"[ DOMAIN ERROR- ~w: invalid list of options ~w ]~n",
+ [Where,Opt]).
'$output_error_message'(domain_error(operator_specifier,Op), Where) :-
format(user_error,"[ DOMAIN ERROR- ~w: invalid operator specifier ~w ]~n",
[Where,Op]).
@@ -284,6 +287,9 @@ print_message(help,M) :-
'$output_error_message'(system_error, Where) :-
format(user_error,"[ SYSTEM ERROR- ~w ]~n",
[Where]).
+'$output_error_message'(system_error(Message), Where) :-
+ format(user_error,"[ SYSTEM ERROR- ~w at ~w]~n",
+ [Message,Where]).
'$output_error_message'(type_error(T,_,Err,M), Where) :-
format(user_error,"[ TYPE ERROR- ~w: expected ~w, got ~w ]~n",
[T,Err,M]).
diff --git a/pl/preds.yap b/pl/preds.yap
index d017e358b..86fa94e0e 100644
--- a/pl/preds.yap
+++ b/pl/preds.yap
@@ -61,6 +61,7 @@ assert(C) :- '$assert'(C,last,_,assert(C)).
throw(error(permission_error(modify,static_procedure,Na/Ar),P))
).
+
'$assert_dynamic'(V,Where,R,P) :- var(V), !,
'$current_module'(M),
throw(error(instantiation_error,P)).
diff --git a/pl/tabling.yap b/pl/tabling.yap
index 22f6aa2c2..c49599326 100644
--- a/pl/tabling.yap
+++ b/pl/tabling.yap
@@ -51,7 +51,7 @@ show_trie(X) :- var(X), !,
show_trie(A/N) :- integer(N), atom(A), !,
functor(T,A,N), $flags(T,F,F),
(
- X is F /\ 8'000100, X =\= 0, !, $show_trie(T)
+ X is F /\ 8'000100, X =\= 0, !, $show_trie(T,_)
;
write(user_error, '[ Error: '),
write(user_error, A/N),
diff --git a/pl/utils.yap b/pl/utils.yap
index 4f494299d..d3ae190d3 100644
--- a/pl/utils.yap
+++ b/pl/utils.yap
@@ -249,26 +249,6 @@ rename(Old,New) :- atom(Old), atom(New), !,
name(Old,SOld), name(New,SNew),
'$rename'(SOld,SNew).
-environ(Na,Val) :- atom(Na), !,
- '$getenv'(Na,Val).
-environ(Na,Val) :-
- '$environ_enum'(0,I),
- ( '$environ'(I,S) -> '$environ_split'(S,SNa,SVal) ; !, fail ),
- atom_codes(Na, SNa),
- atom_codes(Val, SVal).
-
-'$environ_enum'(X,X).
-'$environ_enum'(X,X1) :-
- Xi is X+1,
- '$environ_enum'(Xi,X1).
-
-'$environ_split'([61|SVal], [], SVal) :- !.
-'$environ_split'([C|S],[C|SNa],SVal) :-
- '$environ_split'(S,SNa,SVal).
-
-putenv(Na,Val) :-
- '$putenv'(Na,Val).
-
unix(V) :- var(V), !,
throw(error(instantiation_error,unix(V))).
unix(argv(L)) :- (var(L) ; atom(L)), !, '$argv'(L).
@@ -280,7 +260,7 @@ unix(cd(V)) :- var(V), !,
unix(cd(A)) :- atomic(A), !, cd(A).
unix(cd(V)) :-
throw(error(type_error(atomic,V),unix(cd(V)))).
-unix(environ(X,Y)) :- environ(X,Y).
+unix(environ(X,Y)) :- do_environ(X,Y).
unix(getcwd(X)) :- getcwd(X).
unix(shell(V)) :- var(V), !,
throw(error(instantiation_error,unix(shell(V)))).
@@ -295,6 +275,11 @@ unix(system(V)) :-
unix(shell) :- sh.
unix(putenv(X,Y)) :- '$putenv'(X,Y).
+putenv(Na,Val) :-
+ '$putenv'(Na,Val).
+
+getenv(Na,Val) :-
+ '$getenv'(Na,Val).
alarm(_, _, _) :-
recorded('$alarm_handler',_, Ref), erase(Ref), fail.
diff --git a/pl/yio.yap b/pl/yio.yap
index 446cf1d40..7ccc39c7b 100644
--- a/pl/yio.yap
+++ b/pl/yio.yap
@@ -236,6 +236,8 @@ open(F,T,S,Opts) :-
open_null_stream(S) :- '$open_null_stream'(S).
+open_pipe_streams(P1,P2) :- '$open_pipe_stream'(P1, P2).
+
fileerrors :- '$set_value'(fileerrors,1).
nofileerrors :- '$set_value'(fileerrors,0).