Release Notes for ILOG Talk 3.2
===============================


Changes since the Talk 3.13 release
+++++++++++++++++++++++++++++++++++

Features
--------

New ports:

  hp_10                 HP 9000/7xx,8xx   HP-UX 10.x     HP C++ A.10.01
  i86_sunos5_4.0        PC i386/486/586   SunOS 5        SunC++ 4.0.1
  i86_linux1.2_gnu2.7   PC i386/486/586   Linux 1.2-2.0  GNU gcc, g++ 2.7.x
  sgi_5.3_4             SGI MIPS          IRIX 5.3       C++ V 4.0
  sparc_4_gnu           Sun SPARC         SunOS 4        GNU gcc, g++ 2.7.x
  sparc_5_gnu           Sun SPARC         SunOS 5        GNU gcc, g++ 2.7.x
  msvc4                 PC i386/486/586   Windows NT     MS Visual C++ 4.0

Talk runtime:

  Regular expression matching functions.

C++ binder:

  The binder now also generates bindings for functions and methods whose
  argument types or result types are classes passed by value or by reference.

  The `application-workspace:' keyword to `bind-cpp-api' implements by-need
  filtering.

Talk development environment:

  `apropos' takes a regular expression.


Other visible changes
---------------------

Ports:

  The port |sgi| has been renamed to |sgi_5.2_3|.

Talk runtime:

  The default stream package is `default' instead of `user'.

  Rational numbers are now always reduced to lowest terms.

  The special floating point number values NaN and Infinity are supported.

  The functions `i-' and `f-' can now be called with 1 or 2 arguments.

  The pretty printer closes its parentheses when printing "...".

  Two `internal.defclass' keywords renamed: The slot option
  `slot-keywords:' has been renamed to `slot-initargs:', the class
  option `metaclass-keywords:' has been renamed to `metaclass-initargs:'.
  [unsupported feature]

C++ binder:

  The binder now generates bindings for global variables and static
  class members.

  You can now use `setf' to set the value of C++ instances' data members.

  The binder now ignores template declarations and member pointer
  declarations, instead of choking on them.

  The binder now generates bindings for the implicitly defined default
  constructors, copy constructors and assignment operators `operator='.

  `bind-cpp-api' has a new option `user-execution:' for explicitly adding
  execution dependencies to user modules.

  The new binding modules and the old ones (generated by Talk 3.13) are
  incompatible.

Talk development environment:

  On Unix, Talk now uses an alternate database implementation. Uses a
  single file `database.db' instead of `database.pag' and `database.dir'.

  Function `load-workspace' renamed to `in-workspaces', argument must
  be a list of symbols.

  Obsolete program units are automatically removed from the default
  workspace when appropriate (i.e. not reachable), instead of
  signalling an error.

  Workspace database files are automatically rebuilt when missing,
  instead of signalling an error.

  Messages issued by the system now quote identifiers and other objects
  like `this one'.

  `update-program-unit' runs two passes, and lets you know if there is
  still more work on exit.

Talk / ILOG Views binding:

  Interface to ILOG Views 2.2.1 (was ILOG Views 2.1 in Talk 3.13).

  New ports: hp_10 and sgi_5.3_4 (see above).


Major bug fixes
---------------

Talk runtime:

  The worst-case performance of hash tables has been improved.

  Bug fixes related to bignums and ratios.

  Bug fixes related to <time> objects.

  (srand) didn't work.

  Constructors on non-structure classes now take user-defined methods
  on `make-instance' into account. [unsupported feature]

  Trying to change the metaclass of a class gives an error, not a
  warning. [unsupported feature]

Talk compiler:

  Generated syntactically incorrect C code for things like
  `(return-from a (f (g x)))'. Fixed.

C++ binder:

  The `bool' type is now handled correctly.

  You can now pass up to 59 arguments to a C++ function or method.

  The binder displays the time used by the "cppparse" program. The
  displayed time was 1000 times too high.

  Bug fixes related to function pointer types and array types.

Talk/Emacs connection:

  Talk now accepts Emacs commands while in a break loop.

  The Talk menus now also work in GNU Emacs 19.31.


Getting Updated
---------------

  There may still be pending bugs in Talk 3.2, we will document
  them as they get discovered.  You get the complete file of currently
  known bugs, and the complete file of bugs fixed, at our majordomo
  list `talk-list'.
  
  You can subscribe to the mailing list by sending mail to
  majordomo@ilog.fr, with an empty subject and the command "subscribe
  talk-list" in the body:
  
     $ echo subscribe talk-list | mail majordomo@ilog.fr 
  
  Or, to get more information:
  
     $ echo help | mail majordomo@ilog.fr
     $ echo info talk-list | mail majordomo@ilog.fr
  
  We're looking forward to hearing from you!
