| 
	Version 2.3.2 of TOY adds to previous version (2.3.1):  FIXED BUGS - The Linux version did not work for Ubuntu 11.04  Version 2.3.1 of TOY adds to previous version (2.3.0):
  FIXED BUGS - The Linux version did not work. Now, it has been fixed and tested on Ubuntu 6.10, Kubuntu 7.04 (Feisty), and Mandriva Linux 2007 Spring.
  - Bridge unification did not exactly follow theory. Now, it infers from two bridges with the same variable at an end, the binding of the variables at the other ends. The following example illustrates this point.
  With version 2.3.0:
  Toy(R+FD)> X #== RX, Y #== RY, X == Y       { Y -> X }        { X #== RX,         X #== RY }       Elapsed time: 0 ms. sol.1, more solutions (y/n/d/a) [y]?        no       Elapsed time: 0 ms.
  and with the current version:
  Toy(R+FD)>  X #== RX, Y #== RY, X == Y       { Y -> X,         RY -> RX }        { X #== RX }       Elapsed time: 0 ms. sol.1, more solutions (y/n/d/a) [y]?        no       Elapsed time: 0 ms.
 
  - It was possible to enable projection when finite domain and/or real constraint libraries were unloaded.
  - Missing answers involved in reification when projection was enabled. In particular, the modified built-ins are: #>, #<,  #>=, #<=, <, > <=, and >=.  Version 2.3.0 of TOY adds to previous version (2.2.2):
  ENHANCEMENTS - The real and Finite domain libraries can be enabled at the same time, allowing domain cooperation - A communication constraint bridge for domain cooperation has beed added:     (#==) :: int -> real -> bool - Projection for the cooperation among constraint domains is allowed - New commands:    /proj Enables projection between constraint domains    /noproj Disables projection between constraint domains    /tolerance(E) Sets the tolerance of the bridge constraint to E - More examples have been added:    examples/. Uncataloged examples    examples/cooperation Examples for the cooperation of constraints - New chapters in the manual:    Chapter 4. Cooperation of Constraint Domains    Chapter 5. Interfacing T OY with a CLP Finite Domain Solver - Dynamically determining the maximum upper and minimum    lower bounds for finite domains, independent of SICStus version and platform    FIXED BUGS - The built-ins for reals and real constraints mod, div, gcd, round, trunc, floor and ceiling gave uncorrect results, as: Toy> X == mod 10 5 { X -> 0 } Elapsed time: 0 ms. sol.1, more solutions (y/n/d/a) [y]? no Elapsed time: 0 ms. Toy> 0 == mod 10 5 no Elapsed time: 0 ms. - The constraints domain and belongs cleared some constraints in the Herbrand domain  Version 2.3.0 of TOY adds to previous version (2.2.2):
  ENHANCEMENTS
  - Optimization functions have beed added to the library CFLPR:   minimize, maximize :: real -> real, for linear optimization bb   minimize, bb maximize :: real -> [real] -> real, for linear   optimization with integral constraints
  - When the library CLP(R) is activated, the function log/2 is now   handled by the real solver
  - The file miscfd.toy is added to contain useful finite domain   functions
  - More run-time errors due to demandness are handled by means of   exceptions, instead of failures (e.g., belongs, sum, scalar product,   ...)
  - The implementation of several finite domain functions has been   modified, also adding some missing usage mode information
  - New commands:   /prolog(Goal) Executes the Prolog goal Goal   /status       Informs about the loaded libraries   /version      Displays the Toy software version
  - More examples have been added. Moreover, the directory examples   becomes more structured:     examples/.            Uncataloged examples     examples/apifd/.      Program examples for the API FD     examples/cflpfp/.     Program examples for CFLP(FD)     examples/cflpr/.      Program examples for CFLP(R)     examples/debug/.      Debugging examples     examples/failure/.    Programming with failure examples     examples/flp/.        Functional logic programming examples     examples/fp/.         Functional programming examples     examples/h_constr/.   Program examples for Herbrand constraints                           (equality and disequality)     examples/io_file/.    Program examples for the library IO File     examples/io_graphic/. Program examples for the library IO Graphic     examples/lp/.         Logic programming examples     examples/tads/.       Program examples for abstract data types
  - New sections in the manual:   * Release Notes History   * Known Bugs
 
   DEPRECATIONS
  - substract (in misc.toy). See Section CHANGES below
  - wakeoptions. See Section CHANGES below
  - options. See Section CHANGES below
  - newOptions. See Section CHANGES below
 
   CHANGES
  - fd_statistics and fd_statistics' have interchanged their role in   order to adhere to the convention that the prime indicates that   options can be used. The type of fd_statistics' has changed to   statistics -> int
  - substract (in misc.toy) becomes subtract
  - wakeoptions becomes wakeOptions
  - options becomes allDiffOptions
  - newOptions becomes serialOptions
 
   FIXED BUGS
  - The command type did not work on expressions. Fixed
  - User-defined commands as described in section 1.5.5 of User Manual   for version 2.2.2 did not work. Fixed
  - sum and scalar_product were not correctly implemented, giving rise   to type error exceptions. Fixed
  - fd_statistics delivered duplicate solutions. Fixed
  - /nocflpfd did not completely unload the library CFLPFD. Fixed
  - The libraries IO File and IO Graphic could not be unloaded. Fixed
  - When first loading the libraries IO File and IO Graphic, and   depending on the previous state of the system, their functions were   not available at command prompt until a program were compiled. Fixed
  - The data type ioMode was documented as:   data ioMode = read | write | append   but the actual declaration is:   data ioMode = readMode | writeMode | appendMode   Version 2.2.2 of TOY adds to previous version (2.2.1):  ENHANCEMENTS
  - Dyanmic cut optimization. It can be activated using the   /cut command before compiling a program.
  - The debugger now allows programs/goals with constraints over   real numbers. See the example  examples/debug/ladder.toy
  - New finite domain functions and constraints:   * Membership constraints:     subset :: int -> int -> bool         % Domain subset     setcomplement :: int -> int -> bool  % Domain complement     inset :: int -> int -> bool          % Domain member     intersect :: int -> int -> int       % Domain intersection     belongs :: int -> [int] -> bool      % Domain definition   * Propositional constraints:     (#\/) :: bool -> bool -> bool   % Disjunction     (#<=>) :: bool -> bool -> bool  % Equivalence     (#=>) :: bool -> bool -> bool   % Implication   * Arithmetic constraint operators:     (#&) :: int -> int -> int       % Integer remainder
  - More constraints are now reifiable (e.g., sum, scalar_product, ...)
  - Some constraints become more declarative as they do not demand   arguments with known finite types. This is the case, for instance,    of labeling. Now, it produces all the admissible options for labeling.    Consider the following goal: Toy(FD)> domain [X] 0 1, labeling L [X]       {  X -> 0,           L -> []   }        Elapsed time: 110 ms. more solutions (y/n/d) [y]?        {  X -> 1,           L -> []   }        Elapsed time: 0 ms. more solutions (y/n/d) [y]?        {  X -> 0,           L ->  [ bisect ]   }        Elapsed time: 0 ms. more solutions (y/n/d) [y]?        {  X -> 1,           L ->  [ bisect ]   }        Elapsed time: 0 ms. more solutions (y/n/d) [y]?        {  X -> 0,           L ->  [ bisect, ff ]   }        Elapsed time: 0 ms.
  ...
  Up to all the correct answers.
 
  - More examples added to the distribution
  - User Manual updated (draft published)
  - New formatted output
  - Nonlinear real functions revisited. Arguments of nonlinear real functions do not need to be instantiated:   ln, exp, cot, asin, acos, atan, acot, sinh, cosh, tanh, coth, asinh, acosh, atanh, acoth
 
   DEPRECATIONS
  - all_distinct is deprecated since its behaviour is   the same as all_different - all_distinct' is deprecated since its behaviour is   the same as all_different'
 
   CHANGES
  - [fdset] becomes simply fdset. See type declaration in User Manual
 
 
   FIXED BUGS
  - The goal:
  labeling X [Y]
  ran into an infinite loop. Fixed
  - The goal:
  domain [(id X)] 0 1 
  with the program:
  id :: A -> A id A = A
  shows the following error:
  SYSTEM ERROR: type_error(domain([$$susp($id,[_116],_121,_122)],0,1),1,integer,$$susp($id,[_116],_121,_122)) :
  The same situation held for labeling. Fixed.
 
  - Reification. Missing answer: Toy(FD)> domain [X] 0 1, B #<=> (X#=0)       {  X -> 0,           B -> true   }        Elapsed time: 0 ms. more solutions (y/n/d) [y]?        no.       Elapsed time: 0 ms.
  With the current version: Toy(FD)> domain [X] 0 1, B #<=> (X#=0)       {  X -> 0,           B -> true   }        Elapsed time: 0 ms. more solutions (y/n/d) [y]?        {  X -> 1,           B -> false   }        Elapsed time: 0 ms. more solutions (y/n/d) [y]?        no.       Elapsed time: 0 ms.
  - Equality and Inequality constraints missed during processing of scheduling constraints. Fixed
  - Duplicate solutions with scheduling constraints. Fixed
  - Non ground, non FD variables were output as {inf..sup}. Fixed   Version 2.2.1 of TOY adds to previous version (2.2.0): Enhancements: - The set of examples has been extended with a new folder examples/debug    containing examples of buggy programs that can be used for testing the    declarative debugger.
  - The computation tree generated by the declarative debugger is now stored    in the directory JavaTree.  This avoids the creation of auxiliary files in the    directory containing the program to be debugged. Fixed Bugs: - A program as
    data d = c int int   f (c 3) = 4
    yielded an error during compilation (error code 24). Fixed.   Version 2.2.0 of TOY adds to previous version (2.2.1): Enhancements: - The system variable TOYDIR is no longer necessary
  - The answers for a goal are now displayed as two sets, the first one representing   a substitution and the second one a conjunction of constraints. For instance,    a goal like X==5, X/=Y displays the answer:   { X -> 5}   { Y /= 5}   meaning that if X is substituted by 5 and Y is any value different from 5 the goal holds.   However, not all Finite Domain Constraints are shown up to now     - Totality constraints allowed. They can be activated by typing /tot and disabled with /notot
  - The declarative debugger handles programs including equality and disequality constraints
  - Four new (non-declarative) primitives, collect, collectN, once, and fails have been included
    "collect e"  collects in a list all the values obtained when evaluating    the expression e. For instance, a goal like collect (3 // 4 // 5) == R     has one answer { R -> [3,4,5] }. The elements of the list correspond   to all the values V computed for the goal e==V. If e==V   has no answer then "collect e" returns []
    "collectN n e" collects in a list the n first values obtained when    evaluating e. For instance a goal like collectN 2 (3 // 4 // 5) == R   has one answer { R -> [3,4] }. If the e cannot be evaluated to n values   the primitive fails.
    "once e" is equivalent to "head (collectN 1 e)"
    "fails e" returns true if the goal e==V fails, or false if the goal    e==V has some answer. For instance, the goal  fails (head [])==R   has the single answer {R -> true}. In contrast,  fails (head [X|Xs]) == R   has the single answer {R -> false}
  - The system can display statistics about the number of head normal forms,   the system memory or the number of the choice points required by the    underlying Prolog program during a certain computation.  See /statistics    in the help command (displayed by typing /help) to check all the    possibilities   Fixed Bugs: - The finite domain library was not working properly if no program   was compiled after typing /cflpfd. Fixed
  - Fixed an error which involved the combination of disequality and equality   with real numbers. For example after loading the real numbers library   (by typing /cflpr) a goal like X/=1, X==2 was throwing an exception
  - Fixed an error that occurred when combining disequality and equality    constraints of composed terms. For example X/=(1,1), X==(2,2)    was throwing an exception   Version 2.1.0 of TOY adds to previous version (2.0): - Finite Domain Constraints - Enhanced Declarative Debugging - Multiplatform Support (including Windows, UNIX, and Linux) - Executables for Windows 98 and later, and SunOS54  | 
	 |