fix shunting trail entries. git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@26 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
		
			
				
	
	
		
			1687 lines
		
	
	
		
			78 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			1687 lines
		
	
	
		
			78 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<title>Changes up to YAP4.3</title>
 | 
						|
 | 
						|
<BODY BGCOLOR="#FFE4C4">
 | 
						|
 | 
						|
<H1 ALIGN=CENTER>Changes in YAP4.3</H1>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.19:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> FIXED: do not short circuit trail entries.
 | 
						|
      <LI> FIXED: Patches for memory allocation in Apple's OS/X..
 | 
						|
      <LI> FIXED: checked whether mmap work right in alloc.c.
 | 
						|
      <LI> FIXED: ASP from Y should have space for env size.
 | 
						|
      <LI> NEW: new garbage collection algorithm.
 | 
						|
      <LI> FIXED: don't allow importing from the module itself.
 | 
						|
      <LI> FIXED: force line buffering for text stream.
 | 
						|
      <LI> FIXED: force no buffering for user_error.
 | 
						|
      <LI> FIXED: flush all streams before writing answer..
 | 
						|
      <LI> FIXED: YP_std* are now streams, so that yap_flag(user_*)
 | 
						|
      will change them too.
 | 
						|
      <LI> FIXED: nth/3 and nth0/3 would leave one extra choice-point.
 | 
						|
      <LI> FIXED: use Contents instead of Uses to determine live variables.
 | 
						|
      <LI> FIXED: cputime was actually walltime in WIN32, ugh (report
 | 
						|
      from Steve Moyle).
 | 
						|
      <LI> FIXED: regexp library would not compile on recent versions
 | 
						|
      of cygwin.
 | 
						|
      <LI> FIXED: change first two arguments of add_vertices/3 for
 | 
						|
      SICStus compatibility (report from Nicos Angelopoulos).
 | 
						|
      <LI> NEW: sum_list/2 (request from Nicos Angelopoulos).
 | 
						|
      <LI> FIXED: ord_union/2 should not use use merge/3 but instead
 | 
						|
      ord_union/3 (report from Nicos Angelopoulos).
 | 
						|
      <LI> FIXED: statistics/0 should report to user_error (report from Nicos
 | 
						|
      Angelopoulos).
 | 
						|
      <LI> FIXED: database could copy compiled floats,longs, and bigs
 | 
						|
      to Heap, later crashing the garbage collector (report from Nicos
 | 
						|
      Angelopoulos).
 | 
						|
      <LI> NEW: if/3 (request from Nicos Angelopoulos)..
 | 
						|
      <LI> SPEEDUP: inline functor(S) -> Na,Ar.
 | 
						|
      <LI> SPEEDUP: inline functor(Na,Ar) -> S.
 | 
						|
      <LI> FIXED: pillow installation path.
 | 
						|
      <LI> FIXED: allow yap_flag(user_{},V).
 | 
						|
      <LI> FIXED: allow second argument unbound to stream_property/2.
 | 
						|
      <LI> FIXED: alias change had  broke stream_property/2.
 | 
						|
      <LI> FIXED: alias change had broke tell(user) and see(user).
 | 
						|
      <LI> SPEEDUP: inline arg/3.
 | 
						|
      <LI> FIXED: extra clause for module/1.
 | 
						|
      <LI> NEW: module/3: SICStus options plus ciao options.
 | 
						|
      <LI> FIXED: mode/1 should not be defined if we do not know what
 | 
						|
      to do about it.
 | 
						|
      <LI> NEW: prolog_flag(version,X).
 | 
						|
      <LI> FIXED: understand 0'\ escape sequences.
 | 
						|
      <LI> NEW: atom_concat/2 (idea from ciao).
 | 
						|
      <LI> NEW: list_concat/2 in library(lists) (idea from ciao).
 | 
						|
      <LI> NEW: allow profile early reset in garbage collector.
 | 
						|
      <LI> FIXED: call_residue should *unify* back constraints *after*
 | 
						|
      restoring original suspension lists.
 | 
						|
      <LI> FIXED: include Mandrake's $(DESTDIR) patches in Makefiles
 | 
						|
      (by Lenny Cartier).
 | 
						|
      <LI> FIXED: close(user_error) now closes stream currently
 | 
						|
      associated with user_error.
 | 
						|
      <LI> FIXED: open(user_*,X,Y) is not special any longer (SICStus compatibility).
 | 
						|
      <LI> FIXED: prolog_flag({max,min}_integer,X) with GMP.
 | 
						|
      <LI> FIXED: prolog_flag(bounded,false) with GMP.
 | 
						|
      <LI> NEW: prolog_flag(user_{input,output,error},X) (request from
 | 
						|
      Nicos Angelopoulos).
 | 
						|
      <LI> FIXED: allow close(file_alias).
 | 
						|
      <LI> FIXED: user_input, user_output and user_error are now
 | 
						|
      aliases, like all the others.
 | 
						|
      <LI> FIXED: restore YapLibDir.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.18:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> FIXED: alignment bug with walltime in sparc/solaris.
 | 
						|
      <LI> FIXED: shunting in garbage collector.
 | 
						|
      <LI> FIXED: restore arithmetic operators was broken.
 | 
						|
      <LI> FIXED: restore arrays had never been implemented.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.17:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> FIXED: recording floating point numbers was broken (report
 | 
						|
      from Ashwin Srinivasan).
 | 
						|
      <LI> FIXED: restore bitmap Pred pointers from calls.
 | 
						|
      <LI> FIXED: restore masks when adjusting the data base.
 | 
						|
      <LI> FIXED: handle pointers to Heap and Appls to Trail correctly
 | 
						|
      in grow().
 | 
						|
      <LI> FIXED: db terms with variables must be adjusted from correct offset (restore db).
 | 
						|
      <LI> FIXED: atomic terms do not need masks (restore db).
 | 
						|
      <LI> FIXED: complex terms in db may also have variables (restore
 | 
						|
      db).
 | 
						|
      <LI> FIXED: Functors are never offsets (sshift).
 | 
						|
      <LI> FIXED: check for NULL pointers when restoring FreeSpace mm.
 | 
						|
      <LI> FIXED: make gcc -mno-cygwin default in cygwin environment.
 | 
						|
      <LI> FIXED: kill COMPRESS_DB_TERM and use new rational tree
 | 
						|
      scheme for DB instead.
 | 
						|
      <LI> FIXED: use new rational_tree scheme in arrays.c, cmmpreds.c, and corout.c.
 | 
						|
      <LI> FIXED: make variant/2,term_variables/2 and friends use new rational_tree scheme.
 | 
						|
      <LI> FIXED: make copy_term/2 use new rational_tree scheme.
 | 
						|
      <LI> FIXED: don't test for age in unify.c.
 | 
						|
      <LI> NEW: cyclic_term/1 and acyclic_term/1 in terms library.
 | 
						|
      <LI> FIXED: use RATIONAL_TREES scheme to in unify_with_occurs_check/2.
 | 
						|
      <LI> FIXED: unify_with_occurs_check/2.
 | 
						|
      <LI> FIXED: make Yap run under SGI's gcc -mabi=64 (gcc buggy? Needs testing).
 | 
						|
      <LI> FIXED: make Yap run under SGI's cc -64.
 | 
						|
      <LI> FIXED: fix alignment bug for 64bits in AllocCMem.
 | 
						|
      <LI> FIXED: make Yap run under HP-UX's cc.
 | 
						|
      <LI> FIXED: avoid labels before brackets with HP-UX cc.
 | 
						|
      <LI> FIXED: get rid of huge masks in dbase.c
 | 
						|
      <LI> FIXED: make Yap run under SGI's cc.
 | 
						|
      <LI> FIXED: avoid smart comparison in non-GNUCC compilers.
 | 
						|
      <LI> FIXED: get rid of unused variables.
 | 
						|
      <LI> FIXED: get rid of warnings with enum types.
 | 
						|
      <LI> NEW: number_atom/2
 | 
						|
      <LI> FIXED: purge unnecessary unify_lvar X0 with in unify_n_voids_last.
 | 
						|
      <LI> FIXED: make it compile again under cygwin pure.
 | 
						|
      <LI> FIXED: documentation for pillow.
 | 
						|
      <LI> FIXED: use Yap.spec and /usr/share/info for recent rpms.
 | 
						|
      <LI> FIXED: configure would check for limits.h twice.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.16:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> FIXED: handle trail segments when growing heap or local (tabulation).
 | 
						|
      <LI> FIXED: fix backtracking with multi-assignment variables
 | 
						|
      (bug report from Bart Demoen).
 | 
						|
      <LI> FIXED: only insert into relocation chain if heap pointer.
 | 
						|
      <LI> FIXED: handle overflows in substitution stack for tabulation.
 | 
						|
      <LI> FIXED: documentation bug in CHR.
 | 
						|
      <LI> FIXED: how to include opt.mavar.h (bug report from Luis Fernando).
 | 
						|
      <LI> FIXED: trail overflow while doing gc (bug report from GJVanNoord).
 | 
						|
      <LI> FIXED: System would lose [] because the atom looked like
 | 
						|
      NULL (bug report from Rui Camacho).
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.15:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> FIXED: garbage collector now marks all local variables so
 | 
						|
      that we can do early reset on local variables.
 | 
						|
      <LI> FIXED: support second quadrant machines in new scheme for
 | 
						|
      large numbers.
 | 
						|
      <LI> NEW: ord_setproduct/3 in library(ordsets).
 | 
						|
      <LI> NEW: garbage collection for tabled computations.
 | 
						|
      <LI> FIXED: garbage_collect/0 shouldn't affect gc heuristics.
 | 
						|
      <LI> NEW: OPTYap's latest tabulation code.
 | 
						|
      <LI> FIXED: respect debugger printining options.
 | 
						|
      <LI> FIXED: make sure variables are globalised before spying.
 | 
						|
      <LI> FIXED: tabling in autoconf
 | 
						|
      <LI> SPEEDUP: improve variable unification where we know one of
 | 
						|
	the variables is in the heap.
 | 
						|
      <LI> FIXED: when sweeping garbage collector should check for
 | 
						|
      variables posing as blobs (USE_OFFSETS).
 | 
						|
      <LI> FIXED: reduce overheads in functor/3.
 | 
						|
      <LI> FIXED: variant and subsumes must check functor and must
 | 
						|
        check for extensions.
 | 
						|
      <LI> FIXED: activate dorming optimised instructions and fix glist_void_var.
 | 
						|
      <LI> FIXED: performance bug in new multiplication code (only for i386).
 | 
						|
      <LI> FIXED: exit at Error() in Error().
 | 
						|
      <LI> FIXED: grow() had trouble with array ptrs in Trail.
 | 
						|
      <LI> FIXED: include Stasinos patches for gmp, HP-UX and on documentation.
 | 
						|
      <LI> FIXED: recorda_stat_source was passing 0 instead of tagged
 | 
						|
      0, also always initialise ->code!
 | 
						|
      <LI> FIXED: accept multiple block declarations and process them
 | 
						|
      as a conjunction.
 | 
						|
      <LI> FIXED: call_residue/2.
 | 
						|
      <LI> FIXED: block even when you have no - modes.
 | 
						|
      <LI> FIXED: use mkstemp() instead of tmpnam() in alloc.c
 | 
						|
      <LI> 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.
 | 
						|
      <LI> FIXED: ->p field of either now points to true.
 | 
						|
      <LI> FIXED: we must execute woken up goals before ;/2: force
 | 
						|
      stack checking at either.
 | 
						|
      <LI> FIXED: present a single delayed goal per variable Done. 
 | 
						|
      <LI> FIXED: make block/1 and wait/1 directives.
 | 
						|
      <LI> FIXED: make block/1 use when/2.
 | 
						|
      <LI> FIXED: compiling with glibc2.2, gcc-2.96 had small complaints.
 | 
						|
      <LI> FIXED: configure should now work with gmp3.
 | 
						|
      <LI> FIXED: overflow with extremely large terms in copy_term.
 | 
						|
      <LI> FIXED: unification between bignums could fail.
 | 
						|
      <LI> FIXED: improve print_message/2.
 | 
						|
      <LI> FIXED: make number_codes understand inf and nan.
 | 
						|
      <LI> FIXED: parse bigints in files.
 | 
						|
      <LI> FIXED: one should set creep flags whenever adding goals.
 | 
						|
      <LI> FIXED: debugging messages to stderr.
 | 
						|
      <LI> NEW: simpler scheme for delays.
 | 
						|
      <LI> FIXED: (mark_trail) do not mark second assignment to mavar in same choicepoint, helps 5% in mip, zilch in rkf.
 | 
						|
      <LI> FIXED: make goal_expansion and clause_expansion logical and multifile.
 | 
						|
      <LI> FIXED: stackgrow() with biginits.
 | 
						|
      <LI> FIXED: compile bigints properly.
 | 
						|
      <LI> FIXED: ShowCode should know about bigint instructions.
 | 
						|
      <LI> FIXED: arith.yap should understand int != bigint.
 | 
						|
      <LI> FIXED: ==/2 had bugs with attributed variables.
 | 
						|
      <LI> FIXED: make debugger aware of woken goals.
 | 
						|
      <LI> FIXED: bug in debugger with single update semantics dynamic clause. 
 | 
						|
      <LI> FIXED: definition of MAX_WORKSPACE had been deleted from alloc.c??
 | 
						|
      <LI> FIXED: frozen/2 and outputting suspended goals.
 | 
						|
      <LI> FIXED: BlobTermAdjust was not always defined.
 | 
						|
      <LI> FIXED: bad memory allocation in parser.c for _ resulted in cryptic error messages.
 | 
						|
      <LI> FIXED: // error in CHR.
 | 
						|
      <LI> FIXED: syntax error in initialization.
 | 
						|
      <LI> FIXED: syntax error messages again point to the error.
 | 
						|
      <LI> FIXED: add extra copyright info about LUM in manual.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.14:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> FIXED: gcc/solaris would not compile.
 | 
						|
      <LI> FIXED: gc instrumentation was still giving noise.
 | 
						|
      <LI> FIXED: bug without GMP.
 | 
						|
      <LI> NEW: CHR manual
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.13:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> FIXED: call_residue/2.
 | 
						|
      <LI> FIXED: == in configure.in
 | 
						|
      <LI> NEW: document attributed variables and CLP(Q,R).
 | 
						|
      <LI> NEW: initial support for Apple OS/X, thanks to Paulo Moura for the
 | 
						|
      patch.
 | 
						|
      <LI> FIXED: hash trouble in IDB (thanks to Stasinos Konstantinos
 | 
						|
	for the report)).
 | 
						|
      <LI> SPEEDUP: meta_predicate database is now in dynamic procedures
 | 
						|
	with logical updates.
 | 
						|
      <LI> FIXED: module 0 should always be found in DB.
 | 
						|
      <LI> FIXED: alloc space for get_num from trail.
 | 
						|
      <LI> NEW: discontiguous is a valid operator.
 | 
						|
      <LI> FIXED: gcd/2 operator would break on negative numbers. 
 | 
						|
      <LI> NEW: support for GMP gnu library and longints.
 | 
						|
      <LI> NEW: back to blobs in global.
 | 
						|
      <LI> NEW: new implementation of arithmetic with a function per operator and no switches.
 | 
						|
      <LI> FIXED: ## breakage in OS/X cpp (c_interface.h. thks Paulo Moura).
 | 
						|
      <LI> NEW: new arithmetic code
 | 
						|
      <LI> NEW: CHR (Thanks to Thom Fruewirth)
 | 
						|
      <LI> NEW: itemization bugs in the manual (Stasinos Konstatinos)
 | 
						|
      <LI> NEW: add sequential/0 and parallel/0 directives. 
 | 
						|
      <LI> FIXED: move Codes and Lists to heap_regs as these variables
 | 
						|
  are in fact supposed to be shared between processes.
 | 
						|
      <LI> FIXED: SBA should be able to store bindings in cell.
 | 
						|
      <LI> FIXED: PutAtt and GetAtt might return NULL in SBA.
 | 
						|
      <LI> FIXED: unify and friends would use uninstantiated variables.
 | 
						|
      <LI> FIXED: only install INTERFACE_HEADERS.
 | 
						|
      <LI> FIXED: DO_MATRAIL had reverse order under SBA.
 | 
						|
      <LI> NEW: prolog_load_context/2.
 | 
						|
      <LI> FIXED: allow reutilising aliases to files.
 | 
						|
      <LI> FIXED: replace term_variables by variables_in_term in pl/*.yap.
 | 
						|
      <LI> NEW: dynamic loading support for HP-UX (Stasinos Konstantinos)
 | 
						|
      <LI> FIXED: help info in configure.in and forgotten $ (Stasinos Konstantinos)
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.12:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> NEW: configure compilation process from configure.
 | 
						|
      <LI> FIXED: save/restore should set CurrentModule.
 | 
						|
      <LI> FIXED: InitYaamRegs should not set CurrentModule.
 | 
						|
      <LI> FIXED: load_dld would crash on NULL argv[0].
 | 
						|
      <LI> FIXED: get rid of install_library and build libYap.a by
 | 
						|
      default. Fix minor bugs in yaplib.
 | 
						|
      <LI> FIXED: used TRAIL to remember structure-to-structure
 | 
						|
      bindings in utilpreds.c and cmppreds.c (this avoids
 | 
						|
      overflow noticed by GJVNoord).
 | 
						|
      <LI> FIXED: split yapor_on so that ! is after yapor_on. This
 | 
						|
      should prevent cutting to before the root of the tree.
 | 
						|
      <LI> FIXED: bad handling of libs in load_dl.c (fix from Stasinos
 | 
						|
      Konstantopoulos)
 | 
						|
      <LI> FIXED: free_answer_hash_chain should untag parent pointer
 | 
						|
      (Ricardo Rocha).
 | 
						|
      <LI> FIXED: walltime would compile with cygwin (patch from
 | 
						|
      gzk02612@nifty.com).
 | 
						|
      <LI> FIXED: try_logical_pred was doing nasty things to
 | 
						|
      choice-points in parallel mode.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.11:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> FIXED: read could fail and not restore the original input
 | 
						|
      stream (noticed by GJ VanNoord).
 | 
						|
      <LI> FIXED: crappy handling of multi-assignment variables while
 | 
						|
      growing stacks (noticed by GJ VanNoord).
 | 
						|
      <LI> FIXED: Bad save/restore machine registers in hppa.
 | 
						|
      <LI> FIXED: Bad initialisation for '_' variables.
 | 
						|
      <LI> FIXED: check null ENV in
 | 
						|
      do_toggle_static_predicates_in_use, this seems to break HP-UX machines.
 | 
						|
      <LI> FIXED: Bad default address on SGI machines.
 | 
						|
      <LI> FIXED: Atom operations were being included too soon.
 | 
						|
      <LI> FIXED: alignment issue in LastWTimePtr with SPARC.
 | 
						|
      <LI> FIXED: Bind needs HBREG in p_save_cp/exec.c.
 | 
						|
      <LI> FIXED: small ints in term_hash.
 | 
						|
      <LI> FIXED: bug in installing CLPQR in Makefile.in (noticed by
 | 
						|
      Luis Castro and GJ VanNoord).
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.10:</H2>
 | 
						|
<UL>
 | 
						|
      <LI> FIXED: install info by default in /usr/share/info.
 | 
						|
      <LI> NEW: MULTI_ASSIGNMENT_VARIABLES should work with tabling
 | 
						|
      and or-parallel execution.
 | 
						|
      <LI> FIXED: small glitches with lcc.
 | 
						|
      <LI> FIXED: walltime in parallel system.
 | 
						|
      <LI> FIXED: zombies in ACOW.
 | 
						|
      <LI> NEW: CLPR is now in the YAP distribution.
 | 
						|
      <LI> NEW: sequential tabling can do stack shifting.
 | 
						|
      <LI> NEW: sequential tabling uses standard memory management system.
 | 
						|
      <LI> FIXED: make tracer work with tabling.
 | 
						|
      <LI> FIXED: make exec_goal work with tabling.
 | 
						|
      <LI> NEW: integrated latest OPTYap.
 | 
						|
      <LI> NEW: CIAO's pillow library.
 | 
						|
      <LI> FIXED: verify_attributes should follow SICStus order, or
 | 
						|
      else CLPR will break in critical,go2 :-(.
 | 
						|
      <LI> FIXED: debugger was getting confused by modules that import
 | 
						|
      predicates that are also defined in the module.
 | 
						|
      <LI> FIXED: =.. was messing with constraints, make it SDerefHead.
 | 
						|
      <LI> NEW: print $VAR("string") as string.
 | 
						|
      <LI> NEW: write_term(X,[write_depth(X)] is a legal option in SICStus.
 | 
						|
      <LI> NEW: write_term(X,[portrayed(X)] is a legal option in SICStus.
 | 
						|
      <LI> FIXED: debugger would get confused with undefined procedures.
 | 
						|
      <LI> FIXED: DB compression bug for lists with rational trees on.
 | 
						|
      <LI> FIXED: the blackboard routines are meta-predicates!
 | 
						|
      <LI> FIXED: initialization should be performed on correct module.
 | 
						|
      <LI> FIXED: make initialization/1 an operator.
 | 
						|
      <LI> NEW: print_message and portray_message.
 | 
						|
      <LI> FIXED: do proper meta-predicate processing for user:a :- meta(...).
 | 
						|
      <LI> FIXED: do term expansion from top level and for end_of_file
 | 
						|
      in consult.
 | 
						|
      <LI> FIXED: don't do grammar expansion if term expansion succeeds.
 | 
						|
      <LI> NEW: yap_flag(toplevel_hook,_): this is a goal to be executed before
 | 
						|
      prompting at the top-level.
 | 
						|
      <LI> NEW: variant/2.
 | 
						|
      <LI> FIXED: term_hash was not documented and in the wrong modules.
 | 
						|
      <LI> NEW: first try at ugraphs module.
 | 
						|
      <LI> NEW: SICStus compatible module/1 and yap_flag(typein_module,_).
 | 
						|
      <LI> NEW: SICStus compatible prolog_flag/2 and prolog_flag/3.
 | 
						|
      <LI> FIXED: for SICStus compatibility primitives module is now
 | 
						|
      prolog module.
 | 
						|
      <LI> FIXED: corrent consulted file could get confused.
 | 
						|
      <LI> FIXED: more fixes to top-level and call-residue with
 | 
						|
      attributed variables.
 | 
						|
      <LI> FIXED: call to compare_terms in optimise_ce relied on
 | 
						|
      correct H. Could corrupt the compiler.
 | 
						|
      <LI> FIXED: fix a few bugs on presenting floundered goals.
 | 
						|
      <LI> FIXED: procedures imported into user should be imported by
 | 
						|
      every module (do that by binding the importer to a variable).
 | 
						|
      <LI> FIXED: do not try to debug over commit.
 | 
						|
      <LI> FIXED: make top-level more SICStus like on how to present
 | 
						|
      variable bindings.
 | 
						|
      <LI> NEW: support columns in format/2 and format/3.
 | 
						|
      <LI> FIXED: p_number and friends should check for var before
 | 
						|
      checking for number with corouting support.
 | 
						|
      <LI> FIXED: init was setting WakeUpCode too late.
 | 
						|
      <LI> FIXED: save_program was not restoring WakeUpCode.
 | 
						|
      <LI> FIXED: terms library.
 | 
						|
      <LI> NEW: SICStus compatible prolog_flag/3.
 | 
						|
      <LI> FIXED: \+ \+ nondet1, !, nondet2.
 | 
						|
      <LI> SPEEDUP: improved exec path.
 | 
						|
      <LI> FIXED: hold locks for longer in i_recorded.
 | 
						|
      <LI> CLEANUP: avoid references to corouting data structures in
 | 
						|
      non-corouting code.
 | 
						|
      <LI> NEW: new hashing function for IDB.
 | 
						|
      <LI> FIXED: make profile_data understand modules.
 | 
						|
      <LI> FIXED: first argument for profile_data was inconsistent.
 | 
						|
      <LI> FIXED: broken trail resetting in p_read (thks G.J. VanNoord).
 | 
						|
      <LI> CLEANUP: ANSI-C code cleanup (thks S. Konstantopoulos).
 | 
						|
      <LI> CLEANUP: new Atom.h.m4 file splits some stuff from Yatom.h.m4.
 | 
						|
      <LI> CLEANUP: linkblk with one less argument and faster code
 | 
						|
      (hopefully).
 | 
						|
      <LI> FIXED: get rid of AtomBase.
 | 
						|
      <LI> FIXED: keep ordering between MkFunctor and friends.
 | 
						|
      <LI> FIXED: PreviousHeap is trash.
 | 
						|
      <LI> FIXED: too many calls to MkFunctor in GetPred.
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.9:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: VC++ compilation was broken.
 | 
						|
       <LI> FIXED: handle trail overflows in Windows.
 | 
						|
       <LI> FIXED: general fixes as cygnus compilation was broken.
 | 
						|
       <LI> FIXED: yap.exp got out of sync.
 | 
						|
       <LI> FIXED: YAP would include too many headers such as
 | 
						|
       sys/time.h and sys/wait.h breaking -mno-cygwin.
 | 
						|
       <LI> FIXED: don't trust in string.h to initialise NULL, this
 | 
						|
       seems to cause weird problems in gcc -mno-cygwin.
 | 
						|
       <LI> FIXED: lack of heap in assembler shouldn't force compiler
 | 
						|
       to restart.
 | 
						|
       <LI> FIXED: C-stack would overflow with PermVar, make this
 | 
						|
       function non-recursive.
 | 
						|
       <LI> FIXED: hint growheap on the least heap it needs.
 | 
						|
       <LI> FIXED: expand stack on overflow while parsing and overflow
 | 
						|
       while creating the var table.
 | 
						|
       <LI> FIXED: move ParserStack to Trail so that we can read in
 | 
						|
       very large terms.
 | 
						|
       <LI> FIXED: recursion of c_optimise would break for very
 | 
						|
       large clauses, replaced it by iteration.
 | 
						|
       <LI> CLEANUP: replace defined for enum in Yatom.h.m4.
 | 
						|
       <LI> FIXED: bug in compiled terms with DBRefs (same field was
 | 
						|
       used for CodePtr and RefPtr).
 | 
						|
       <LI> FIXED: guarantee correct locking for PreAllocCodeSpace();
 | 
						|
       <LI> FIXED: another typo in charsio.
 | 
						|
       <LI> FIXED: always allow asserts but careful, for now system
 | 
						|
       will only recover some space at top-level.
 | 
						|
       <LI> FIXED: In yap.c read false before someone hides it ;-).
 | 
						|
       <LI> CLEANUP: get rid of AtomLive and of AtomFalse.
 | 
						|
       <LI> FIXED: erase/1 and erased/1 now complain on bad arguments.
 | 
						|
       <LI> FIXED: ANALYST would not compile.
 | 
						|
       <LI> FIXED: go round bad FILENAME_MAX in HPUX (Stasinos Konstantopoulos).
 | 
						|
       <LI> CLEANUP: use sed instead of symbolic links in make depended (Stasinos Konstantopoulos).
 | 
						|
       <LI> FIXED: don't check if someone is looking at an environment
 | 
						|
       while asserting.
 | 
						|
       <LI> FIXED: gc always assumed an immediate DBRef.
 | 
						|
       <LI> FIXED: ! now cuts if != instead of < (fixed cut_by).
 | 
						|
       <LI> FIXED: __hpux to __hpux (Stasinos Konstantopoulos).
 | 
						|
       <LI> FIXED: makedepend works again (Stasinos Konstantopoulos).
 | 
						|
       <LI> FIXED: compile under hpux cc (Stasinos Konstantopoulos).
 | 
						|
       <LI> NEW: locking for internal data base.
 | 
						|
       <LI> FIXED: bad cast in DBProp.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap-4.3.8:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: previous change to ! was wrong.
 | 
						|
       <LI> FIXED: YAP_ARRAYS was still being used in arrays.c and
 | 
						|
       sbaamiops.h.
 | 
						|
       <LI> FIXED: small glitches in the manual.
 | 
						|
       <LI> NEW: change work dir from Yap4 to Yap-4 (that's what
 | 
						|
       everyone else does).
 | 
						|
       <LI> NEW: make install_info
 | 
						|
       <LI> NEW: yap.spec and automatic generation of rpms.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.3.7:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: fix SBA bug in or.cuts.h.
 | 
						|
       <LI> NEW: cut now looks for ==, not <.
 | 
						|
       <LI> NEW: FunctorList is now special.
 | 
						|
       <LI> FIXED: Looking up "." was broken.
 | 
						|
       <LI> FIXED: halt/1 would not send out the error code.
 | 
						|
       <LI> NEW: allow executable Prolog files that call YAP (option -L).
 | 
						|
       <LI> FIXED: bad overflow handling when compiling very large terms.
 | 
						|
       <LI> FIXED: bugs in charsio at open_chars_stream and number_to_chars.
 | 
						|
       <LI> FIXED: search for library() did not use env var YAPLIBDIR.
 | 
						|
       <LI> NEW: parallel locking for MIPS machines.
 | 
						|
       <LI> NEW: parallel locking for Alpha machines.
 | 
						|
       <LI> FIXED: In OPTYAP UNLOCK should be machine dependent.
 | 
						|
       <LI> 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.
 | 
						|
       <LI> NEW: Protect DB updates and use with immediate update
 | 
						|
       semantics.
 | 
						|
       <LI> FIXED: get rid of the stuff on searching whether a
 | 
						|
       predicate is in use for YAPOR, as it wouldn't work.
 | 
						|
       <LI> FIXED: disallow asserting and abolishing static procedures
 | 
						|
       in YAPOR.
 | 
						|
       <LI> NEW: allow asserting database references as arguments for
 | 
						|
       dynamic procedures.
 | 
						|
       <LI> FIXED: consult and friends are now directives (this should
 | 
						|
       avoid trouble with YAPOR).
 | 
						|
       <LI> FIXED: change configure.in for Alpha/Linux.
 | 
						|
       <LI> FIXED: change YAPOR not to try to do parallel execution of
 | 
						|
       consult.
 | 
						|
       <LI> FIXED: protect goals from save_program/2 and also make
 | 
						|
       sure they don't fail.
 | 
						|
       <LI> FIXED: [a] in top level should be executed as a query.
 | 
						|
       <LI> CLEANUP: get rid of c_csult_stream;
 | 
						|
       <LI> FIXED: fix predicates that depended on current_stream
 | 
						|
       returning user name for file.
 | 
						|
       <LI> 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.
 | 
						|
       <LI> FIXED: current_stream should return real name, not user name.
 | 
						|
       <LI> CLEANUP: add consult/reconsult mode and file name to
 | 
						|
       consult stack.
 | 
						|
       <LI> FIXED: force indexing immediately after consult in
 | 
						|
       YAPOR. This guarantees the system will not get into trouble
 | 
						|
       later trying to generate indexing code for a predicate while
 | 
						|
       someone is entering it.
 | 
						|
       <LI> FIXED: bad init interface with YAPOR.
 | 
						|
       <LI> NEW: support partial locking for predicates.
 | 
						|
       <LI> FIXED: wrong include path in regex's Makefile.in.
 | 
						|
       <LI> FIXED: bb_new was doing a broken property insert.
 | 
						|
       <LI> FIXED: save_program now restores SpyCode so that we can
 | 
						|
       restart saved states with spying data.
 | 
						|
       <LI> FIXED: YapInit wasn't using stack size info from saved
 | 
						|
       states. 
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.3.6:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: YapRunGoal wasn't saving/restoring registers
 | 
						|
       properly, thus breaking the alpha platform.
 | 
						|
       <LI> FIXED: could not find saved state.
 | 
						|
       <LI> FIXED: bad substitution in saved states.
 | 
						|
       <LI> NEW: -l option for YAP (consult a Prolog file).
 | 
						|
       <LI> CLEANUP: -l option for YAPOR is now -sl.
 | 
						|
       <LI> CLEANUP: small cleanups in yap.c.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.3.5:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> NEW: add yap_libdir.
 | 
						|
       <LI> NEW: add splay trees.
 | 
						|
       <LI> NEW: add AVL trees.
 | 
						|
       <LI> FIXED: asserting static predicates would not store the
 | 
						|
       right source.
 | 
						|
       <LI> FIXED: assert would loop with assert((H:-b)).
 | 
						|
       <LI> FIXED: GC bug would not process direct pointers from local or
 | 
						|
       trail to lists in code space. 
 | 
						|
       <LI> NEW: change directory structure.
 | 
						|
       <LI> NEW: support locking for arrays.
 | 
						|
       <LI> NEW: support locking for operators.
 | 
						|
       <LI> NEW: support locking for values.
 | 
						|
       <LI> FIXED: bad comparison with BB in write_val (SBA).
 | 
						|
       <LI> NEW: support locking on alloc/free.
 | 
						|
       <LI> NEW: support locking on blackboard.
 | 
						|
       <LI> NEW: support locking for individual atoms (protects the
 | 
						|
       property list).
 | 
						|
       <LI> NEW: support locking the atom table.
 | 
						|
       <LI> NEW: sequential code should now compile empty locks.
 | 
						|
       <LI> FIXED: YAP again compiles and runs under AIX4.1.
 | 
						|
       <LI> FIXED: support creating YAP DLL with VC++.
 | 
						|
       <LI> FIXED: VC++ didn't understand S_ISDIR()
 | 
						|
       <LI> FIXED: small fixes to yap.tex.
 | 
						|
       <LI> FIXED: unsigned/sign comparison warnings in VC++.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.3.4:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: IRIX6 is now set up load DLLs.
 | 
						|
       <LI> FIXED: Yap4.3.3 had broken register handling in c_interface.c.
 | 
						|
       <LI> FIXED: bug in library/regex/Makefile.in.
 | 
						|
       <LI> FIXED: FreeBSD/ELF is now set up to load DLLs.
 | 
						|
       <LI> FIXED: in_limbo should now be correct.
 | 
						|
       <LI> FIXED: YAPOR would not compile because of macros.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.3.3:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: recover space after every parse/compile in new yap.c.
 | 
						|
       <LI> FIXED: ignore getcwd under simplescalar.
 | 
						|
       <LI> FIXED: only include standard files after YAP headers.
 | 
						|
       <LI> FIXED: save and restore registers correctly under c-interface.
 | 
						|
       <LI> NEW: add YapWrite to C-Interface.
 | 
						|
       <LI> FIXED: mmapped arrays do not compile with simplescalar.
 | 
						|
       <LI> FIXED: force saved states to look up YAP in YAPBINDIR.
 | 
						|
       <LI> FIXED: quoted strings go back to ISO.
 | 
						|
       <LI> FIXED: -DYAP_ARRAYS is no longer an option.
 | 
						|
       <LI> FIXED: get rid of a few of ANSI-C old-style warnings from lcc.
 | 
						|
       <LI> FIXED: TrueFileName had been broken.
 | 
						|
       <LI> FIXED: Yap now configures and compiles with lcc 4.1/Linux.
 | 
						|
       <LI> FIXED: port yap to compile under cygwin 1.1.0/mingw32 and
 | 
						|
       to support winsock2. The new version also supports CreateWaitableTimer.
 | 
						|
       <LI> FIXED: force yap to follow environment variable YAPLIBDIR.
 | 
						|
       <LI> FIXED: force yap to look for dlls in library.
 | 
						|
       <LI> FIXED: replace strcat and strcpy by strncat and strncpy.
 | 
						|
       <LI> FIXED: search for saved states in library.
 | 
						|
       <LI> FIXED: ^c-a in MINGW32.
 | 
						|
       <LI> CLEANUP: ^C handling.
 | 
						|
       <LI> NEW: creating and loading dll now works in YAP/WIN.
 | 
						|
       <LI> NEW: compile core YAP as a dll under MINGW32.
 | 
						|
       <LI> NEW: yap.c is now external to YAP.
 | 
						|
       <LI> NEW: understand Unix paths under WIN32 and MINGW32.
 | 
						|
       <LI> FIXED: make sure you only start compiling objects after
 | 
						|
       having all headers ready.
 | 
						|
       <LI> FIXED: Debugger ($spycalls) should module switches and
 | 
						|
       consulted the table of imported predicates.
 | 
						|
       <LI> FIXED: Compilation bug and warnings under vc++.
 | 
						|
       <LI> FIXED: YAP_ARRAYS required TERM_EXTENSIONS to compile.
 | 
						|
       <LI> FIXED: compile under cygwin's gcc -mno-cygwin, so that YAP
 | 
						|
       won't need the cygwin dll (MINGW32).
 | 
						|
       <LI> FIXED: save.c should reinitialise user streams
 | 
						|
       <LI> FIXED: predentries for functions may change address in save.c
 | 
						|
       <LI> FIXED: SimpleSim does not implement getcwd
 | 
						|
       <LI> FIXED: tracer.c had a C++ comment.
 | 
						|
       <LI> FIXED: ttyname might return NULL, at least in SimpleSim
 | 
						|
       <LI> FIXED: reconsult was broken.
 | 
						|
       <LI> FIXED: bracket messages for syntax errors.
 | 
						|
       <LI> FIXED: scanner would break if AllocScannerSpace failed.
 | 
						|
       <LI> FIXED: bad checking of eof_action in open.
 | 
						|
       <LI> FIXED: mistake in compiling /\.
 | 
						|
       <LI> FIXED: extra clauses in environ.
 | 
						|
       <LI> FIXED: checking list of operators was wrong in op/3.
 | 
						|
       <LI> FIXED: missing variable in error message.
 | 
						|
       <LI> FIXED: reset CreepFlag in Error.
 | 
						|
       <LI> FIXED: wrong error in name(int(X),_).
 | 
						|
       <LI> FIXED: fix writing "\" when writing strings with no
 | 
						|
       character escapes.
 | 
						|
       <LI> NEW: add yap_flag(write_strings,X) as in Ciao.
 | 
						|
       <LI> NEW: add StringToBuffer routine to the c-interface.
 | 
						|
       <LI> NEW: add routines for allocating and releasing database
 | 
						|
       space to the c-interface.
 | 
						|
       <LI> FIXED: change type for unify in CInterface.
 | 
						|
       <LI> FIXED: PlUnGetc should return int, not Int.
 | 
						|
       <LI> FIXED: get rid of C++ comment in save.c.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.3.2:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: Yap can now use shm for memory allocation.
 | 
						|
       <LI> NEW: Yap can use malloc if mmap, shm, and sbrk failed. 
 | 
						|
       <LI> FIXED: sbrk allocation should be working again.
 | 
						|
       <LI> CLEANUP: get rid of unused functions in old alloc.c.
 | 
						|
       <LI> CLEANUP: in Yap.h.m4 make clear when you are in second quadrant
 | 
						|
       <LI> CLEANUP: keep table with all c-predicates. restore now
 | 
						|
       does not need to reinitialise functions.
 | 
						|
       <LI> FIXED: in alloc.c, handle cases where /dev/zero fails properly.
 | 
						|
       <LI> CLEANUP: move atoms and functors into heap_codes.
 | 
						|
       <LI> CLEANUP: move module info to heap_codes.
 | 
						|
       <LI> FIXED: save.c would not restore properly bfunc
 | 
						|
       instructions. Had to add a p field for these instructions.
 | 
						|
       <LI> FIXED: save.c was not always restoring pp->OpcodeOfPred.
 | 
						|
       <LI> FIXED: reset opcode-op hash-table in new calls to
 | 
						|
       InitReverseLookupOpcode.
 | 
						|
       <LI> FIXED: check if emulator shifted when recovering saved states.
 | 
						|
       <LI> NEW: charsio, SICStus compatible reading to and writing
 | 
						|
       from strings.
 | 
						|
       <LI> FIXED: uncaught instantiation errors in eval routines.
 | 
						|
       <LI> NEW: yap_flag(character_escapes,{on,off})
 | 
						|
       <LI> CLEANUP: get rid of config.c.
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.3.1:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: $call and $spied_call used with one less argument by debugger.
 | 
						|
       <LI> FIXED: bug in repeat from top level.
 | 
						|
       <LI> FIXED: MAX_DEPTH was set too high.
 | 
						|
       <LI> FIXED: use actual definition of repeat.
 | 
						|
       <LI> FIXED: use < to compare cps for !, not == because of (! ->)
 | 
						|
       <LI> FIXED: $set_depth_limit should work with Integer, not Int.
 | 
						|
       <LI> FIXED: Allow Linux to compile without getrusage but using
 | 
						|
       times (problem with glibc/kernel).
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<P>
 | 
						|
Yap4.3.0 has been released.
 | 
						|
</P>
 | 
						|
 | 
						|
 | 
						|
<H1 ALIGN=CENTER>Changes in YAP4.2</H1>
 | 
						|
<P>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.1:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: up release number.
 | 
						|
       <LI> FIXED: swap order of first authors in the manual. 
 | 
						|
       <LI> NEW: more patches for OPTYap.
 | 
						|
       <LI> FIXED: not all Linuxen that have fpu_control.h understand
 | 
						|
       _FPU_SETCW.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl18:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: DebugPutc.
 | 
						|
       <LI> FIXED: SBA must initialise or set public permanent
 | 
						|
       variables in the SBA.
 | 
						|
       <LI> FIXED: get rid of a Prolog definition for number_codes.
 | 
						|
       <LI> FIXED: YOUNGER out of OPTYap and renamed YOUNGER_CP.
 | 
						|
       <LI> FIXED: don't use offsets to local in SBA.
 | 
						|
       <LI> FIXED: make DelayedB and TopB actual choicepointers to
 | 
						|
       support SBA.
 | 
						|
       <LI> FIXED: memory allocation for FreeBSD.
 | 
						|
       <LI> RW Locks are now in YAP (unused yet).
 | 
						|
       <LI> FIXED: dynamic arrays were getting too complex, allow the
 | 
						|
       heap to point to the global stack and change garbage collector
 | 
						|
       to handle it. YAP_ARRAYS is now compatible with everything ;-)
 | 
						|
       and can stop being an option.
 | 
						|
       <LI> FIXED: cut used < instead of !=.
 | 
						|
       <LI> NEW: new YapOr code from Ricardo.
 | 
						|
       <LI> FIXED: a few complaints with Solaris.
 | 
						|
       <LI> NEW: generate exceptions in ISO mode for HP-UX.
 | 
						|
       <LI> FIXED: use_module relies on ensure_loaded, which is now a directive.
 | 
						|
       <LI> FIXED: 64/32 bit errors in Alpha.
 | 
						|
       <LI> FIXED: SEG_SIZE is pre-defined in HP platform.
 | 
						|
       <LI> FIXED: should call Error only after leaving interrupt
 | 
						|
       handler, otherwise sigsetjmp will overwrite registers.
 | 
						|
       <LI> FIXED: fill CharConversionTable with null chars;
 | 
						|
       <LI> FIXED: warning in PowerPCs.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl17:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: more improvements to Eval.
 | 
						|
       <LI> NEW: predicate_property(X,public).
 | 
						|
       <LI> NEW: public/1 directive, handling of source was cleaned up
 | 
						|
       (it used to be broken if one would switch between source and
 | 
						|
       no-source).
 | 
						|
       <LI> NEW: special meta-call handling for ISO mode. Reduce
 | 
						|
       amount of testing for other cases.
 | 
						|
       <LI> CLEANUP: complete cleanup of eval. No more duplicate code,
 | 
						|
       no more reg and fli.
 | 
						|
       <LI> SPEEDUP: move get_spy_creep to yap_flags. This speeds up
 | 
						|
       execute a bit.
 | 
						|
       <LI> NEW: strict_iso mode.
 | 
						|
       <LI> CLEANUP: InitEval.
 | 
						|
       <LI> FIXED: arithmetic should be consistent even after an error.
 | 
						|
       <LI> NEW: implement ISO exception handling for operations
 | 
						|
       between floating-point numbers in Linux.
 | 
						|
       <LI> NEW: handle floating point exceptions.
 | 
						|
       <LI> CLEANUP: get rid of EQUAL_FLOATS and EQUAL_LONG_INTS as
 | 
						|
       they weren't used any longer (and they were wrong anyway).
 | 
						|
       <LI> NEW: add e, I've always liked this constant better than pi.
 | 
						|
       <LI> FIXED: get a better pi.
 | 
						|
       <LI> FIXED: fix round and friends for ISO mode.
 | 
						|
       <LI> NEW: add xor (#) and sign.
 | 
						|
       <LI> FIXED: get rid of finite, change integer the limits in YAP.
 | 
						|
       <LI> FIXED: define atanh and friends for VC++ environments.
 | 
						|
       <LI> FIXED: Get PlGetChar() back in, as users may want a simple
 | 
						|
       interface to the current input for their own dubious purposes.
 | 
						|
       <LI> NEW: yap_flag(discontiguous_warnings, single_var_warnings,
 | 
						|
       redefine_warnings) as in SICStus. This should eventually
 | 
						|
       replace style_check and no_style_check.
 | 
						|
       <LI> FIXED: do not mark or sweep environments twice. This fixes
 | 
						|
       Bart's YAP GC performance bug (as mentioned in comp.lang.prolog!).
 | 
						|
       <LI> NEW: do variable shunting, not that it helps very much.
 | 
						|
       <LI> FIXED: save should only save as many registers as it
 | 
						|
       needs, and the ones it does should be adjusted when restoring. 
 | 
						|
       <LI> NEW: stream_select/3.
 | 
						|
       <LI> NEW: save/2.
 | 
						|
       <LI> NEW: char_conversion/2 and current_char_conversion. Add
 | 
						|
       ISOGetc for this, change scanner for having two getcs (one
 | 
						|
       within strings, the other elsewhere).
 | 
						|
       <LI> FIXED: was recording source for optimised clauses, not
 | 
						|
       just source for module preprocessed clause.
 | 
						|
       <LI> CLEANUP: add specialised versions to PlGetc(): Sockets,
 | 
						|
       EOF, Readline, and Console.
 | 
						|
       <LI> CLEANUP: got rid of PlGetChar();
 | 
						|
       <LI> CLEANUP: replaced PlPutc() by specialised versions for
 | 
						|
       each type of stream: File, Console, Socket, Socket+Console, and Null;
 | 
						|
       <LI> CLEANUP: got rid of PlPutChar();
 | 
						|
       <LI> FIXED: ISO compatible mode for floor and friends.
 | 
						|
       <LI> FIXED: YAP would crash with INTEGER mod 0.
 | 
						|
       <LI> FIXED: miscellaneous error handling in eval.
 | 
						|
       <LI> FIXED: number_chars and friends should be compatible with
 | 
						|
       scanner.
 | 
						|
       <LI> FIXED: stream_property should not work with aliases.
 | 
						|
       <LI> NEW: char_code/2.
 | 
						|
       <LI> FIXED: ISO mode activates fileerrors.
 | 
						|
       <LI> FIXED: avoid using atom_chars within the system.
 | 
						|
       <LI> FIXED: number_chars(X,I) and number_codes/2 with bad I
 | 
						|
       should give error in ISO mode.
 | 
						|
       <LI> FIXED: make ISO abolish/1 succeed for undefined procedures.
 | 
						|
       <LI> FIXED: number_chars and atom_chars should be ISO
 | 
						|
       compatible in ISO mode.
 | 
						|
       <LI> FIXED: errors in call should throw ISO errors.
 | 
						|
       <LI> FIXED: functor/3 should now have standard ISO behaviour on
 | 
						|
       errors.
 | 
						|
       <LI> FIXED: assert(X) would loop.
 | 
						|
       <LI> FIXED: char_conversion/2 is now also a directive.
 | 
						|
       <LI> FIXED: ensure_loaded/1 should be directive and not a built-in.
 | 
						|
       <LI> FIXED: current_predicate/1 should not show system
 | 
						|
       predicates and should be module aware.
 | 
						|
       <LI> FIXED: utilpred.s now compiles with -DEUROTRA.
 | 
						|
       <LI> FIXED: abolish/1 had several nasty bugs, especially in ISO mode.
 | 
						|
       <LI> CLEANUP: got rid of nasty config.cache in main directory.
 | 
						|
       <LI> FIXED: op/3 and set_prolog_flag/2 are directives.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl16:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: retractall was broken.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl15:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: in catch/3 set module to original module before
 | 
						|
       handling a ball.
 | 
						|
       <LI> SPEEDUP: improve testing with DEPTH_LIMIT.
 | 
						|
       <LI> FIXED: DEPTH_LIMIT should only stop code running under
 | 
						|
       depth_bound_call/2.
 | 
						|
       <LI> FIXED: bug in parse_args (fix from  Stasinos
 | 
						|
       Konstantopoulos <konstant@let.rug.nl>).
 | 
						|
       <LI> FIXED: copy_term/2 should now be able to copy constraints.
 | 
						|
       <LI> FIXED: faster version of copy_term/2 should now handle
 | 
						|
       rational trees.
 | 
						|
       <LI> NEW: generate ps version of manual with make ps.
 | 
						|
       <LI> FIXED: disable save term optimisation for extensions, as
 | 
						|
       we may not have an S ready.
 | 
						|
       <LI> CLEANUP: always use '$execute' instead of call internally.
 | 
						|
       <LI> CLEANUP: get rid of '$user_call' as it should the same as
 | 
						|
       '$execute'.
 | 
						|
       <LI> 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.
 | 
						|
       <LI> FIXED: expanded head variables of meta_predicates should not be
 | 
						|
       expanded by inner meta-calls.
 | 
						|
       <LI> FIXED: HAVE_STAT was not being generated correctly by autoconf.
 | 
						|
       <LI> NEW: timeout:time_out.
 | 
						|
       <LI> FIXED: make sure catch handlers are processed from within user.
 | 
						|
       <LI> FIXED: processing of style_check by yap_flag(language,_).
 | 
						|
       <LI> FIXED: discontiguous should now be module aware.
 | 
						|
       <LI> FIXED: preprocess calls for meta-predicates from top-level.
 | 
						|
       <LI> FIXED: simplify code that handles the fact that modules
 | 
						|
       from primitives can be called from anywhere.
 | 
						|
       <LI> FIXED: $module_expansion could be called with wrong number
 | 
						|
       of arguments.
 | 
						|
       <LI> FIXED: separate '$execute', the low-level mechanism for
 | 
						|
       meta-call, from '$user_call', that must study meta-predicates. 
 | 
						|
       <LI> FIXED: README.VC
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl14:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: allow big flags.
 | 
						|
       <LI> FIXED: typos in yap.tex.
 | 
						|
       <LI> NEW: yap_flag(host_type,X), where X comes from configure.
 | 
						|
       <LI> NEW: more cleanups for autoconf.
 | 
						|
       <LI> FIXED: more cleanups for autoconf.
 | 
						|
       <LI> NEW: use -DBP_FREE by default for X86 machines. 
 | 
						|
       <LI> FIXED: make predicate_property more SICStus Prolog
 | 
						|
       compatible.
 | 
						|
       <LI> NEW: language mode now changes action over dynamic and
 | 
						|
       over directives.
 | 
						|
       <LI> NEW: initial DLL support for WIN32.
 | 
						|
       <LI> FIXED: optimise arithmetic for asserted clauses.
 | 
						|
       <LI> FIXED: calling garbage collector from within a
 | 
						|
       C-backtrackable built-in should also have the extra arguments
 | 
						|
       to the choice-point ready. 
 | 
						|
       <LI> NEW: YAP should now be able to load DLLs in WIN32.
 | 
						|
       <LI> FIXED: YAP will now stop creeping after an abort.
 | 
						|
       <LI> FIXED: meta-call within the debugger was externally visible.
 | 
						|
       <LI> FIXED: small ANSI-C compatibility thingies.
 | 
						|
       <LI> FIXED: writeq('aaa===\\''====') now outputs properly.
 | 
						|
       <LI> NEW: yap_flags(update_semantics,logical_assert) if you
 | 
						|
       only want to use logical update semantics for asserted code.
 | 
						|
       <LI> NEW: yap_flags(language,{cprolog,sicstus,iso})
 | 
						|
       <LI> FIXED: do not test for worken goals before !, it slows
 | 
						|
       down execution too much.
 | 
						|
       <LI> NEW: improve the performance of ==/2.
 | 
						|
       <LI> FIXED: compile without COROUTINING
 | 
						|
       <LI> FIXED: manual would not compile.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl13:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: term_expansion should be called in user module.
 | 
						|
       <LI> FIXED: include new operation sderef_op when we want to
 | 
						|
       know what a constrained variable is bound to.
 | 
						|
       <LI> FIXED: try_logical_pred depended on B, but B might have
 | 
						|
       been cut. Use trail for the moment.
 | 
						|
       <LI> FIXED: call of project_attributes.
 | 
						|
       <LI> 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.
 | 
						|
       <LI> 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.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl12:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> NEW: README.VC for VisualC++ users.
 | 
						|
       <LI> FIXED: several small changes for VisualC++.
 | 
						|
       <LI> FIXED: _WIN32 requires LOWTAGS (0x3000000 kind of address)
 | 
						|
       for garbage collection to work.
 | 
						|
       <LI> FIXED: UnifyBound was not handling extensions right.
 | 
						|
       <LI> FIXED: had wrong definition for non-gcc EXTRA_CBACK_ARG.
 | 
						|
       <LI> FIXED: make Yap compile under VisualC++ 6.0 again. 
 | 
						|
       <LI> FIXED: exit_yap would not exit. 
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl11:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: multifile was not complaining on missing declaration.
 | 
						|
       <LI> FIXED: multifile declarations were not module aware.
 | 
						|
       <LI> CLEANUP: assert/1 and dynamic/1.
 | 
						|
       <LI> FIXED: for the nth time tried to make modules SICStus
 | 
						|
       compatible :-(.
 | 
						|
       <LI> NEW: integrated latest version of YAPOR (SBA and ACOW
 | 
						|
       still do not work).
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl10:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: could have a bad cut in call(X->Y).
 | 
						|
       <LI> FIXED: add ord_intersect/3 again (same as ord_intersection/3).
 | 
						|
       <LI> FIXED: save_program/2 would not set prompt correctly.
 | 
						|
       <LI> FIXED: bug in stack_shifter after gc (was shifting global pointers).
 | 
						|
       <LI> FIXED: save/1 was broken with coroutining.
 | 
						|
       <LI> FIXED: use_module/2 should handle lists of files.
 | 
						|
       <LI> FIXED: COROUTINING depended on DEBUG code.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl9:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: list_to_assoc/2.
 | 
						|
       <LI> FIXED: ANALYST should compile again.
 | 
						|
       <LI> FIXED: ensure_loaded and use_module are not directives!
 | 
						|
       <LI> FIXED: bug in cleaning up for logical update semantics.
 | 
						|
       <LI> FIXED: cuts will now call suspended goals.
 | 
						|
       <LI> FIXED: debugger should now step through meta-predicates correctly.
 | 
						|
       <LI> FIXED: trust_logical_pred did not release trail entry correctly.
 | 
						|
       <LI> FIXED: recordedp might be create a new key in a different mode from
 | 
						|
       the one used to create the dynamic procedure.
 | 
						|
       <LI> FIXED: don't go through $undefp for dynamic procedures.
 | 
						|
       <LI> FIXED: bugs in asserting dynamic procedures from compiled clauses.
 | 
						|
       <LI> FIXED: buglets with multifile/1.
 | 
						|
       <LI> FIXED: do not open directories except as binary files.
 | 
						|
       <LI> NEW: library random.
 | 
						|
       <LI> NEW: assoc now has ord_list_to_assoc/2 and get_assoc/5.
 | 
						|
       <LI> NEW: compatibility module terms for term_utils.
 | 
						|
       <LI> NEW: ordsets now has ord_union/4 and ord_del_element/3.
 | 
						|
       <LI> NEW: add public/1 directive but currently this does nothing.
 | 
						|
       <LI> FIXED: be more precise about which files you have consulted.
 | 
						|
       <LI> FIXED: use_module/2 should not handle lists of files.
 | 
						|
       <LI> FIXED: compare would stop whenever it would find two
 | 
						|
       numbers, even if they were equal.
 | 
						|
       <LI> NEW: attributed variables.
 | 
						|
       <LI> FIXED: coroutining would break \=/2.
 | 
						|
       <LI> NEW: ord_add_element/1 in ordsets.
 | 
						|
       <LI> NEW: empty_assoc/1 in assoc_lists.
 | 
						|
       <LI> CLEANUP: compile under lcc4.1/Linux.
 | 
						|
       <LI> FIXED: storing compressed rational trees on DB was buggy.
 | 
						|
       <LI> FIXED: $unknown(_:_) should not give an error. 
 | 
						|
       <LI> FIXED: ord_intersect/3 now is ord_intersection/3.
 | 
						|
       <LI> FIXED: recursive do_goal would corrupt coroutining
 | 
						|
       information.
 | 
						|
       <LI> FIXED: handle possible overflows in quoted strings.
 | 
						|
       <LI> CLEANUP: move .pl library files to .yap.
 | 
						|
       <LI> CLEANUP: get rid of unused SusRecTop and SusRecBase.
 | 
						|
       <LI> CLEANUP: move HeapUsed, HeapMax and HeapTop to Heap.
 | 
						|
       <LI> FIXED: add MMAP_ADDR for WIN32.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl8:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> NEW: user:goal_expansion/3.
 | 
						|
       <LI> SPEEDUP: use separate table for integer keys to data
 | 
						|
       base. Table size can be configured with -DMAX_DB_INT_KEYS=.
 | 
						|
       <LI> SPEEDUP: increase the size of HashTable, which was
 | 
						|
       ridiculously small.
 | 
						|
       <LI> CLEANUP: allocate heap_regs as heap start.
 | 
						|
       <LI> SPEEDUP: avoid calculation for compile-time keys.
 | 
						|
       <LI> NEW: get_float.
 | 
						|
       <LI> NEW: change the way functors of processed.
 | 
						|
       <LI> CLEANUP: got rid of disgusting GeneralRef type, it has
 | 
						|
       been replaced by Integer.
 | 
						|
       <LI> FIXED: unknown_error should not complain if print is called
 | 
						|
       with undefined portray.
 | 
						|
       <LI> FIXED: delay cuts that go through embeddeded c-calls. This
 | 
						|
       requires two extra registers, DelayedB and TopB.
 | 
						|
       <LI> CLEANUP: LockPred wasn't being used any longer.
 | 
						|
       <LI> FIXED: fact for true was not being asserted.
 | 
						|
       <LI> NEW: now long ints and floats are tagged.
 | 
						|
       <LI> FIXED: array/2 was a safe predicate that could call gc().
 | 
						|
       <LI> FIXED: growstack in cclause should also call gc().
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl7:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: 8 bit characters would be mangled by char->Int
 | 
						|
       conversion in StringToList.
 | 
						|
       <LI> NEW: Garbage collection should now work for a total space
 | 
						|
       of 1GB on second quadrant (use low_tags).
 | 
						|
       <LI> FIXED: ExtendWorkSpace would not always guarantee aligned size.
 | 
						|
       <LI> NEW: call_with_args/n, meta-call with variable arity (up
 | 
						|
       to 10).
 | 
						|
       <LI> FIXED: array/2 overflow had not been fixed properly.
 | 
						|
       <LI> FIXED: sort and friends would not handle overflow properly.
 | 
						|
       <LI> FIXED: improve manual include small bugs, compatibility stuff.
 | 
						|
       <LI> SPEEDUP: replace opcode(_index_pred) with INDEX_OPCODE.
 | 
						|
       <LI> SPEEDUP: replace opcode(_undef_p) with UNDEF_OPCODE.
 | 
						|
       <LI> FIXED: only optimise common_expressions up to level 5.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl6:</H2>
 | 
						|
<UL>
 | 
						|
       <LI> FIXED: coroutining had been broken when initialisation was
 | 
						|
       reordered.
 | 
						|
       <LI> ISO: predicate_property of static predicates now returns
 | 
						|
       static, instead of compiled.
 | 
						|
       <LI> FIXED: if format/2 ~s would complain for empty strings.
 | 
						|
       <LI> FIXED: bug with too large arrays.
 | 
						|
       <LI> NEW: term_hash/2 and term_hash/4.
 | 
						|
       <LI> FIXED: allow modules in bodies of DCGs.
 | 
						|
       <LI> FIXED: get rid of modules in head before they hit DCGs.
 | 
						|
       <LI> FIXED: current_predicate with modules.
 | 
						|
       <LI> FIXED: $undefined/1 should never collapse.
 | 
						|
       <LI> FIXED: listing would collapse because of :/2. :/2 is not
 | 
						|
       an undefined procedure now. 
 | 
						|
       <LI> FIXED: in saved states replace $* by "$@". 
 | 
						|
       <LI> NEW: user:unknown_predicate_handler/3 from SICStus.
 | 
						|
       <LI> FIXED: declare findall/4 a meta_predicate.
 | 
						|
       <LI> FIXED: switch third and fourth argument to findall/4 to
 | 
						|
       obtain SICStus compatibility.
 | 
						|
       <LI> FIXED: unknown/2 should know about modules.
 | 
						|
       <LI> FIXED: speedup handling of unknown predicates in meta-calls.
 | 
						|
       <LI> FIXED: speedup depth_bound_call(A,D) by using $execute.
 | 
						|
       <LI> FIXED: add chapter on modules to manual.
 | 
						|
       <LI> FIXED: meta_predicates from same module were not being
 | 
						|
       expanded.
 | 
						|
       <LI> FIXED: modules use current module for meta predicate.
 | 
						|
       <LI> REVERSE: default meta_predicates back to user.
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl5:</H2>
 | 
						|
<UL>
 | 
						|
       <LI>  FIXED: meta_predicate should be a directive, not a
 | 
						|
       standard predicate.
 | 
						|
       <LI>  FIXED: all default meta_predicates should belong to user,
 | 
						|
       not primitives.
 | 
						|
       <LI>  FIXED: give errors when not finding libraries.
 | 
						|
       <LI>  FIXED: load_module/1 and load_module/2 are now directives.
 | 
						|
       <LI>  FIXED: load_module/2 would not accept libraries and had
 | 
						|
       bad error handling.
 | 
						|
       <LI>  FIXED: catch/3 did not have a meta_predicate declaration.
 | 
						|
       <LI>  FIXED: meta predicates were not being expanded correctly.
 | 
						|
       <LI>  FIXED: saved state script was not passing arguments to Yap.
 | 
						|
       <LI>  FIXED: go around gcc bug in current_op for hpux machines.
 | 
						|
       <LI>  FIXED: top level abort would crash in hp machines (TR was
 | 
						|
       overwritten).
 | 
						|
       <LI>  FIXED: error messages for op/3.
 | 
						|
       <LI>  FIXED: ord_member/2 in ordsets.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl4:</H2>
 | 
						|
<UL>
 | 
						|
       <LI>  NEW: the evil recordaifnot/3 and recordzifnot/3 are now in
 | 
						|
       the manual.
 | 
						|
       <LI>  FIXED: include ord_union/2 and ord_member/2 in ordsets.
 | 
						|
       <LI>  FIXED: complain about _:G.
 | 
						|
       <LI>  FIXED: allow modules in heads for assert and friends.
 | 
						|
       <LI>  FIXED: allow modules in multifile and dynamic declarations.
 | 
						|
       <LI>  FIXED: send error messages in modules.yap to user_error.
 | 
						|
       <LI>  FIXED: get rid of error message in eraseall.
 | 
						|
       <LI>  NEW: term_variables/2.
 | 
						|
       <LI>  FIXED: directives had broken ensure_loaded/1 for use_module/1.
 | 
						|
       <LI>  NEW: small performance improvements in unification
 | 
						|
       routines (UnifyGlobalCells).
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl3:</H2>
 | 
						|
<UL>
 | 
						|
       <LI>  FIXED: small performance improvements in unification
 | 
						|
       routines.
 | 
						|
       <LI>  FIXED: logical_update semantics were broken in pl2.
 | 
						|
       <LI>  FIXED: findall and friends were broken in pl2.
 | 
						|
       <LI>  FIXED: bind_global within unify_struct
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl2:</H2>
 | 
						|
<UL>
 | 
						|
       <LI>  NEW: static arrays of DB terms.
 | 
						|
       <LI>  NEW: close_static_array and resize_static_array now work
 | 
						|
       over mmapped files.
 | 
						|
       <LI>  FIXED: rename delete_static_array to close_static_array.
 | 
						|
       <LI>  FIXED: improve the manual a little bit. Add info in
 | 
						|
       README to Manual.
 | 
						|
       <LI>  FIXED: support for ISO-style atom_chars/2 and number_chars/2.
 | 
						|
       <LI>  NEW: ISO include/1 directive.
 | 
						|
       <LI>  ISO: ensure_loaded/1 is now a directive (and it cannot be
 | 
						|
       called as a procedure).
 | 
						|
       <LI>  NEW: discontiguous/1 directive.
 | 
						|
       <LI>  NEW: process multifile/1 as a directive.
 | 
						|
       <LI>  FIXED: give warning if multifile procedures are used
 | 
						|
       before multifile declaration.
 | 
						|
       <LI>  FIXED: multifile was very severy broken.
 | 
						|
       <LI>  FIXED: initialize/1 now follows ANSI semantics. We have
 | 
						|
       prolog_initialize/1 for SICStus Prolog code.
 | 
						|
       <LI>  FIXED: don't explode if the compiler finds too many
 | 
						|
       variables or if there is not enough code space to store our code.
 | 
						|
       <LI>  NEW: ISO quoted character sequences (note that this means
 | 
						|
       that '\+' will break now).
 | 
						|
       <LI>  FIXED: remove limit on size of strings and quoted atoms.
 | 
						|
       <LI>  FIXED: [    ] is now parsed as [], like other Prologs do.
 | 
						|
       <LI>  FIXED: read-in clauses predicated by modules
 | 
						|
       (mod:clause).
 | 
						|
       <LI>  FIXED: gcc/HP-UX would generate incorrect code for
 | 
						|
       PredForCode. Use an extra temporary (at) and the probably goes
 | 
						|
       away.
 | 
						|
       <LI>  NEW: add "make install-info", "make info" and "make html".
 | 
						|
       <LI>  FIXED: create a README file mentioning the license, get
 | 
						|
       rid of the INSTALL file for now.
 | 
						|
       <LI>  FIXED: don't shadow S, CP, HB in hppa. They have their
 | 
						|
       own registers.
 | 
						|
       <LI>  FIXED: change x86 back to base address 0x10000000 and
 | 
						|
       tags back to opstags for Linux.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0pl1:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> FIXED: works(?) in HP/UX.
 | 
						|
	<LI> NEW: update_array for dynamic arrays.
 | 
						|
	<LI> FIXED: works in FreeBSD.
 | 
						|
	<LI> FIXED: improvements and additions to configuration scripts
 | 
						|
	<LI> NEW: port to Visual C++ (_MSC_VER)
 | 
						|
	<LI> NEW: major improvements and bug fixes to YAPOR.
 | 
						|
	<LI> CLEANUP: _REG to _
 | 
						|
	<LI> NEW: arrays of bytes and of unsigned bytes.
 | 
						|
	<LI> FIXED: worked a bit on manual.
 | 
						|
	<LI> NEW: resize_static_array/3
 | 
						|
	<LI> NEW: delete_static_array/1
 | 
						|
	<LI> FIXED: ACOW in YAPOR.
 | 
						|
	<LI> FIXED: Error after Error would not notice there was no place
 | 
						|
	to cut back to.
 | 
						|
	<LI> FIXED: SBA in YAPOR.
 | 
						|
	<LI> NEW: version/0 and version/1. Deleted yap_version/1.
 | 
						|
	<LI> NEW: is_mutable/1.
 | 
						|
	<LI> FIXED: recent bug in dif.
 | 
						|
	<LI> SYNCH: with Ricardo Rocha's optyap. SBA is broken.
 | 
						|
	<LI> FIXED: reverse_opcode_lookup table.
 | 
						|
	<LI> NEW: YAP as a library,
 | 
						|
	<UL>
 | 
						|
           <LI> New functions provide an interface for initialising
 | 
						|
	   and calling Yap from external environments. Note that Yap
 | 
						|
	   is still a big chunk.
 | 
						|
	   <LI> Restoring embedded C-functions is now performed by
 | 
						|
	   restore_heap together with InitStaff.
 | 
						|
	   <LI> The code to restore a clause has been updated to use
 | 
						|
	   yamop and GONEXT. The same code does both indices and clauses.
 | 
						|
           <LI> All macros that adjust pointers are now functions,
 | 
						|
           and type-check their arguments.
 | 
						|
           <LI> 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.
 | 
						|
	   <LI> 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.
 | 
						|
           <LI> initialisation code in yap.c was simplified. Several
 | 
						|
	   functions and variables were moved out to init.c. 
 | 
						|
	   <LI> routines that start new goals were moved out of
 | 
						|
	   cdmgr.c to exec.c.
 | 
						|
        </UL>
 | 
						|
	<LI> FIXED: all clauses should terminate with _Ystop, but we
 | 
						|
	just did emit_op instead of a_e. 
 | 
						|
	<LI> NEW: save_program/2.
 | 
						|
	<LI> NEW: save_program/1. Default startup is now through
 | 
						|
	save_program.
 | 
						|
	<LI> FIXED: break should not remove choice-points.
 | 
						|
	<LI> 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.
 | 
						|
	<LI> FIXED: $undefp would call a bad $user_call.
 | 
						|
	<LI> FIXED: bad calculations for walltime.
 | 
						|
	<LI> FIXED: bug with depth_bound_call for not and \+.  
 | 
						|
	<LI> FIXED: execute_goal would not recover registers correctly.
 | 
						|
        <LI> NEW: SICStus compatibility predicates including incore/1,
 | 
						|
        callable/1, and simple/1.
 | 
						|
        <LI> NEW: add arity as an extra argument to _struct functions.
 | 
						|
        <LI> FIXED: uninitialised profiling counters.
 | 
						|
        <LI> FIXED: OPTYap had broken unknown=error.
 | 
						|
        <LI> FIXED: small bug in assembling index code.
 | 
						|
        <LI> FIXED: growheap would not fix trail properly.
 | 
						|
        <LI> NEW: logical update semantics for internal data-base.
 | 
						|
        <LI> CLEANUP: indexed code also has a tag.
 | 
						|
        <LI> FIXED: putenv/2 must allocate static memory.
 | 
						|
        <LI> FIXED: remove duplicate clauses in environ/2.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.2.0:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> NEW: YAP4.2.0 is out
 | 
						|
        <LI> REMOVED: file RELEASE.NOTES
 | 
						|
</UL>
 | 
						|
 | 
						|
<H1 ALIGN=CENTER>Changes in YAP4.1</H1>
 | 
						|
<P>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.19:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> FIXED: phrase/3 had bad call to $t_body.
 | 
						|
        <LI> FIXED: warnings on alpha.
 | 
						|
        <LI> FIXED: make YAP compile on SGI's cc.
 | 
						|
        <LI> ISO-YAP: accept 0o notation for octal integers.
 | 
						|
        <LI> FIXED: rcdifnot would try to unify with NULL return pointer.
 | 
						|
        <LI> FIXED: when/3 did not link Done variables.
 | 
						|
        <LI> FIXED: bad copying of arguments in co-routining.
 | 
						|
        <LI> NEW: first cut at SBA or-parallel execution.
 | 
						|
        <LI> FIXED: YAP version is now in Makefile.
 | 
						|
        <LI> NEW:  alarm/3 (see manual).
 | 
						|
        <LI> FIXED: errno handling is in io.h.
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.18:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> FIXED: debugger would not work after change to call.
 | 
						|
        <LI> FIXED: do not trace !G within debugger.
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.17:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> FIXED: error handler for floats was too enthusiastic in format/3.
 | 
						|
        <LI> FIXED: accept list of dynamic predicates.
 | 
						|
        <LI> NEW: merge new version of Ricardo Rocha's OPTYAP
 | 
						|
        including support for tabulation.
 | 
						|
	<LI> NEW: improve performance of call.
 | 
						|
	<LI> FIXED: trail overflow in heap gc (store_ref_in_dbtable).
 | 
						|
	<LI> FIXED: close fd if mmap fails.
 | 
						|
	<LI> FIXED: IsPrimitiveTerm would succeed on suspended variables.
 | 
						|
	<LI> FIXED: small bug in socket_select.
 | 
						|
        <LI> FIXED: garbage collector would follow old values of
 | 
						|
	multi-assignment variables even if they were not heap
 | 
						|
	pointers.
 | 
						|
	<LI> FIXED: garbage collector was following list of suspended
 | 
						|
	goals as if a variable.
 | 
						|
	<LI> FIXED: call/1 was not importing modules correctly.
 | 
						|
        <LI> 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.
 | 
						|
        <LI> FIXED: garbage in debugger.
 | 
						|
        <LI> FIXED: fix writing \+ (a,b) properly.
 | 
						|
        <LI> NEW: get rid of addresses for the unify() routines. Unify
 | 
						|
	now receives values, as it should, instead of addresses.
 | 
						|
	<LI> 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.
 | 
						|
	<LI> FIXED: get rid of bind_variable.
 | 
						|
	<LI> FIXED: exit_yap was not working (halt).
 | 
						|
	<LI> FIXED: write version number when booting from a saved
 | 
						|
	state.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.16:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> FIXED: don't crash if you're not booting from the
 | 
						|
        standard file (SavedInfo should not assume LookupAtom works).
 | 
						|
        <LI> FIXED: prompt (again).
 | 
						|
        <LI> FIXED: debugging dynamic or source mode procedures would
 | 
						|
        ignore depth limits.
 | 
						|
        <LI> FIXED: -DBP_FREE could lose program counter, if changed
 | 
						|
        by ErCl or ErDBE.
 | 
						|
        <LI> FIXED: global registers could be smashed by the compiler
 | 
						|
        within error handlers (SGI).
 | 
						|
        <LI> FIXED: fix a bug on and thus enable garbage collection of
 | 
						|
        code space.
 | 
						|
        <LI> FIXED: bug in cut_by_y.
 | 
						|
        <LI> FIXED: be less optimistic about when to expand the trail
 | 
						|
        after a sigsegv.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.15:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> FIXED: disable garbage collection of code space.
 | 
						|
        <LI> FIXED: growstack did not know OldH.
 | 
						|
        <LI> FIXED: be conservative about new variables in branches (active_branch).
 | 
						|
        <LI> NEW: change code to artistic license.
 | 
						|
        <LI> FIXED: include errno.h in socket code.
 | 
						|
        <LI> FIXED: strcpy of NULL pointers in sysbits.c.
 | 
						|
        <LI> FIXED: writing \+ (a,b) would not output middle space,
 | 
						|
        confusing the parser.
 | 
						|
        <LI> NEW: initial support for the SBA model (parallelism).
 | 
						|
        <LI> FIXED: make the system more robust when it can't get more
 | 
						|
        memory.
 | 
						|
        <LI> FIXED: recorded with unbounded key was crashing.
 | 
						|
        <LI> CLEANUP: use derefa when we know the possible address for
 | 
						|
        a variable. This avoids reading a memory cell twice.
 | 
						|
        <LI> 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.
 | 
						|
        <LI> CLEANUP: conditions on c-interface.
 | 
						|
        <LI> FIXED: growheap could be called with wrong local stack pointer.
 | 
						|
        <LI> NEW: always_prompt_user/0, for those who hide behind pipes
 | 
						|
        and sockets.
 | 
						|
        <LI> FIXED: bug in frozen/2 and friends.
 | 
						|
        <LI> CLEANUP: use Prolog terms in coroutining, avoid NULL pointers.
 | 
						|
        <LI> FIXED: save/restore was breaking corouting.
 | 
						|
        <LI> FIXED: readline does not work under parallel execution.
 | 
						|
        <LI> CLEANUP: cleanup some constructs so that YAP will compile
 | 
						|
        under lcc again.
 | 
						|
        <LI> CLEANUP: follow choicepoint ordering whenever possible.
 | 
						|
        <LI> FIXED: incorrect detection of overflows in index.c.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.14:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> FIXED: texi2dvi failed on the manual because of incorrect
 | 
						|
        placement of @*.
 | 
						|
        <LI> FIXED: RECOVER_MACHINE_REGS for MIPS in Regs.h had
 | 
						|
        somehow lost an E!
 | 
						|
        <LI> FIXED: expand stacks if effectiveness of garbage
 | 
						|
        collection is below 20%.
 | 
						|
        <LI> FIXED: YAP was not checking for excessive number of
 | 
						|
        labels while assembling.
 | 
						|
        <LI> FIXED: get rid of no in sequential init.
 | 
						|
        <LI> FIXED: bug in checking modules for abolish and friends.
 | 
						|
        <LI> FIXED: with readline, prompt even if stderr is not a
 | 
						|
        tty. Also make sure prompt goes to stderr, not to stdout.
 | 
						|
        <LI> NEW: SICStus Prolog compatible socket interface (see
 | 
						|
        manual, still experimental).
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.13:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> FIXED: Cygnus/getrusage does not work under WIN95.
 | 
						|
        <LI> FIXED: extraneous push in compiling bvmap for either.
 | 
						|
        <LI> FIXED: long printf in heapgc.c
 | 
						|
        <LI> FIXED: extraneous printf in dbase.c
 | 
						|
        <LI> NEW: sync until leftmost in YAPOR.
 | 
						|
        <LI> NEW: sequential predicates in YAPOR.
 | 
						|
        <LI> FIXED: YAPOR in OPTYap now runs queens.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.12:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> FIXED: make sure that when you backtrack to an erased
 | 
						|
        clause you don't get caught by dangling pointers. 
 | 
						|
        <LI> FIXED: check args to arithmetic comparisons are not free. 
 | 
						|
        <LI> FIXED: make sure you only mark an env var as initialised
 | 
						|
        if the instruction refers it for the first time.
 | 
						|
        <LI> FIXED: Error handler depended on pointer to freed code.
 | 
						|
        <LI> FIXED: always fully gc clean the last environment.
 | 
						|
        <LI> FIXED: new dbref gc cleaner could mess with dbqueues.
 | 
						|
        <LI> FIXED: test if YAP can allocate more memory.
 | 
						|
        <LI> FIXED: YAP now makes procedures dynamic after first assert.
 | 
						|
        <LI> 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.
 | 
						|
        <LI> NEW: speedup compact_heap.
 | 
						|
	<LI> FIXED: CheckDBOverflow in MkDBTerm would not reset
 | 
						|
	variables, as it should.
 | 
						|
	<LI> FIXED: recover HB in gc.
 | 
						|
	<LI> NEW: Integer macros for integers that may overflow.
 | 
						|
	<LI> NEW: jump across unmarked cells in downward pass.
 | 
						|
	<LI> NEW: simplify marking longints and doubles.
 | 
						|
	<LI> NEW: small performance improvement in meta-call.
 | 
						|
	<LI> FIXED: make toggle preds robust to meta-calls.
 | 
						|
	<LI> FIXED: bad error handling in evaluable predicates.
 | 
						|
	<LI> NEW: upgrade YAPOR to most recent OPTYAP.
 | 
						|
	<LI> CLEANUP: use the RESET_VARIABLE macro to reset a variable.
 | 
						|
	<LI> FIXED: ITERATIVE_DEEPENING option is now called DEPTH_LIMIT
 | 
						|
	<LI> NEW: simplified autoconf script and Makefile.
 | 
						|
	<LI> FIXED: YAPOR now compiles again and reaches top-level.
 | 
						|
	<LI> CLEANUP: make assembly built-ins accessible as standard
 | 
						|
	predicates. This makes meta-calls somewhat less bulky.
 | 
						|
	<LI> FIXED: YAP could crash while reading in binary files. The
 | 
						|
	problem was that the hash function could return an offset <
 | 
						|
	0.
 | 
						|
	<LI> 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).
 | 
						|
	<LI> NEW: in GC untrail unmarked bindings and reset the pointers.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.11:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> NEW: after several requests, added assert_static and friends.
 | 
						|
	<LI> FIXED: bug in adding spaces while writing X is $VAR(2)+...
 | 
						|
	<LI> NEW: stream aliases.
 | 
						|
	<LI> FIXED: ^C-a now works on PUSH_REGS (eg, X86). 
 | 
						|
	<LI> FIXED: catch could remove other valid catches.
 | 
						|
	<LI> FIXED: several cases of non-compatible ISO error handling.
 | 
						|
	<LI> FIXED: current_input and current_output would fail for
 | 
						|
	instantiated arguments.
 | 
						|
	<LI> FIXED: writing $VAR(X) terms could core dump miserably.
 | 
						|
	<LI> FIXED: initialisation was not protected by a catch/3.
 | 
						|
	<LI> FIXED: system would exit after trying to compile Numeric
 | 
						|
	or DBRef goal. 
 | 
						|
	<LI> NEW: improve performance of arithmetic comparisons by
 | 
						|
	inserting them as ops in abstract machine.
 | 
						|
	<LI> FIXED: meta-call would get lost in call((X,Y)). Callable
 | 
						|
	checking is now ISO (almost).
 | 
						|
	<LI> FIXED: recursive compare was not catching term_exts on
 | 
						|
	second argument to comparison.
 | 
						|
	<LI> FIXED: compilation warning on printing Int in alpha.
 | 
						|
	<LI> 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.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.10:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> FIXED: get rid of ExecuteProlog as used by print/1,
 | 
						|
	execute_goal can do the same.
 | 
						|
	<LI> FIXED: execute_goal should survive garbage collection and/or
 | 
						|
        stack shifting.
 | 
						|
        <LI> FIXED: $undefined succeeded for predicates written in
 | 
						|
	assembly.
 | 
						|
        <LI> FIXED: provide 16 registers (ARG1 to ARG16).
 | 
						|
        <LI> FIXED: some changes to make YAP work without ALIGN_LONGS.
 | 
						|
        <LI> FIXED: old timing bug.
 | 
						|
        <LI> FIXED: bug in generating cut.
 | 
						|
        <LI> FIXED: don't crash if have several errors on the same expression.
 | 
						|
        <LI> FIXED: use strerror instead of sys_errlist.
 | 
						|
        <LI> FIXED: make system more resilient to small ints.
 | 
						|
        <LI> FIXED: system should be more resilient when allocating
 | 
						|
        large chunks of memory.
 | 
						|
        <LI> FIXED: X is cputime should have no rounding problems.
 | 
						|
        <LI> FIXED: silently fail on wrong array accesses.
 | 
						|
        <LI> FIXED: true was not seen as built-in.
 | 
						|
        <LI> FIXED: DEPTH was not always saved correctly in execute_prolog.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.9:</H2>
 | 
						|
<UL>
 | 
						|
        <LI> FIXED: bug in scanner.
 | 
						|
	<LI> 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).
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.8:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> FIXED: random would only work in Linux.
 | 
						|
	<LI> FIXED: better names for array_element/3 and update_array/3.
 | 
						|
	<LI> FIXED: array access now does boundary checking, and fails
 | 
						|
	if you try to access an undefined reference.
 | 
						|
	<LI> NEW: profiling now counts calls to non-profiled
 | 
						|
	predicates, included system built-ins. 
 | 
						|
	<LI> FIXED: profiling now does not need to disable indexing. 
 | 
						|
        <LI> FIXED: predicate_property was returning just the name for
 | 
						|
        unbound calls.
 | 
						|
        <LI> NEW: putenv/2. If you want to start shell scripts.
 | 
						|
        <LI> NEW: YAP now supports 8 bits char sets. The default is iso-latin.
 | 
						|
        <LI> NEW: call_residue/2 now available.
 | 
						|
        <LI> FIXED: serious bug in can_unify: HB was not set to
 | 
						|
        H. Should be no problem with B.
 | 
						|
        <LI> FIXED: trim_trail is not compatible with Multi-Assignment
 | 
						|
	variables.
 | 
						|
	<LI> FIXED: under a few cases code could have problems if some
 | 
						|
	was using a dynamic clause and retracted it.
 | 
						|
	<LI> NEW: improve absmi for coroutining.
 | 
						|
	<LI> FIXED: bug in statistics(runtime,T).
 | 
						|
	<LI> NEW: statics(walltime,T) and internal walltime() function
 | 
						|
	<LI> FIXED: changed code that assumed dir_separator could only
 | 
						|
	be a single character. Some MS-DOS systems accept both slash
 | 
						|
	and backslash.
 | 
						|
	<LI> 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.
 | 
						|
	<LI> NEW: getcwd/1.
 | 
						|
	<LI> FIXED: disallow integer as argument to cd/1 and friends.
 | 
						|
	<LI> FIXED: rand should depend on MAX_RAND; document srandom.
 | 
						|
	<LI> NEW: environ now allows access to a process' environment.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.7:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> FIXED: bug in read_term/singletons. I incorrectly assumed
 | 
						|
	variables were being allocated in order.
 | 
						|
	<LI> FIXED: too much space was being allocated for 64 bit
 | 
						|
	architectures.
 | 
						|
	<LI> FIXED: error handling in data base could collapse.
 | 
						|
	<LI> FIXED: ASP for growheap could be wrong.
 | 
						|
	<LI> FIXED: growheap and growstack forgot about dangling
 | 
						|
	pointers in the trail. 
 | 
						|
	<LI> FIXED: increase margins as garbage collections happens.
 | 
						|
	<LI> FIXED: make recorded and friends restartable for the
 | 
						|
	case there is no space left to copy the new term.
 | 
						|
	<LI> 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.
 | 
						|
	<LI> FIXED: make sure we always have an error handler in the
 | 
						|
	debugger.
 | 
						|
	<LI> FIXED: GC should now work with named dynamic arrays and
 | 
						|
	array extensions. Access to named dynamic arrays now goes
 | 
						|
	through the trail.
 | 
						|
	<LI> FIXED: make arg/3 silently fail on negative or 0 first
 | 
						|
	arguments. Breaks the ISO standard, but seems to be compatible
 | 
						|
	with other Prologs.
 | 
						|
	<LI> FIXED: dequeue could leave dangling pointers to the data-base.
 | 
						|
	<LI> FIXED: bad error handling in arithmetic built-ins.
 | 
						|
	<LI> FIXED: absolute_file_name/2 was buggy.
 | 
						|
	<LI> NEW: extend C-interface to allow calling back Prolog.
 | 
						|
	<LI> FIXED: moved to version 98.
 | 
						|
	<LI> FIXED: variable ppc was causing trouble with Rhapsody.
 | 
						|
	<LI> FIXED: GC should now work with coroutining.
 | 
						|
	<LI> FIXED: coroutining had bug with reference chains.
 | 
						|
	<LI> FIXED: error handler called unexisting procedure $close/2.
 | 
						|
	<LI> FIXED: small bug in unknown/2.
 | 
						|
	<LI> CLEANUP: improve meta-call performance by avoiding
 | 
						|
	unnecessary choice-points.
 | 
						|
	<LI> FIXED: assert and source mode are now aware that modules
 | 
						|
	call meta-calls.
 | 
						|
	<LI> FIXED: libraries should be checked for existence before
 | 
						|
	checking for the files themselves.
 | 
						|
	<LI> 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.
 | 
						|
	<LI> FIXED: BP_FREE didn't do callee save for PREG, possibly
 | 
						|
	corrupting the caller. Core dumped print/1 on X86.
 | 
						|
	<LI> CLEANUP: separate error handling into separate files.
 | 
						|
	<LI> FIXED: RATIONAL_TREES should now work in all built-ins.
 | 
						|
	<LI> FIXED: make sure the GC does not follow invalid trail
 | 
						|
	entries.
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.6:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> 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).
 | 
						|
	<LI> FIXED: complaints while compiling YAP in WIN/NT platform.
 | 
						|
	<LI> FIXED: debugger got confused when quasi-skipping through
 | 
						|
	inline builtins
 | 
						|
	<LI> FIXED: DEPTH_BOUND_CALL was not restoring depth for retry_c.
 | 
						|
 	<LI> 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.
 | 
						|
	<LI> CLEANUP: overflows are now processed within the
 | 
						|
	emulator, not back in the caller.
 | 
						|
	<LI> FIXED: memory allocation during boot could crash returning NULL
 | 
						|
	pointer, system would then crash.
 | 
						|
	<LI> ISO-YAP: many new predicates, major rewrite of manual.
 | 
						|
	<LI> FIXED: debugger should now understand better immediate
 | 
						|
	update semantics (eg, dynamic predicates).
 | 
						|
	<LI> ISO-YAP: all error handling is now ISO style.
 | 
						|
	<LI> FIXED: could not write MIN_INT
 | 
						|
	<LI> ISO-YAP: add Z is float_integer_part(X).
 | 
						|
	<LI> ISO-YAP: add Z is float_fractional_part(X).
 | 
						|
	<LI> ISO-YAP: arg/3 now generates errors.
 | 
						|
	<LI> ISO-YAP: abolish/1 now does errors the YAP way, and
 | 
						|
	only abolishes dynamic procedures. Use abolish/2 to clear
 | 
						|
	static procedures.
 | 
						|
	<LI> break boot.yap file into smaller files.
 | 
						|
	<LI> YAP now compiles well under Linux/Alpha.
 | 
						|
	<LI> X now is called XREGS to avoid problems with Linux/Alpha
 | 
						|
	includes.
 | 
						|
	<LI> Abort now jumps to before the absmi emulator and then
 | 
						|
	does a long cut. This should simplify YapOr, and allow for
 | 
						|
	restricting toplevels. 
 | 
						|
</UL>
 | 
						|
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.5:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> FIXED: MAX_INT on Tags_LowTag was wrong.
 | 
						|
	<LI> NEW: first cut of profiling. Right now, Currently, for
 | 
						|
	static predicates, profiling disables indexing. That should be
 | 
						|
	fixed in the next version.
 | 
						|
	<LI> NEW: source mode debugging is active. Compile with ":-
 | 
						|
	source" and debug/step through all your builtins!
 | 
						|
	<LI> FIXED: major bug in cut_by, since early 4.1 :-(. Affects
 | 
						|
	debugging.
 | 
						|
	<LI> NEW: fetch first op from pred before jumping.
 | 
						|
	<LI> NEW: use SREG to cache A1 for switches and tries.
 | 
						|
	<LI> FIXED: warning messages for SGI CC.
 | 
						|
	<LI> FIXED: warning messages for alphas.
 | 
						|
	<LI> NEW: optimise switch_on_list for the list case.
 | 
						|
	<LI> NEW: WAM registers optimised for MIPS.
 | 
						|
	<LI> FIXED: shadow CP and HB on sparcs. They need every bit of
 | 
						|
	performance we can get them.
 | 
						|
	<LI> FIXED: famous curprio bug in parser, from now on parser
 | 
						|
	backtracks cleanly.
 | 
						|
	<LI> NEW: Got rid of SREG for call-type instructions.
 | 
						|
	<LI> NEW: CPREG in absmi for Suns.
 | 
						|
	<LI> CLEANUP: got rid of obsolete absmi regs.
 | 
						|
	<LI> FIXED: small bug in the Prolog code for unknown/2.
 | 
						|
	<LI> NEW: Small speed improvements for complex absmi
 | 
						|
	instructions.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.4:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> NEW: read_term/3 and new syntax_error option to yap_flag.
 | 
						|
	<LI> FIXED: got rid of fast predicates from compiler.
 | 
						|
	<LI> NEW: Makefile now generates a bootable save state as YAP
 | 
						|
	default.
 | 
						|
	<LI> 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.
 | 
						|
	<LI> NEW: bootable saved states with arguments, accessible
 | 
						|
	though unix(argv(L))).
 | 
						|
	<LI> NEW: optimised code for tests (var/1 and friends) and
 | 
						|
	arithmetic (is/2).
 | 
						|
	<LI> NEW: much faster code for /\, \/, >> and <<.
 | 
						|
	<LI> FIXED: debugger does not go into recorded/3 and friends.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.3:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> NEW: unix(argv(X)).
 | 
						|
	<LI> FIXED: abs complains if int != Int.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.2:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> NEW: saved states now search for $BINDIR/yap.exe to boot.
 | 
						|
	<LI> FIXED: bugs with handling errors.
 | 
						|
	<LI> FIXED: got rid of $recorded/3 for now.
 | 
						|
	<LI> NEW:  generate specialised code for OR, AND, SHIFT LEFT
 | 
						|
	and SHIFT RIGHT.
 | 
						|
	<LI> FIXED: statistics(runtime,_) now does not count GC time,
 | 
						|
	as in other Prologs. statistics(cputime,_) counts everything.
 | 
						|
	<LI> FIXED: time is returned as an integer, not as a float.
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.1:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> CLEANUP: get rid of warnings under Cygnus GCC.
 | 
						|
	<LI> FIXED: Use Windows memory allocation routine, now YAP can
 | 
						|
	recover from saved states for smaller stacks.
 | 
						|
	<LI> CLEANUP: don't use the UNIX define. Use instead configure
 | 
						|
	to say exactly which UNIX feature you need.
 | 
						|
	<LI> FIXED: compiler would not handle correctly unsafe
 | 
						|
	variable from disjunctions.
 | 
						|
	<LI> FIXED: force indexing to ask for more stack if stack runs
 | 
						|
	out. This should help if you have really many clauses.
 | 
						|
	<LI> CLEANUP: clean all error code from C to use the new
 | 
						|
	Error() routine.
 | 
						|
	<LI> NEW: use throw/1 to send system errors.
 | 
						|
	<LI> NEW: catch/3 and throw/1
 | 
						|
	<LI> NEW: load_foreign_file/3 for SunOS4 (tested) and AIX
 | 
						|
	(compiles).
 | 
						|
</UL>
 | 
						|
 | 
						|
<H2 ALIGN=CENTER>Yap4.1.0:</H2>
 | 
						|
<UL>
 | 
						|
	<LI> NEW: memory mapped arrays.
 | 
						|
	<LI> NEW: make garbage collector expand stack quickly to avoid
 | 
						|
		excessive number of GCs.
 | 
						|
	<LI> NEW: do the same for heap overflow detector.
 | 
						|
	<LI> CLEANUP: cleanup readline code for not using strcpy, strlen and
 | 
						|
		friends. Current code was broken for very large input strings.
 | 
						|
	<LI> NEW: sort and friends implemented in C.
 | 
						|
	<LI> NEW: Removed 256B limitation on atom size while parsing.
 | 
						|
	<LI> CLEANUP: Change AllocCodeSpace to return NULL on code failure,
 | 
						|
		make cclause() call growstack on stack failure.
 | 
						|
	<LI> NEW: Static Arrays!
 | 
						|
	<LI> 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.
 | 
						|
	<LI> Got rid of lock_pred and friends. Usage of static predicates is
 | 
						|
		now detected when compilation starts, or when assert
 | 
						|
		is used.
 | 
						|
	<LI> Got rid of hash table in optimise_ce, it wasn't working.
 | 
						|
	<LI> 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.
 | 
						|
	<LI> 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.
 | 
						|
	<LI> Changes to immediate update semantics implementation:
 | 
						|
	<UL>
 | 
						|
		<LI> Entries are now removed from the chain immediately,
 | 
						|
		  instead of only when they are physically deleted.
 | 
						|
		<LI> Each entry has an age (positive if entry is from recordz,
 | 
						|
		  negative if from recorda).
 | 
						|
		<LI> When we backtrack to deleted entries, we search the property
 | 
						|
		  list for entries with younger ages.
 | 
						|
		<LI> When we erase a clause, we don't place a fail in
 | 
						|
		  the clause. Instead, we remove the clause from the
 | 
						|
		  chain immediately.
 | 
						|
        </UL>
 | 
						|
	<LI> NEW:
 | 
						|
		MIPS architecture support in Regs.h and absmi.c.
 | 
						|
	<LI> X86 Speedups: 
 | 
						|
	<UL>
 | 
						|
		<LI> Force opcode prefetching for simple instructions in X86
 | 
						|
		<LI> Cache Y for control instructions in X86
 | 
						|
		<LI> 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.
 | 
						|
		<LI> Cache SREG usage.
 | 
						|
        </UL>
 | 
						|
	<LI> Cleanup:
 | 
						|
		Move AuxSp and AuxTop to REGS
 | 
						|
		Use Aux for emulator PDL
 | 
						|
	<LI> Cleanup: compiler.h
 | 
						|
		Use enum for compiler ops.
 | 
						|
	<LI> NEW: Indexing
 | 
						|
	<UL>
 | 
						|
		<LI> simplify GC and ORP: instructions do not store
 | 
						|
		  intermediate values in global;
 | 
						|
		<LI> unnecessary instructions purged;
 | 
						|
		<LI> new try_tail like trail_head, but jumps to atomic code
 | 
						|
		<LI> switch on types insts after backtracking now look
 | 
						|
		  like retry and have correct clause information for ORP;
 | 
						|
		<LI> switch_on_type talks to switch_on_func through S, and to
 | 
						|
		  switch on cons through A[0]. I_R disappeared.
 | 
						|
        </UL>
 | 
						|
</UL>
 |