-------------------------------
Changes since CorbaScript 1.3.4
-------------------------------

MICO changes:
-------------

- Port to the 2.3.6 release.
  To compile CorbaScript, it is needed to type 236 as ORB release number.

  Changed files:
  - INSTALL
  - doc/index.htm
  - doc/FAQ/MICO
  - demo/PORT

OAK changes:
------------

omniORB changes:
----------------

- Add support for the Interface Repository provided by
  the omniifr package available at http://www.factoriax.com/projects/omniifr/

  To start the Interface Repository, CorbaScript executes:
  - the 'omniifr' command if it is available,
  - else the ORBacus's 'irserv' command.

  To load an OMG IDL file into the Interface Repository,
  CorbaScript executes:
  - the 'omniidl' command if the 'ifr' back-end is available,
  - else the ORBacus's 'irfeed' command.

  To destroy an OMG IDL definition from the Interface Repository,
  CorbaScript executes:
  - the 'omniidl' command if the 'ifr' back-end is available,
  - else the ORBacus's 'irdel' command.

  Changed files:
  - orb/omniORB3/envi.ORB.sh
  - orb/omniORB3/envi.ORB.csh
  - INSTALL
  - doc/index.html

  Let's not that orb/omniORB3/envi.ORB.bash and orb/omniORB3/envi.bat
  are NOT updated: Contribution is welcome!

  Thanks to Patrick Decat <pdecat@lfvie.generali.fr>
  and Ferris McCormick <fmccor@inforead.com>
  for providing the appropriate patches.

- Add support for the demo/process demonstration.

  Changed files:
  - demo/process/README
  - demo/process/FactoryClient.cs
  - demo/process/ProcessServiceImpl.cs

  Thanks to Ferris McCormick <fmccor@inforead.com>
  for pointing this out.

- Full port on omniORB 3.0.4.

  Changed file:
  - src/CorbaTools.cpp

  Thanks to Patrick Decat <pdecat@lfvie.generali.fr>
  for providing the appropriate patch.

- Full port on Sun Solaris 2.5 / 7 and gcc 2.95.x.
  New config platform files are:
  * omniORB3_SUN55_GCC295 : Sun Solaris 2.5.x with gcc 2.95.x
  * omniORB3_SUN55_GCC295_shared_libs : Sun Solaris 2.5.x with gcc 2.95.x and
    shared libraries
  * omniORB3_SUN57_GCC295 : Sun Solaris 7 with gcc 2.95.x
  * omniORB3_SUN57_GCC295_shared_libs : Sun Solaris 7 with gcc 2.95.x and
    shared libraries

  Note that new config platform files include the OS version because
  omniORB binaries are placed into OS version specific directories
  (i.e. $OMNIORB_TOP/bin/sun4_sosV_5.7 and $OMNIORB_TOP/bin/sun4_sosV_5.7).

  New files:
  - config/platforms/omniORB3_SUN55_GCC295
  - config/platforms/omniORB3_SUN55_GCC295_shared_libs
  - config/platforms/omniORB3_SUN57_GCC295
  - config/platforms/omniORB3_SUN57_GCC295_shared_libs

  Changed files:
  - INSTALL
  - doc/index.html

  Thanks to Patrick Decat <pdecat@lfvie.generali.fr>
  for providing these new config platform files.

ORBacus changes:
----------------

- Full port on ORBacus 4.1.0.
  To compile CorbaScript, it is needed to type 410 as ORB release number.

  Changed files:
  - INSTALL
  - doc/index.html
  - doc/FAQ/ORBacus
  - demo/PORT
  - orb/ORBacus4/ORB.mak
  - include/CorbaTools.h
  - src/cs_Set_DynAny_with_CS_Object.cpp
  - src/cs_Create_DynAny_with_Frame.cpp

  New file:
  - orb/ORBacus4/ORBacus41.cfg

Orbix changes:
--------------

- Port on Orbix 2000 release 2.0.
  To compile CorbaScript, it is needed to type 20 as ORB release number.

  Changed files:
  - INSTALL
  - doc/index.html
  - config/platforms/Orbix2000_LINUX_GCC295
  - config/platforms/Orbix2000_SUN_CC
  - config/platforms/Orbix2000_WIN_MSVC
  - orb/Orbix2000/ORB.mk
  - orb/Orbix2000/envi.ORB.sh
  - orb/Orbix2000/envi.ORB.csh
  - orb/Orbix2000/envi.ORB.bash
  - include/CorbaTools.h
  - include/system_io.h
  - src/CorbaTools.cpp
  - src/cs_CorbaBasicValue.cpp
  - src/cs_SmartDynAny.cpp
  - demo/PORT

  New file:
  - config/platforms/Orbix2000_SUN_GCC295

- Support for recent CORBA system exceptions and
  add new CorbaScript symbols to refer them.
  * CORBA.TRANSACTION_REQUIRED
  * CORBA.TRANSACTION_ROLLEDBACK
  * CORBA.INVALID_TRANSACTION
  * CORBA.INV_POLICY
  * CORBA.CODESET_INCOMPATIBLE
  * CORBA.REBIND
  * CORBA.TIMEOUT
  * CORBA.TRANSACTION_UNAVAILABLE
  * CORBA.TRANSACTION_MODE
  * CORBA.BAD_QOS

  Changed files:
  - include/CorbaTools.h

- Port on Orbix 2000 release 1.2.1 on Windows 2000.
  New config platform file is Orbix2000_WIN_MSVC

  Changed files:
  - config/platforms/Orbix2000_WIN_MSVC
  - include/CorbaTools.h
  - src/CorbaTools.cpp
  - src/cs_CorbaInterface.cpp
  - src/cs_CorbaDSIObject.cpp
  - orb/Orbix2000/ir_start.bat
  - orb/Orbix2000/ns_start.bat
  - demo/ir/admin_IR.cs
  - demo/PORT
  - doc/index.html
  - INSTALL

  Thanks to Jerome Berclaz <Jerome.Berclaz@ascom.ch>
  for pointing out some problems.

TAO changes:
------------

- Full port on TAO release 1.2 on some Unix and Windows systems.
  To compile CorbaScript, it is needed to type 1200 as ORB release number.

  Changed files:
  - INSTALL
  - doc/index.html
  - demo/PORT
  - orb/TAO-1.2/envi.ORB.sh
  - orb/TAO-1.2/envi.ORB.csh
  - orb/TAO-1.2/envi.ORB.bash
  - orb/TAO-1.2/ir_load.bat
  - orb/TAO-1.2/ir_start.bat
  - src/CorbaTools.cpp

- Correct a compilation problem on Windows MSVC
  around the orb/TAO-1.2/irdestroy.cpp file.

  Thanks to Roland Ziegler <zi@ave-web.de>
  for pointing this problem out.

- Add support for the demo/process demonstration.

  Changed files:
  - include/CorbaTools.h
  - src/CorbaTools.cpp
  - orb/TAO-1.2/ORB.mk
  - orb/TAO-1.2/ORB.mak
  - demo/process/README
  - demo/process/ProcessServiceImpl.cs

- Full port on TAO release 1.1.19 on some Unix and Windows systems.
  To compile CorbaScript, it is needed to type 1119 as ORB release number.

  Changed files:
  - orb/TAO-1.2/ORB.mk
  - orb/TAO-1.2/ORB.mak
  - orb/TAO-1.2/irdestroy.cpp
  - CorbaWeb/README
  - demo/PORT
  - INSTALL
  - doc/index.html
  - doc/FAQ/TAO

  See demo/PORT for information about supported demonstrations.
  For demo/naming, it is required to apply the TAO patch described
  in the doc/FAQ/TAO file.
 
- Use STL io librairies instead of standard io librairies
  when the ACE_HAS_STANDARD_CPP_LIBRARY macro is set.

  Changed files:
  - include/system_io.h
  - orb/TAO-1.2/irdestroy.cpp

  Thanks to Maxim Voronoy <M.Voronoy@telesenskscl.com.ua>
  for providing the appropriate patches.

VisiBroker changes:
-------------------

- Optimize access to the Interface Repository.

  Changed files:
  - include/CorbaTools.h
  - src/CorbaTools.cpp

- Add support for the CORBA::TypeCode::equivalent() operation.

  Changed file:
  - include/CorbaTools.h

- Support for recent CORBA system exceptions and
  add new CorbaScript symbols to refer them.

  The following symbols are only supported on VisiBroker 4.5
  and higher releases.
  * CORBA.TRANSACTION_REQUIRED
  * CORBA.TRANSACTION_ROLLEDBACK
  * CORBA.INVALID_TRANSACTION
  * CORBA.INV_POLICY
  * CORBA.REBIND
  * CORBA.TIMEOUT

  Changed file:
  - include/CorbaTools.h

- Preliminary port on VisiBroker 4.5.
  New config platform files are:
  * VB4_LINUX_GCC295: Linux and GNU C++ Compiler 2.95.x.
  * VB4_SUN_CC: Solaris and SUN C++ Compiler 5.2.
  * VB4_WIN_MSVC: Windows 2000 and MS Visual C++ 5.0/6.0.

  Changed files:
  - config/platforms/VB4_LINUX_GCC295
  - config/platforms/VB4_SUN_CC
  - config/platforms/VB4_WIN_MSVC
  - include/CorbaTools.h
  - src/CorbaTools.cpp
  - orb/VisiBroker4/cssh_install.bat
  - demo/PORT
  - demo/test/TestClient.cs
  - CHANGES
  - INSTALL
  - doc/index.html
  - doc/FAQ/Windows

  Let's note that:
  * passing parameters of an aliased OMG IDL type is not supported, i.e.
    parameters are unaliased to avoid a VisiBroker unmarshalling bug!
  * the demo/ir doesn't work currently due to VisiBroker's Interface
    Repository problems.

  Warning, releases 4.0 and 4.1 are not supported!


CorbaWeb changes:
-----------------

General changes:
----------------

- In the shell module, add the Shell.start() method for starting sub-shells. 

  Changed file:
  - modules/shell.cs

- Support for automatically narrowing TradingService, NotificationService,
  and TypedNotificationService ORB initial references even if there are
  provided by corbaloc URLs, e.g.:

  cssh -ORBInitRef TradingService=corbaloc:iiop:home:port/key
       -ORBInitRef NotificationService=corbaloc:iiop:home:port/key
  ...
  >>> TS = CORBA.ORB.resolve_initial_references("TradingService")
  >>> TS
  CosTrading::Lookup("IOR:...")
  >>> NS = CORBA.ORB.resolve_initial_references("NotificationService")
  >>> NS
  CosNotifyChannelAdmin::EventChannelFactory("IOR:...")

  Let's note that the CosTrading.idl and CosNotifyChannelAdmin.idl
  must be loaded into the Interface Repository used by CorbaScript.

  Changed file:
  - src/cs_Interpreter.cpp

  Thanks to wang junxing <junxing.wang@sbamc.alcatel.com.cn>
  for pointing this out.

- Support for SUN Microsystems Forte 6 C++ 5.2.

  Let's note that at least the following patches must be applied:
   * 108434-02 Shared library patch for C++
   * 108435-01 SunOS 5.8: Shared library patch for 64bit C++
   * 109508-03 C++ 5.2: Patch for Forte Development 6 update 1 C++ compiler
   * 109510-03 Forte Developer 6 update 1: Patch for Debugger

  Changed files:
  - INSTALL
  - doc/index.html

  Thanks to wang junxing <junxing.wang@sbamc.alcatel.com.cn>,
  Scott Davis <scott.davis@dsto.defence.gov.au>, and
  Kevin McNamee <kevin.mcnamee@era.ericsson.se>
  for pointing problems out and the appropriate solution.

- Add instructions to unsubscribe from the goode@univ-lille1.fr mailing list.

  Changed files:
  - README
  - INSTALL
  - doc/index.html

- Include the install-sh script needed to configure the GNU regex package.

  New file:
  - externals/install-sh

  Changed file:
  - config/compile.sh

  Thanks to Patrick Decat <pdecat@lfvie.generali.fr>
  for providing the appropriate patch.


-------------------------------
Changes since CorbaScript 1.3.3
-------------------------------

Warning, the CorbaWeb directory was reorganized:
have a look to the `CorbaWeb changes' section of this file.

MICO changes:
-------------

- Fix a compilation error on Windows/MSVC 6.0

  Changed file:
  - src/cs_CorbaValueType.cpp

- Fix a compilation warning on Linux/gcc 2.95.x

  Changed file:
  - include/CorbaTools.h

- Start support for OMG IDL valuetypes.

  Changed files:
  - include/CorbaTools.h
  - src/CorbaTools.cpp

- Update the doc/FAQ/MICO file to signal patches to apply to
  MICO to support valuetypes in the Interface Repository.
  Have a look doc/FAQ/MICO.
  
- Support for recent CORBA system exceptions and
  add new CorbaScript symbols to refer them.

  The following symbols are only supported on MICO 2.3.5 and higher releases.
  * CORBA.TRANSACTION_REQUIRED
  * CORBA.TRANSACTION_ROLLEDBACK
  * CORBA.INVALID_TRANSACTION
  * CORBA.INV_POLICY

  Changed files:
  - include/CorbaTools.h
  - include/cs_CorbaSystemExceptionType.h
  - src/cs_CorbaSystemExceptionType.cpp 
  - src/cs_CorbaRequest.cpp 
  - src/cs_Interpreter.cpp 

  Thanks to Roger Barnett <rogerb@harlequin.co.uk>
  for pointing these lacks out.

- Port to the 2.3.5 release.
  To compile CorbaScript, it is needed to type 235 as ORB release number.

- Port to the 2.3.4 release.
  To compile CorbaScript, it is needed to type 234 as ORB release number.

- Generate a set of files at the MSVC compilation time for Windows:
  * envi.bat           : must be loaded to set environment variables.
  * cssh_install.bat   : starts the Interface Repository and the Name Service.
  * cssh_deinstall.bat : removes the CorbaScript Configuration Repository.
  * ir_start.bat       : starts the Interface Repository.
  * ir_load.bat        : feeds an OMG IDL file into the Interface Repository.
  * ns_start.bat       : starts the Name Service.

  These bat files allow Windows users to simply manage the CorbaScript running
  environment as they could already do on Gnuwin32 Bash or Unix systems.
  Have a look at the demo/win.bat file which allows one to start demonstrations
  from a Windows command shell.

  To change these generated files, have a look to orb/MICO/ORB.mak and
  orb/MICO/*.bat files.

  Thanks to Winnie Lam <wlam@netpcs.com> and
  Christopher Yuen <christopher.yuen@alcatel.com>
  for pointing this lack out.

- Add an entry into the doc/FAQ/MICO file:
  * Compiling CorbaScript with Cygwin - gcc-2.95.x

  Thanks to Dr. Volker Zell <Dr.Volker.Zell@oracle.com> for pointing this out.

- Add an entry into the doc/FAQ/MICO file:
  * MICO 2.3.3 patches for CorbaScript.

  Thanks to Frank Pilhofer <fp@informatik.uni-frankfurt.de>
  and Rudolf Weber <rfweber@bluewin.de> for pointing this out.

OAK changes:
------------

omniORB changes:
-----------------

- Fix a compilation warning on Linux/gcc 2.95.x

  Changed file:
  - src/CorbaTools.cpp

- Support for recent CORBA system exceptions and
  add new CorbaScript symbols to refer them.

  The following symbols are only supported on omniORB 3.0.3 and higher releases.
  * CORBA.TRANSACTION_REQUIRED
  * CORBA.TRANSACTION_ROLLEDBACK
  * CORBA.INVALID_TRANSACTION
  * CORBA.WRONG_TRANSACTION

  Changed files:
  - include/CorbaTools.h
  - include/cs_CorbaSystemExceptionType.h
  - src/cs_CorbaSystemExceptionType.cpp 
  - src/cs_CorbaRequest.cpp 
  - src/cs_Interpreter.cpp 

  Thanks to Roger Barnett <rogerb@harlequin.co.uk>
  for pointing these lacks out.

- Fix a bug around the management of the CORBA.Object._nil reference.

  Changed files:
  - src/cs_CorbaInterface.cpp

  Thanks to Roger Barnett <rogerb@harlequin.co.uk>
  for pointing this out.

- Full port on omniORB 3.0.3.
  New config platform files are:
  * omniORB3_LINUX_GCC295: Linux and GNU C++ Compiler 2.95.x.
  * omniORB3_LINUX_GCC295_shared_libs: Linux and GNU C++ Compiler 2.95.x
    with shared libraries.
  * omniORB3_SUN_CC: Solaris and SUN C++ Compiler 4.x.
  * omniORB3_WIN_MSVC: Windows 95/NT/2000 and MS Visual C++ 5.0/6.0.

  As omniORB3 doesn't have an Interface Repository then it is needed to
  use the IFR provided by ORBacus.

  To compile CorbaScript, it is needed to type:
  * 303 as ORB release number.
  * the path to the binaries of your ORBacus installation as extra binary path.
  * the path to the libraries of your ORBacus installation as extra library
    path.

  Thanks to Bert Thomas <bert@brothom.nl> for pointing execution problems out.

- Improvement of the CORBA.ORB.run() and CORBA.ORB.shutdown() management.

  Thanks to Roger Barnett <rogerb@harlequin.co.uk> for pointing this out.

ORBacus changes:
----------------

- Preliminary port on ORBacus 4.1.0b1.
  To compile CorbaScript, it is needed to type 410 as ORB release number.

  Changed files:
  - src/CorbaTools.cpp
  - doc/index.html
  - doc/FAQ/ORBacus
  - INSTALL

  This port was not fully tested as ORBacus 4.1.0b1 is a beta release.

- Update the idl/InterfaceRepository.idl file to correctly support
  the lastest Interface Repository interface.

  Thanks to Emmanuel Leguy <Emmanuel.Leguy@lifl.fr>
  for pointing this out.

- Support for recent CORBA system exceptions and
  add new CorbaScript symbols to refer them.

  The following symbols are only supported on ORBacus 3.3.4/4.0.5 and higher releases.
  * CORBA.TRANSACTION_REQUIRED
  * CORBA.TRANSACTION_ROLLEDBACK
  * CORBA.INVALID_TRANSACTION
  * CORBA.INV_POLICY

  The following symbols are only supported on ORBacus 4.0.5 and higher releases.
  * CORBA.CODESET_INCOMPATIBLE
  * CORBA.REBIND
  * CORBA.TIMEOUT
  * CORBA.TRANSACTION_UNAVAILABLE
  * CORBA.TRANSACTION_MODE
  * CORBA.BAD_QOS

  Changed files:
  - include/CorbaTools.h
  - include/cs_CorbaSystemExceptionType.h
  - src/cs_CorbaSystemExceptionType.cpp 
  - src/cs_CorbaRequest.cpp 
  - src/cs_Interpreter.cpp 

  Thanks to Roger Barnett <rogerb@harlequin.co.uk>
  for pointing these lacks out.

- Improve support on ORBacus 4.x / HP-UX 10.20 / aC++ A.01.21
  Use the new config platform file OB4_HP_aCC.

  Thanks to Rudolf Koeniger UB/EZ3 <r.koeniger@alcatel.de>
  for pointing compilation problems out.

- Improving implicit narrowing when using corbaloc URLs (or IMR's IORs)
  to denote CORBA Object references. Now, the OMG IDL interface can be
  automatically discovered by CorbaScript, e.g.:

  >>> o = CORBA.Object("corbaloc:iiop:host:port/NameService")
  >>> o
  CosNaming::OBNamingContext("IOR:.....")

  Changed files:
  - include/cs_CorbaObjectRef.h
  - src/cs_CorbaObjectRef.cpp
  - src/cs_CorbaDSIReference.cpp
  - src/cs_CorbaInterface.cpp
  - include/CorbaTools.h
  - src/CorbaTools.cpp

  Thanks to Kevin McNamee <qkename@era.ericsson.se>
  for pointing CorbaWeb's use case out.

- Update generated envi.ORB.sh and envi.ORB.csh files
  to always start the ORBacus Interface Repository and Name Service
  even if CorbaScript is used to access VisiBroker servers.

  Changed files:
  - orb/ORBacus3/envi.ORB.bash
  - orb/ORBacus3/envi.ORB.csh
  - orb/ORBacus3/envi.ORB.sh
  - orb/ORBacus4/envi.ORB.bash
  - orb/ORBacus4/envi.ORB.csh
  - orb/ORBacus4/envi.ORB.sh
  - config/CorbaScript.mk
  - config/CorbaScript.mak

  Thanks to Kevin McNamee <qkename@era.ericsson.se> for pointing this out.

- Full port on ORBacus 4.0.5.
  To compile CorbaScript, it is needed to type 405 as ORB release number.

- Full port on ORBacus 3.3.4.
  To compile CorbaScript, it is needed to type 334 as ORB release number.

- Full port on ORBacus 4.0.4.
  To compile CorbaScript, it is needed to type 404 as ORB release number.

- Full port on ORBacus 3.3.3.
  To compile CorbaScript, it is needed to type 333 as ORB release number.

- Port on ORBacus 4.0.3 / HP-UX 10.20 / aC++ A.01.21
  Use the new config platform file OB4_HP_aCC.

  Thanks to Eckehard Schaefer <eckehard.schaefer@alcatel.de>
  for providing the appropriate config platform file.

- Full port on ORBacus 4.0.3.
  To compile CorbaScript, it is needed to type 403 as ORB release number.

- Full port on ORBacus 4.0.2.
  To compile CorbaScript, it is needed to type 402 as ORB release number.

- Full port on the 3.3.2 release.
  To compile CorbaScript, it is needed to type 332 as ORB release number.

- Full port on ORBacus 4.0.1.
  To compile CorbaScript, it is needed to type 401 as ORB release number.

  Thanks to Phil May <PM@datcon.co.uk> for pointing problems.

- Port on ORBacus 4.0 / OSF / DEC C++ 6.2-024 compiler.
  See the new config platform file: OB4_OSF_cxx

  Thanks to Hesse Helge <HHesse@PSI.de> for its helps during this port.

- The THE_USED_ORB_IS_ORBacus macro has been renamed to
  THE_USED_ORB_IS_ORBacus3 or THE_USED_ORB_IS_ORBacus4
  according to the used ORBacus release.

Orbix changes:
--------------

- Port on Orbix 2000 release 1.2.

  Changed files:
  - orb/Orbix2000/ORB.mk
  - orb/Orbix2000/ORB.mak

  Thanks to Scott Davis <scott.davis@dsto.defence.gov.au>
  for providing the appropriate patch.

- Port on Orbix 2000 release 1.0.

- New item in the doc/FAQ/Orbix file
  * Running CorbaScript on top of Orbix 2000 release 1.0

TAO changes:
------------

- Full port on TAO release 1.1.18 on some Unix and Windows/NT systems.
  To compile CorbaScript, it is needed to type 1118 as ORB release number.

  Changed files:
  - orb/TAO-1.2/ORB.mk
  - orb/TAO-1.2/ORB.mak
  - demo/PORT

- Add the CORBA2_TypeCode_member_label macro to wrap
  calls to the CORBA::TypeCode::member_label() operation.
  In the CORBA spec., this operation returns a copy of the member label.
  But unfortunatly, TAO does not return a copy currently.
  
  Changed files:
  - include/CorbaTools.h
  - include/cs_SmartTypeCode.h
  - src/CorbaTools.cpp
  - src/cs_CorbaBasicValue.cpp
  - src/cs_CorbaType.cpp

- Support OMG IDL unions on TAO 1.1.18 and higher releases.

  Changed files:
  - demo/PORT
  - demo/test/TestClient.cs

- Don't anymore link cssh with TAO_IORManip and TAO_IORTable
  librairies. This was not required because they are not used.

  Changed files:
  - orb/TAO-1.2/ORB.mk
  - orb/TAO-1.2/ORB.mak

  Thanks to Jeff Parsons <parsons@cs.wustl.edu>
  for pointing this out.

- Add support for the CORBA::TypeCode::equivalent() operation.

  Changed file:
  - include/CorbaTools.h

- Add an entry in the file doc/FAQ/TAO:
  * TAO 1.1.17 patches for CorbaScript

  The following patches must be applied to TAO 1.1.17
  in order to correct bugs around the DynAny initialization
  and to correctly run CorbaScript demonstrations.

- Support for recent CORBA system exceptions and
  add new CorbaScript symbols to refer them, i.e.:
  * CORBA.TRANSACTION_REQUIRED
  * CORBA.TRANSACTION_ROLLEDBACK
  * CORBA.INVALID_TRANSACTION
  * CORBA.INV_POLICY
  * CORBA.CODESET_INCOMPATIBLE
  * CORBA.REBIND
  * CORBA.TIMEOUT
  * CORBA.TRANSACTION_UNAVAILABLE
  * CORBA.TRANSACTION_MODE
  * CORBA.BAD_QOS

  The following symbols are only supported on TAO 1.1.17 and higher releases.

  Changed file:
  - include/CorbaTools.h

- Port on TAO release 1.1.17 on some Unix and Windows/NT systems.
  New configuration platform files for compiling are:
  * TAO_1_2_LINUX_GCC295: Linux and GNU C++ Compiler 2.95.x.
  * TAO_1_2_LINUX_GCC295_shared_libs: Linux and GNU C++ Compiler 2.95.x
                                      with shared libraries.
  * TAO_1_2_SUN_CC: Solaris and SUN C++ Compiler 4.2.
  * TAO_1_2_SUN_GCC295: Solaris and GNU C++ Compiler 2.95.x.
  * TAO_1_2_SUN_GCC295_shared_libs: Solaris and GNU C++ Compiler 2.95.x
                                    with shared libraries.
  * TAO_1_2_WIN_MSVC: Windows 95/NT and MS Visual C++ 5.0/6.0.

  Warning previous TAO releases lower than 1.1.17 are not supported by
  these new configuration platform files.

  To compile CorbaScript, it is needed to type 1117 as ORB release number.

  Changed files:
  - INSTALL
  - config/common.mk
  - config/CorbaScript.mak
  - config/compileVC5.bat
  - config/compileVC6.bat
  - include/CorbaTools.h
  - include/cs_SmartDynAny.h
  - src/cs_SmartDynAny.cpp
  - src/cs_CorbaDSIObject.cpp
  - src/cs_CorbaDSIReference.cpp
  - src/cs_Set_DynAny_with_CS_Object.cpp
  - src/cs_Create_DynAny_with_Frame.cpp
  - src/cs_CorbaBasicValue.cpp
  - src/cs_DisplayDynAny.cpp
  - src/cs_SmartDynAny.cpp
  - src/cs_Interpreter.cpp
  - src/CorbaTools.cpp
  - idl/TypeCode.idl
  - idl/InterfaceRepository.idl
  - demo/PORT
  - demo/event/ECTools.cs
  - doc/index.html
  - doc/FAQ/TAO
  - doc/FAQ/Windows

- Change and rename configuration platform files in directory config/platforms:
  * TAO_SUN_CC to TAO_1_1_SUN_CC
  * TAO_SUN_GCC295 to TAO_1_1_SUN_GCC295
  * TAO_WIN_MSVC to TAO_1_1_WIN_MSVC

  Warning, these configuration platform files must only be used with TAO release 1.1.

- Rename the directory orb/TAO to orb/TAO-1.1

VisiBroker changes:
-------------------

- Add an entry into the doc/FAQ/VisiBroker file:
  * Known problem with OMG IDL unions.

  Thanks to Damien Toledo <dtoledo@jetstream.com> and
  Sachidanand Singh <ssingh@jetstream.com> for pointing this out.

- Start the port on VisiBroker 4.x for Linux/Solaris/Windows NT.
  The platform files are VB4_LINUX_GCC295, VB4_SUN_CC, VB4_WIN_MSVC.

  Thanks to Kevin McNamee <qkename@lmera.ericsson.se>
  for pointing compilation problems out.

- The CorbaScript 'sys.ORB' variable is equal to "VisiBroker3" or "VisiBroker4"
  according to the used VisiBroker release.

- The THE_USED_ORB_IS_Visibroker macro has been renamed to THE_USED_ORB_IS_VisiBroker3.
  The THE_USED_ORB_IS_VisiBroker4 macro has been added.

- The orb/Visibroker directory has been renamed to orb/VisiBroker3.
  The config/platforms/VB_HP_aCC file has been renamed to VB3_HP_aCC.
  The config/platforms/VB_SGI_CC file has been renamed to VB3_SGI_CC.
  The config/platforms/VB_SUN_CC file has been renamed to VB3_SUN_CC.
  The config/platforms/VB_SUN_GCC295 file has been renamed to VB3_SUN_GCC295.
  The config/platforms/VB_WIN_MSVC file has been renamed to VB3_WIN_MSVC.

CorbaWeb changes:
-----------------

- Fix POST requests decoding to work correctly on Linux.
  Changed file: CorbaWeb/modules/HttpServer.cs

- Add support for corbaloc, corbaname, file, relfile, etc. URL formats.
  These URL format can be given as argument to the IOR asked by the
  CorbaWeb Main Menu.

- Fix a bug when accessing a CORBA object for which
  the OMG IDL interface was not fed into the Interface Repository.

  Previously, CorbaWeb displays:

   The requested action view
   Exception raised: < NotFound: method `describe_interface' in
   CORBA::Object("IOR:00000000000000010000000000000000") >

  Now CorbaWeb displays:

   OMG IDL for IDL:........ 
   must be loaded into the Interface Repository used by CorbaWeb! 
   Else CorbaWeb could not automatically generate HTML Forms for
   CORBA::Object("IOR:......")

  Thanks to Sebastien Blanc <Sebastien.Blanc@usa.alcatel.com>
  for pointing this out.
 
- Add the CorbaWeb/modules directory which now contains
  the CorbaWeb script modules.

- Move the CorbaWeb/CorbaWeb.cs and CorbaWeb/HttpServer.cs files
  into the CorbaWeb/modules directory.

- Add the CorbaWeb/bin directory which contains the following scripts
  to administrate a CorbaWeb HTTP Server:
  * envi.CorbaWeb.sh:	environment for Unix shells (sh, bash, ...).
  * envi.CorbaWeb.csh:	environment for Unix C-shells (csh, tcsh, ...).
  * corbaweb_install:	install the CorbaWeb environment.
  * corbaweb_deinstall:	deinstall the CorbaWeb environment.
  * corbaweb_start:	start the CorbaWeb HTTP Server.
  * corbaweb_stop:	stop the CorbaWeb HTTP Server
  * CorbaWebHTTPServer.cs: the CorbaWeb HTTP Server main script.

  Have a look at the CorbaWeb/README file for more information.

- Rename the CorbaWeb/cw.cs file to CorbaWeb/bin/CorbaWebHTTPServer.cs.
  * Add new command line arguments:
    The -rootdir option to set the base working directory.
    The -pidfile option to save the PID into a file.
   * Save the process's PID in a file if required.
   * Signal an error if the TCP/IP port for the HTTP server is already used.
   * The HTTP server configuration code is moved to
     the CorbaWeb/demo/CorbaWeb.cs file.
     This allows a clean separation between the CorbaWeb server core
     and the configuration of the demonstration.
     Now, several configurations could be defined.

- Add the CorbaWeb/demo directory which now contains the CorbaWeb
  demonstration. This allows a clean separation between the CorbaWeb
  core and its demonstration.

- Move the CorbaWeb/actions, CorbaWeb/cgi-bin, CorbaWeb/cssp,
  CorbaWeb/html, CorbaWeb/icons, and CorbaWeb/servlet directories
  into the CorbaWeb/demo directory.

- Add the CorbaWeb/demo/CorbaWeb.cfg file which contains the CorbaWeb
  HTTP Server configuration for the demonstration.

- Add scripts in the CorbaWeb/demo directory to start and stop
  the CorbaWeb demonstration:
  * start.sh:	start CorbaWeb and various demonstration servers.
  * stop.sh:	stop CorbaWeb and various demonstration servers.

  Thanks to Franck Lantres <franck.lantres@isr.thomson-csf.com>
  for pointing this out.

- Remove the CorbaWeb/init_cw.sh, CorbaWeb/run_all.sh,
  CorbaWeb/start_cw.sh, and CorbaWeb/start_demo.sh files
  because new provided scripts are more useful.

- Runs correctly with ORBacus 3.3.4 / 4.0.5 and omniORB 3.0.3 on Solaris OS.

- Update the CorbaWeb/README file to describe how using the CorbaWeb environment.

General changes:
----------------

- Add the '_m' attribute to all OMG IDL union instances, i.e.
  this new attribute returns the current union member.

  Changed file:
  - src/cs_CorbaBasicValue.cpp

- Add links in the doc/index.html file to commercial CorbaScript
  distributor sites:
  * The Primary Interface Corporation's CORBA Explorer product
    includes CorbaScript: http://www.primaryinterface.com
  * Vertel Corporation distributes the CORBA Explorer product
    including CorbaScript: http://www.vertel.com/products/corbaexplorer.asp

- Add the CORBA Scripting Language Specification 1.0.
  Have a look to the doc/OMG_formal_01-06-05.pdf file.

- Remove the doc/OMG_ptc_00-08-03.pdf file.

- Generate a Windows bat script (i.e. the nssh.bat file)
  to start the CorbaScript's Naming Service Shell easily.

  Changed file:
  - config/CorbaScript.mak
  - demo/win.bat

  Added file:
  - scripts/nssh.bat

- Fix compilation problems on Sun Sparc Solaris 8 (32 and 64 bits),
  Sun Forte 6 update 1 and GNU 2.95.3 C++ compilers.

  Changed files:
  - include/cs_SmartDynAny.h
  - src/cs_SmartDynAny.cpp
  - src/cs_CorbaFixedValue.cpp

  Thanks to Regis Jarde <regis.jarde@bcv01y01.vz.cit.alcatel.fr>
  for pointing problems out.

- Fix arithmetic over OMG IDL fixed values.
  e.g. on top of MICO:
  >>> money = CORBA.Fixed.create(9,2)
  >>> s=money(100.00)
  >>> UST = CORBA.Fixed.create(3,2)
  >>> ust = UST("0.16")
  >>> u=s*ust 
  >>> u
  fixed<12,4>(00000016.0000)
  >>> u=money(s*ust)
  >>> u
  fixed<9,2>(0000016.00)

  Changed files:
  - src/cs_CorbaFixedType.cpp
  - src/cs_CorbaFixedValue.cpp

  Thanks to Rudolf Weber <rfweber@tesionmail.de>
  for providing patches.

- Add to the new 'Class' and 'Proc' symbols.
  The 'Class' symbol refers to the meta-type of any class objects.
  The 'Proc' symbol refers to the meta-type of any proc objects.
  e.g.:
  >>> class A { proc __A__(self) {} }
  >>> A._type == Class
  true
  >>> A.__A__._type == Proc
  true

  Changed files:
  - src/os_Class.cpp
  - src/os_Proc.cpp

  Thanks to Roger Barnett <rogerb@harlequin.co.uk>
  for pointing these introspection lacks out.

- Update the idl/TypeCode.idl file to define the CORBA_TypeCode macro
  to the CORBA::TypeCode value by default.

  Thanks to Kevin McNamee <qkename@lmera.ericsson.se>
  for pointing this out.

- Add the lastest OMG IDLscript Specification.
  Have a look to the doc/OMG_ptc_00-08-03.pdf file.

- Update the modules/NSTools.cs file and the nssh script to:
  - allow case insensitive and abbreviated commands, e.g.
    h or H or Help or HELP for help
  - catch and display all CORBA exceptions.

- Update the modules/shell.cs to:
  - allow quoting any command arguments (i.e. enclosed between " ")
    e.g. command "an argument" "other argument"
  - the COMMANDS array can specify optional and repeated arguments
    by using [] and ... notation respectively ; this is used to
    check for minimum as well as maximum numbers of arguments
    allowed on a command line.
  - 3 optional boolean parameters have been appended to the shell
    constructor ; these control whether to permit the user to enter:
    i.  case insensitive commands
         - allow the user to enter list or LIST or List for list
    ii. abbreviated commands
         - allow the user to enter li for list, if it is unambiguous
    iii. commands with a sub-command keyword
        - support commands of the form  show line, show paragraph,
          show file.
    The default values for these parameters are set to support
    the previous shell behaviour.
    The sub-command handling is perhaps the least useful generally ;
    note that it does not distinguish between a sub-command and
    a command argument !

  Thanks to Roger Barnett <rogerb@harlequin.co.uk> for its contribution.

- Add a helper script to display a short header for any CorbaScript modules.
  Have a look to the scripts/cshead.cs file.

  Thanks to Serge Du <du@lal.in2p3.fr> for its contribution.

- Fix a bug around passing inout parameters in local CORBA invocations.
  Now, the value field of the holder containing the inout parameter is
  correctly set after calls. Moreover, before calls, the value field of
  out parameters is set to the default value according to the parameter type.

  Changed files:
  - src/cs_CorbaDSIReference.cpp
  - src/cs_CorbaDSIObject.cpp

  Thanks to Christopher Oliver <coliver@mminternet.com>
  for pointing this out.

- Fix CORBA system exception management around the CORBA.ORB object,
  e.g. if the resolve_initial_references() method throws a CORBA
  system exception then it is converted into a CorbaScript exception
  and the engine is not blocked as previously.

  $ bin/cssh -ORBInitRef NameService=corbaloc::unknown:10000/NameService
  CorbaScript 1.3.4 (Mar 16 2001) for ORBacus 4.0.5 for C++
  Copyright 1996-2001 LIFL, France
  >>> NS = CORBA.ORB.resolve_initial_references("NameService")
  Exception: System exception `COMM_FAILURE'
  Reason: no such host is known
  Locality: exception has been generated locally
  Completed: no
  Minor code: 0x4f4f000e (gethostbyname() failed)
    File "stdin", line 1 in ???
  >>>
  >>> 1 + 1
  2

  Changed files:
  - src/cs_Interpreter.cpp
  - src/cs_CorbaObjectRef.cpp

  Thanks to Kevin McNamee <qkename@era.ericsson.se>
  for pointing this out.

- Change how the Sleep() function is wrapped on Windows.
  The new approach then picks up the appropriate calling
  convention for Sleep when wrappers/LibC.c is compiled.

  Changed files:
  - wrappers/LibC.c
  - modules/posix.cs

  Thanks to Roger Barnett <rogerb@harlequin.co.uk>
  for providing the appropriate patch.

- Add a new _repid attribute to any CORBA object reference.
  This attribute provides the repository ID stored into the IOR.
  E.g. on ORBacus:
  >>> ns = CORBA.ORB.resolve_initial_references("NameService")
  >>> ns._repid
  "IDL:ooc.com/CosNaming/OBNamingContext:1.0"

  Changed files:
  - include/cs_CorbaObjectRef.h
  - src/cs_CorbaObjectRef.cpp
  - src/cs_CorbaInterface.cpp

- Update the CorbaScript mailing list information into the 
  doc/index.html file, i.e. add URLs for Web access and archives.

- Update all demonstration Unix shell scripts to set
  the CS_CONFIG_HOMEDIR variable to the $HOME/CS_for_DEMO
  directory instead of the /tmp/ORB one.
  This allows multiple users to start simultaneously
  demonstrations on the same host without having conflits.

  Thanks to Kevin McNamee <qkename@era.ericsson.se> for pointing this out.

- Change the CORBA.CompletionStatus symbol to CORBA.completion_status
  for compliance with the CORBA 2.4 specification, e.g.:
  >>> CORBA.completion_status
  < OMG-IDL enum CORBA::completion_status { COMPLETED_YES, COMPLETED_NO, COMPLETED_MAYBE }; >
  >>> CORBA.UNKNOWN
  < OMG-IDL exception CORBA::UNKNOWN {
       unsigned long minor;
       CORBA::completion_status completed;
  }; >
  >>> CORBA.UNKNOWN.completed
  < OMG-IDL enum CORBA::completion_status { COMPLETED_YES, COMPLETED_NO, COMPLETED_MAYBE }; >
  >>> e = CORBA.UNKNOWN()
  >>> e.completed
  CORBA::completion_status.COMPLETED_MAYBE
  >>> e = CORBA.UNKNOWN(100,CORBA.completion_status.COMPLETED_NO)
  >>> e.completed
  CORBA::completion_status.COMPLETED_NO

  Changed files:
  - include/CorbaTools.h
  - include/cs_CorbaType.h
  - src/CorbaTools.cpp
  - src/cs_CorbaSystemExceptionType.cpp
  - src/cs_CorbaType.cpp
  - src/cs_CorbaSystemExceptionValue.cpp
  - src/cs_Interpreter.cpp
  - demo/test/TestImpl.cs
  - demo/test/test23/TestImpl.cs

  Thanks to Roger Barnett <rogerb@harlequin.co.uk> for pointing this out.

- Support OMG IDL values as keys in dictionaries, e.g.:
  >>> d = { CORBA.Long(1): "Hello" }
  >>> d.containsKey(CORBA.Long(1))
  true
  >>> d[CORBA.Long(1)]
  "Hello"

  Have a look into the demo/various_examples/IDLvaluesAsDictionaryKeys.cs file.

  Changed files:
  - include/CorbaTools.h
  - src/CorbaTools.cpp
  - include/cs_SmartDynAny.h
  - src/cs_SmartDynAny.cpp
  - include/cs_CorbaBasicValue.h
  - src/cs_CorbaBasicValue.cpp

  Thanks to Janusz Szpilewski <janusz.szpilewski@vz.cit.alcatel.fr>
  and Simon Kennedy <skennedy@authentic8.com>
  for pointing this out once again as this was a long time bug;-)

- Fix a memory leak when CORBA::Any values are displayed or
  converted to strings, e.g.:
  >>> import posix
  >>> posix.system("ps -ly | grep cssh")
  >>> for i in range(1,10000) p = (CORBA.Any(true))._toString();
  >>> posix.system("ps -ly | grep cssh")
  will increase memory usage in CorbaScript 1.3.3.

  Changed file:
  - src/cs_DisplayDynAny.cpp

  Thanks to Sebastien Brugalieres <sebastien.brugalieres@nmu.alcatel.fr>
  for pointing this out.

- Support for multiple sessions avoiding to stop the Interface Repository
  and the Name Service already used by another session.

  A session counter is stored in the CS_CONFIG_HOMEDIR directory that
  is incremented every time a session is started (cssh_install) and is
  decremented every time a session is stopped (cssh_deinstall).
  The CS_CONFIG_HOMEDIR would then only be removed when the counter
  reaches zero. 

  Changed files:
  - config/base_envi.ORB.sh
  - config/base_envi.ORB.bash
  - doc/user_guide.html

  Warning: Support for multiple sessions is only available for
  Unix shells (e.g. sh, bash, etc) NOT for C-shells (e.g. csh, tcsh).

  Thanks to Kevin McNamee <qkename@era.ericsson.se>
  for providing support for multiple sessions.

- Add an entry into the doc/FAQ/FAQ file:
  * How convert strings to values?

  Thanks to Peter Wahl <Peter.Wahl@alcatel.de>,
  Rich Edwards <edwardr@codonics.com>,
  Bert Thomas <bert@brothom.nl>, and
  Roger Barnett <rogerb@harlequin.co.uk>
  for pointing this out.

- Update config/compileVC5.bat and config/compileVC6.bat files.

- This release is required to script deployments in the OpenCCM platform.
  Have a look to http://corbaweb.lifl.fr/OpenCCM/index.html

- Better support for OMG IDL valuetypes.

- Correction of an important memory leak around aliased OMG IDL types.

  Thanks to Roger Barnett <rogerb@harlequin.co.uk>
  for pointing this out, i.e.
  this optimizes the displaying (and the _toString() method) of large
  OMG IDL sequences of sequences of aliased shorts.

- Correction of OMG IDL files contained into the idl directory
  to allow multiple includes of these files.
 
  Thanks to Paul Labrogere <Paul.Labrogere@alcatel.fr> for pointing this out.

- Correction in the implementation of range objects, e.g.

  >>> for i in range(20,0,21) { println(i) } # now display nothing.
 
  This feature is illustrated in the demo/various_examples/LoopWithRange.cs file.

  Thanks to Roger Barnett <rogerb@harlequin.co.uk> for pointing this out.

- Add the internal function '_check_servant' to check if a servant
  could potentially implement an OMG IDL interface, e.g.

  >>> class EmptyServantClass { proc __EmptyServantClass__(self) {} }
  >>> servant = EmptyServantClass()
  >>> CosNaming.NamingContext._check_servant(servant)
  Warning: The servant object has not a 'bind' procedure implementing
           < OMG-IDL operation void CosNaming::NamingContext::bind (in Name n, in Object obj) raises(...); >
  ...
  false

  >>> import CosNamingImpl
  >>> servant = CosNamingImpl.NamingContextImpl()
  >>> CosNaming.NamingContext._check_servant(servant)
  true

  This feature is illustrated in the demo/various_examples/CheckServant.cs file.

  Thanks to Andreadis Dimitris <Dimitris_Andreadis-dandre01@email.mot.com>
  for pointing this out.

- Add the new command line option -p to the CorbaScript engine.
  This allows one to pass parameters to an interactive scripting session
  (or to an initialization script), e.g.

  unix> cssh -p arg1 arg2 arg3
  >>> sys.arg
  ["-p", "arg1", "arg2", "arg3"]
 
  Thanks to Roger Barnett <rogerb@harlequin.co.uk>
  for providing the appropriate patch.

- Minor corrections in the config/compileVC6.bat and
  config/CorbaScript.mak Makefile for Windows.

- Compile the `regex' library in shared library mode on SunOS and GNU GCC.
  This avoids some library relocation errors.

  Thanks to Marvin Allen Wolfthal <maw@ziplink.net> for pointing this out.

- Add two entries into the doc/FAQ/FAQ file:
  * How access environment variables from CorbaScript?
  * How access command-line arguments from a non interactive script?

  Thanks to Staffan Falk <Staffan.Falk@emw.ericsson.se> for pointing this out.

- Allow the instantiation of OMG IDL structs, unions, arrays,
  and valuetypes without setting the value for each field, e.g.:

  >>> MyStruct
  < OMG-IDL struct MyStruct { long l; double d; string s; }; >
  >>> MyStruct()
  MyStruct(0,0,"")
  >>> MyUnion
  < OMG-IDL union MyUnion switch (short) {
       case 1: long l;
       case 2: double d;
       case 3: string s;
  }; >
  >>> MyUnion()
  MyUnion(1,0)
  >>> MyArray
  < OMG-IDL typedef MyStruct[3] MyArray; >
  >>> MyArray()
  MyArray(MyStruct(0,0,""),MyStruct(0,0,""),MyStruct(0,0,""))

  This allow one to firstly instantiate a constructed type and set its
  fields in a second time. The fields of instantiated types are set to
  their default values (0 for integer types, empty strings, etc).

  Warning this only works on ORBs compliant with CORBA 2.3!
  This is already supported on ORBacus 4.x and MICO 2.3.x.
  Future ports will be done ASAP.

  Warning this rule is not defined in the OMG IDLScript specification
  and this will be raised as an issue in the future OMG IDLScript RTF!

  Thanks to Chris Oliver <coliver@mminternet.com> for suggesting this.

- Remove a memory leak when scripts receive null CORBA object references.

  Thanks to Bert Thomas <bert@brothom.nl> for pointing this out.

- Add a tutorial describing how to access dynamic C libraries from CorbaScript,
  write new wrapper libraries and package them as script modules.

  Have a look into the doc/FAQ/Dynamic_C_Libraries file.

- Add the new SMTP module providing a Simple Mail Transfer Protocol
  implementation.

  Have a look in the modules/SMTP.cs file and its example procedure.

  Thanks to Bert Thomas <bert@brothom.nl>
  for providing the preliminary version of this module
  and porting it on Windows systems.

- Add the new time module:
  * add the TimeDate class wrapping the standard struct tm.
  * add currentSeconds(), currentMicroseconds(), currentMilliseconds(),
    currentDate(), ctime(), and secondsToString() functions.

  e.g:
  >>> import time
  >>> time.currentSeconds()
  963594786
  >>> time.currentDate()
  "Fri Jul 14 19:13:17 2000"
  >>> [ time.currentMilliseconds(), time.currentMicroseconds()]
  [577938, 577938435]

  Have also a look at the modules/time.cs example procedure.

  Thanks to Bert Thomas <bert@brothom.nl> and 
  Krishnamoorthy Shanmugam <Krishnamoorthy_s@inf.com>
  for pointing out the lack of time/date functions.
  Thanks to Davide Mora <d_mora@yahoo.com> for pointing
  compilation problems on Microsoft Visual C++. 
  Thanks to Rudolf Weber <rfweber@bluewin.de> for pointing
  compilation problems on Linux. 

- Update the LIBC module:
  * some cosmetic changes.
  * add the MemoryBlock base class for managing memory blocks.
  * add more comments.
  * add the _DynamicLibraryExtensions dictionary.
  * add the getDynamicLibraryExtension() function.
  * add the loadWrapperLibrary() function.

- Minor correction in generated envi.ORB.csh files allowing one
  to set the CSPATH variable before loading these files.

  Thanks to Gaetan Scotto di Apollonia <Gaetan.Scotto-Di-Apollonia@lifl.fr>
  for pointing this out.

- Add attributes to exceptions to obtain the line and file where
  the exception is thrown, e.g.:
  >>> try {
        unknown_symbol()
      } catch(e) {
        println(e._file, ':', e._line)
      };
  stdin:1
  
  Thanks to Bruno Robin <Bruno.Robin@alcatel.fr>
  for pointing this feature out.

- Add a preliminary support for fixed OMG IDL 2.3 types,
  e.g.:
  >>> Money
  < OMG-IDL typedef fixed<9,2> Money; >
  >>> m = Money("1000.0")
  >>> m
  Money(1000.0)
  >>> Money("1000.0001")
  Money(1000.00)
  >>> Money("text")
  Exception: < exception: Invalid fixed value syntax >
    File "stdin", line 1 in ???
  >>> Money("100000000000.09")
  Exception: < exception: Invalid fixed value >
    File "stdin", line 1 in ???
  >>> ft = Money.content_type()
  >>> ft
  < OMG-IDL fixed<9,2>; >
  >>> ft.fixed_digits()
  9
  >>> ft.fixed_scale()
  2

  Have also a look into the demo/test/test23 directory
  and demo/various_examples/fixed.cs file.

  This support has been tested on MICO 2.3.1 and ORBacus 4.x.
  Other configurations will be tested as soon as possible.

  This new feature will be completed during next months to support:
  * arithmetic over fixed values (partially done).

  Thanks to Rudolf Weber <rfweber@bluewin.de>
  for its initial contribution.

- Update Makefiles to use the GNU C compiler for dynamic C libraries
  when compiling CorbaScript with the GNU C++ compiler.

  Thanks to David Lancaster <djl@ecs.soton.ac.uk> for pointing this out.

- Correct coerxion problems around operators on CORBA.Float and
  CORBA.Double values. e.g.:
  >>> f = CORBA.Float(1.1)
  >>> f + 1
  2.1
  >>> f + f
  2.2
  >>> d = CORBA.Double(1.1)
  >>> d + 1
  2.1
  >>> d + d
  2.2

  Thanks to Bert Thomas <bert@brothom.nl> for pointing this out.

- Avoid to crash when the IOR of the Interface Repository is invalid.

  Thanks to Albert Zhou <zhou@qtera.com> for pointing this out.

- Allow scripts to call C functions contained into dynamic libraries
  with CORBA string parameters, e.g.:
  >>> import posix
  >>> posix.system( CORBA.String("ls") )

  Thanks to Bert Thomas <bert@brothom.nl> for pointing this out.

- Update the CorbaScript's User Guide (file doc/user_guide.html)
  to describe how access administration CorbaScript commands on Windows systems.

  Thanks to Leonid Kuzmin <leonid.kuzmin@ausys.se> for pointing this out.

- Add a preliminary support for long long, unsigned long long,
  long double, wchar and wstring OMG IDL 2.3 basic types,
  e.g.:
    >>> CORBA.LongLong(-100)
    CORBA::LongLong(-100)
    >>> CORBA.ULongLong(100)
    CORBA::ULongLong(100)
    >>> CORBA.LongDouble(3.1415)
    CORBA::LongDouble(3.1415)
    >>> CORBA.WChar('c')
    CORBA.WChar('c')
    >>> CORBA.WString("Hello world!")
    CORBA.WString("Hello world!")

  Have also a look into the demo/test/test23 directory.

  This support has been tested on MICO 2.3.1, ORBacus 4.x, VisiBroker 3.3
  on gcc 2.95/SunOS, SunCC 4.2/SunOS and Microsoft Visual C++ 6.0.

  Known problems are:
  * Long doubles are not supported by Microsoft Visual C++.
  * Long doubles are badly supported by VisiBroker 3.3 (alignment problems).
  * wchar and wstring are badly printed on gcc 2.95 and MSVC.
 
  Other configurations will be tested as soon as possible.

  This new feature will be completed during next months to support:
  * lexical literals, e.g. L1000 or L"Hello".
  * arithmetic over long long values.

  Thanks to Thierry Bezecourt <Thierry.Bezecourt@globeid.com>,
  Alexander Taranov <tay@jet.msk.su>,
  Davide Mora <d_mora@yahoo.com>,
  Ingomar Otter <Ingomar.Otter@PASSO.DE>,
  Frederik Hansen <fhansen@bellesystems.com>,
  Eric Oursel <eric.oursel@serfrance.fr>,
  Sachin Mudholkar <sachinm@lucent.com>,
  Sachidanand Singh <ssingh@jetstream.com>
  for pointing this out.

- Minor cosmetic changes in Makefiles, i.e.
  The THE_USED_ORB_IS_X and THE_USED_ORB_RELEASE=N definitions
  are moved from orb/*/ORB.mk files to the config/common.mk file
  and from orb/*/ORB.mak files to the config/CorbaScript.mak file.


-------------------------------
Changes since CorbaScript 1.3.2
-------------------------------

MICO changes:
-------------

- Correction for invalid anonymous_sequence and anonymous_array displaying
  in demo/test/.

  As this is not a CorbaScript bug ;-), this need to apply the provided
  patches for MICO 2.3.1 contained into the doc/FAQ/MICO file.

  Thanks to Johnson Chan <Johnson.Chan@savillemail.com> for pointing this out.

- Handle OMG IDL bounded strings.
  e.g.
  >>> string10
  < OMG-IDL typedef string<10> string10; >
  >>> string10("hello")
  string10("hello")

  As this is not a CorbaScript bug ;-), this need to apply the provided
  patches for MICO 2.3.1 contained into the doc/FAQ/MICO file.

  Thanks to Bert Thomas <bert@brothom.nl> and
  Johnson Chan <Johnson.Chan@savillemail.com> for reporting the problem.

- Generate the envi.ORB.sh file to start demonstrations on Windows.

- Add the doc/FAQ/MICO file to list Frequently Asked Questions such as
  * MICO 2.2.7 patches for CorbaScript.
  * MICO 2.3.1 patches for CorbaScript.

OAK changes:
------------

omniORB2 changes:
-----------------

- Full port on omniORB2.8.0 on Windows/NT with MS Visual C++ 5.0/6.0.
  New config platform file: omniORB2_WIN_MSVC

  As omniORB2 doesn't have an Interface Repository then it is needed to
  use the IFR provided by ORBacus 3.x.

  To compile CorbaScript, have a look into:
  * the doc/FAQ/Windows file for compilation information
  * the doc/FAQ/omniORB2 file for omniORB2 specific information

  Following files are generated at the MSVC compilation time:
  * envi.ORB.sh        : must be loaded to set GNU Bash environment variables.
  * envi.bat           : must be loaded to set Windows environment variables.
  * ORBacus.cfg        : contains the ORBacus's IFR initial reference.
  * cssh_install.bat   : starts the Interface Repository and the Name Service.
  * cssh_deinstall.bat : removes the CorbaScript Configuration Repository.
  * ir_start.bat       : starts the Interface Repository.
  * ORBacusIFR.bat     : runs the ORBacus's Interface Repository and saves its IOR.
  * ir_load.bat        : feeds an OMG IDL file into the Interface Repository.
  * ns_start.bat       : starts the Name Service.
  * cssh.exe	       : runs the CorbaScript engine.

  These bat files allow Windows users to simply manage the CorbaScript running
  environment as they could already do on Gnuwin32 Bash or Unix systems.
  Have a look at the demo/win.bat file which allows one to start demonstrations
  from a Windows command shell.

  To change these generated files, have a look to orb/omniORB2/ORB.mak and
  orb/omniORB2/*.bat files.

- Add the doc/FAQ/omniORB2 file to list Frequently Asked Questions such as
  * Compiling CorbaScript on top of omniORB2.
  * Running CorbaScript on omniORB2/Windows.

ORBacus changes:
----------------

- Full port on the 4.0 release on some Unix and Windows/NT systems.
  The beta 4.0 releases are not supported anymore!
  New configuration platform files for compiling are:
  * OB4_LINUX_GCC295: Linux and GNU C++ Compiler 2.95.x.
  * OB4_LINUX_GCC295_shared_libs: Linux and GNU C++ Compiler 2.95.x with shared libraries.
  * OB4_SUN_GCC295: Solaris and GNU C++ Compiler 2.95.x.
  * OB4_SUN_GCC295_shared_libs: Solaris and GNU C++ Compiler 2.95.x with shared libraries.
  * OB4_SUN_CC: Solaris and SUN C++ Compiler 5.x.
  * OB4_WIN_MSVC: Windows 95/NT and MS Visual C++ 5.0/6.0.

  To compile CorbaScript, it is needed to type 400 as ORB release number.

  Known problems:
  * On WinNT, CorbaWeb does not work correctly!

- The CorbaScript 'sys.ORB' variable is equal to "ORBacus3" or "ORBacus4"
  according to the used ORBacus release.

- The orb/ORBacus directory has been renamed to orb/ORBacus3.
  The orb/ORBacus4 directory has been created.

- Generate a set of files at the MSVC compilation time for Windows:
  * envi.bat           : must be loaded to set environment variables.
  * ORBacus.cfg        : contains initial service references.
  * cssh_install.bat   : starts the Interface Repository and the Name Service.
  * cssh_deinstall.bat : removes the CorbaScript Configuration Repository.
  * ir_start.bat       : starts the Interface Repository.
  * ir_load.bat        : feeds an OMG IDL file into the Interface Repository.
  * ns_start.bat       : starts the Name Service.

  These bat files allow Windows users to simply manage the CorbaScript running
  environment as they could already do on Gnuwin32 Bash or Unix systems.
  Have a look at the demo/win.bat file which allows one to start demonstrations
  from a Windows command shell.

  To change these generated files, have a look to orb/ORBacus3(4)/ORB.mak and
  orb/ORBacus3(4)/*.bat files.

- Full port on the 3.3.1 release on Unix and Windows/NT systems.
  To compile CorbaScript, it is needed to type 331 as ORB release number.

  On ORBacus 3.3.1/WinNT:
  * CorbaWeb is been successfully tested.
, * No more assertion in SelectReactor::unregisterHandler().

- Add the doc/FAQ/ORBacus file to list Frequently Asked Questions such as
  * Which release number do I need to use to compile CorbaScript?
  * Linking problems with the unknown JTC library.
  * ORBacus 3.3 patches for CorbaScript.

- Full port on the 3.3 release on Unix and Windows/NT.
  To compile CorbaScript, it is needed to type 330 as ORB release number.

- Corrections for compiling and executing on HP-UX B.10.20 A systems
  with HP ANSI C++ B3910B A.01.15.
  Modified files:
  * config/platforms/OB3_HP_aCC
  * wrappers/wrappers.mk
  * wrappers/LibSocket.c
  * modules/LIBC.cs
  * modules/socket.cs

  Now the LIBC module, socket module, CorbaWeb, demo/linked, and demo/component work well.

  Thanks to Stephane Haulbert <Stephane.Haulbert@alcatel.fr>
  and Thierry Beigbeder <thierry.beigbeder@alcatel.fr> for
  providing appropriated patches.

Orbix changes:
--------------

- Add the doc/FAQ/Orbix file to list Frequently Asked Questions such as
  * CorbaScript and Orbix 3.x compatibilities.

TAO changes:
------------

- The release 1.1.1 can not be supported due to some important changes
  around the TAO's Interface Repository stubs (see the doc/FAQ/TAO file).

- Don't send multicast requests when starting a CorbaScript engine.

- Fix a memory cleanup bug when existing from a CorbaScript engine.

- Full port on TAO 1.1 on Windows/NT with MS Visual C++ 5.0/6.0.
  New config platform file: TAO_WIN_MSVC

  As TAO doesn't have an Interface Repository then it is needed to
  use the IFR provided by ORBacus 3.x.

  To compile CorbaScript, have a look into:
  * the doc/FAQ/Windows file for compilation information
  * the doc/FAQ/TAO file for TAO specific information
  To compile CorbaScript, it is needed to type 1100 as ORB release number.

  Following files are generated at the MSVC compilation time:
  * envi.ORB.sh        : must be loaded to set GNU Bash environment variables.
  * envi.bat           : must be loaded to set Windows environment variables.
  * ORBacus.cfg        : contains the ORBacus's IFR initial reference.
  * cssh_install.bat   : starts the Interface Repository and the Name Service.
  * cssh_deinstall.bat : removes the CorbaScript Configuration Repository.
  * ir_start.bat       : starts the Interface Repository.
  * ORBacusIFR.bat     : runs the ORBacus's Interface Repository and saves its IOR.
  * ir_load.bat        : feeds an OMG IDL file into the Interface Repository.
  * ns_start.bat       : starts the Name Service.
  * cssh.exe	       : runs the CorbaScript engine.

  These bat files allow Windows users to simply manage the CorbaScript running
  environment as they could already do on Gnuwin32 Bash or Unix systems.
  Have a look at the demo/win.bat file which allows one to start demonstrations
  from a Windows command shell.

  To change these generated files, have a look to orb/TAO/ORB.mak and
  orb/TAO/*.bat files.

- Port on TAO 1.1 on Solaris/Sun C++ and gcc 2.95.1 compiler.
  To compile CorbaScript, it is needed to type 1100 as ORB release number.

- The doc/FAQ/TAO file to list Frequently Asked Questions such as
  * Why is the TAO 1.1.1 release not supported?
  * Compiling CorbaScript on top of TAO.
  * Running CorbaScript on TAO/Windows.
  * Known problems.

  Thanks to Serge Shumilov <shumilov@cs.uni-bonn.de> for reporting problems.

VisiBroker changes:
-------------------

- Generate a set of files at the MSVC compilation time for Windows:
  * envi.bat           : must be loaded to set environment variables.
  * cssh_install.bat   : starts the Interface Repository and the Name Service.
  * cssh_deinstall.bat : removes the CorbaScript Configuration Repository.
  * ir_start.bat       : starts the Interface Repository.
  * ir_load.bat        : feeds an OMG IDL file into the Interface Repository.
  * ns_start.bat       : starts the Name Service.

  These bat files allow Windows users to simply manage the CorbaScript running
  environment as they could already do on Gnuwin32 Bash or Unix systems.
  Have also a look at the doc/user_guide.html file.

  To change these generated files, have a look to orb/Visibroker/ORB.mak and
  orb/Visibroker/*.bat files.

- Add the doc/FAQ/VisiBroker file to list Frequently Asked Questions such as
  * using the VisiBroker location service.

General changes:
----------------

- Change the config/compile.sh script.
  Now, this script asks for the ORB package install path prefix.

  Thanks to David Roche <david@watchmark.com>
  for pointing this simplification out.

- Changes in the regex module:
  * Allow its importation from CorbaWeb on Windows.
  * Currently, this module is not fully ported on Windows, it is
    just simulated.

  Thanks to Mike Zurer <mike@coactive.com> for pointing this out.

- Fix the generated MIME content type of CorbaWeb servlet examples
  for Internet Explorer.

  Thanks to Mike Zurer <mike@coactive.com> for pointing this out.

- Correction of the generated envi.ORB.sh file for GNU Bash on Windows.
  Avoid the error around the CSPATH variable when loading this file twice.

  Thanks to Mike Zurer <mike@coactive.com> for pointing this out.

- Correction to correctly receive object references created by URL.

- Raise the new BadStringSize exception when creating OMG IDL bounded strings
  with a bad string length.
  e.g.
  >>> string3
  < OMG-IDL typedef string<3> string3; >
  >>> string3("hello")
  Exception: < BadStringLength: the length of "hello" must be equal to or less than 3 >
    File "stdin", line 1 in ???

  Thanks to Bert Thomas <bert@brothom.nl> and
  Johnson Chan <Johnson.Chan@savillemail.com> for pointing this out.

- Update the doc/user_guide.html file.

- Add the doc/FAQ/Windows file to list Frequently Asked Questions such as
  * compiling CorbaScript with Microsoft Visual C++.

  Thanks to Erik Johannes <ejohannes@oresis.com> and
  Sachin Mudholkar <sachinm@lucent.com> for asking information.

- Raise the new BadRange exception when creating range objects
  with a range increment equals to zero.
  e.g.
  >>> range(0,10,0)
  Exception: < BadRange: increment must be != 0 >
    File "stdin", line 1 in ???

  Thanks to Rudolf Weber <rfweber@bluewin.de> for signaling this problem
  and providing the appropriate patch.

- Correction to allow the creation of CORBA.Any data containing CORBA.Anys.
  e.g.
  >>> CORBA.Any(1)
  CORBA::Any(CORBA::Long(1))
  >>> CORBA.Any(CORBA.Any(1))
  CORBA::Any(CORBA::Any(CORBA::Long(1)))
  >>> CORBA.Any(CORBA.Any(CORBA.Any(1)))
  CORBA::Any(CORBA::Any(CORBA::Any(CORBA::Long(1))))

  Thanks to Armin Stranjak <armin.stranjak@fer.hr> for reporting this problem.

- Add checks at the creation time of OMG IDL data.
  e.g.
  >>> CORBA.Long()
  Exception: < BadArgumentNumber: CORBA::Long needed=1 given=0 >
    File "stdin", line 1 in ???
  >>> CORBA.Long(1,2)
  Exception: < BadArgumentNumber: CORBA::Long needed=1 given=2 >
    File "stdin", line 1 in ???
  >>> CORBA.Long(1)
  CORBA::Long(1)

- Correction to correctly display nil object references contained
  into structs, arrays, sequences, etc.

- Call a finalization method when instances are destroyed by the CorbaScript engine.
  e.g.
  >>> class A {
        proc __A__(self) { println("An A is instanciated.") }
        proc finalize(self) { println("An A is finalized.") }
      }
  >>> a = A()
  An A is instanciated.
  >>> a = Void
  An A is finalized.

  The finalize() method is optional, it is only provided to allow one to
  release external allocated resources (files, sockets, DBs, etc.)
  An instance is finalized when there are no more reference to it.
  If an instance is connected to an interface (i.e. by CORBA.ORB.connect),
  it will be finalized only if it is explicitly disconnected
  (i.e. by CORBA.ORB.disconnect).

  Thanks to Bert Thomas <bert@brothom.nl> for reporting this lack.

- Add a new demonstration into the demo/process directory.
  This demonstration illustrates a CORBA process factory service
  and accessing objects by URL.

- Add the doc/FAQ/FAQ file to list Frequently Asked Questions such as
  * How to set the port of CorbaScript servers and the object key of
    CORBA objects implemented with CorbaScript?
  * How can CorbaScript be embedded into my C++ program?
  * How can I exit from CorbaScript?


-------------------------------
Changes since CorbaScript 1.3.1
-------------------------------

Experimental:
-------------

- Integration of the GNU Readline Library (not completed :-().

New ports:
----------

- Port on Orbix 2000 beta 2 on Solaris/Sun C++.
  New config platform files: Orbix2000_SUN_CC and Orbix2000_LINUX_GCC295

- Port on TAO (from 1.0.9, to 1.0.13) on Solaris/Sun C++ and gcc 2.95.1 compiler.
  New config platform files: TAO_SUN_CC and TAO_SUN_GCC295

  As TAO doesn't have an Interface Repository then it is needed to
  use the IFR provided by ORBacus. Moreover it is needed to compile
  the TAO library with Interface Repository stubs.
  cd $TAO_ROOT/tao
  make exceptions=1 interface_repo=1 __your_options__

  To compile CorbaScript, it is needed to type:
  * 1009 (or 1010 ... or 1013) as ORB release number.
  * the path to the binaries of your ORBacus installation as extra binary path.
  * the path to the libraries of your ORBacus installation as extra library
    path.

  All demonstrations work excepts demo/event.

  Known problems:
  * marshaling/unmarshaling of OMG IDL Unions.
  * polling deferred requests (only on TAO 1.0.11 and 1.0.12).

- Full port on omniORB2.8.0 on Solaris/Sun C++ compiler and Linux/egcs.
  New config platform files: omniORB2_SUN_CC and omniORB2_LINUX_EGCS

  As omniORB2 doesn't have an Interface Repository then it is needed to
  use the IFR provided by ORBacus.

  To compile CorbaScript, it is needed to type:
  * 280 as ORB release number.
  * the path to the binaries of your ORBacus installation as extra binary path.
  * the path to the libraries of your ORBacus installation as extra library
    path.

- Port on the gcc 2.95.1 C++ compiler.

MICO changes:
-------------

- Port to the 2.3.1 release. To compile CorbaScript, it is needed to type
  231 as ORB release number.

  The MICO 2.3.1 release corrects the CORBA::TRANSIENT exception
  on demo/event.

- Port on Windows 95/98/NT and MS Visual C++ 5.0/6.0.
  New config platform file: config/platforms/MICO_WIN_MSVC

  Thanks to Thomas Graefenhain <tgraefenhain@wosys.de> for this port.

- Port to the 2.3.0 release. To compile CorbaScript, it is needed to type
  230 as ORB release number.

OAK changes:
------------

- Full port on the 5.3.4 release. To compile CorbaScript,
  it is needed to type 534 as ORB release number.

ORBacus changes:
----------------

- Full port on OSF1 V4.0 with GNU GCC 2.7.2. See the new configuration platform
  file config/platforms/OB3_OSF_GCC.

  Thanks to Rodolphe Reau <Rodolphe.Reau@alcatel.fr> for providing this.

- Full port on the 4.0b2 release on Solaris/gcc 2.95.1
  Use same plaform configuration files than with ORBacus 3.x (i.e. OB3_* files).
  To compile CorbaScript, it is needed to type 400 as ORB release number.

  Need to apply some patches on ORBacus 4.0b2 as discuted in the ORBacus
  mailing list to run all demonstrations.

- Minor correction to support the old IO library provided by
  MS Visual C++ 6.0 on Windows/NT.

  Thanks to Armin Stranjak <armin.stranjak@fer.hr> for pointing this out.

- Changes for compiling on HP-UX systems with aCC A.01.15.

  Thanks to Pierrick Louapre <Pierrick.Louapre@nmu.alcatel.fr> for
  reporting problems and for providing some patches.

- Full port on the 3.2.1 release on Unix and Windows/NT.
  To compile CorbaScript, it is needed to type 321 as ORB release number.

- Full port on the 3.2 release on Unix and Windows/NT.
  To compile CorbaScript, it is needed to type 320 as ORB release number.

Visibroker changes:
-------------------

- Port on gcc 2.95.1 for Sun Solaris. See the new configuration platform file
  config/platforms/VB_SUN_GCC295.

  Thanks to Sergio Novelli <s.novelli@sol-tec.it> for helping us to do this port.

- Changes for compiling on VisiBroker 3.3.x, HP-UX systems with aCC A.01.15.
  Modified files:
  * config/platforms/VB_HP_aCC
  * wrappers/wrappers.mk
  * include/std_types.h
  * include/system_io.h
  * src/os_Interpreter.cpp
  * src/os_Module.cpp
  * src/cs_Interpreter.cpp
  * modules/LIBC.cs
  * modules/socket.cs
  * modules/regex.cs

  Thanks to Estelle Cappelle <estelle.cappelle@vx.cit.alcatel.fr> for reporting
  problems and Michael Eisele <Michael.Eisele@orthogon.de> for providing some
  patches.

  As we don't have HP-UX machines, thanks in advance to all your reports.

- Correction of various problems in demo/test.

  Thanks to Hampel Markus <Markus.Hampel@erl9.siemens.de> for pointing this out.

- Only on Windows, CorbaScript tries at its starting time to bind to the
  Name Service. So now to use the Name Service with CorbaScript:
  - start the Visibroker OSAgent,
  - start the Interface Repository,
  - load the CosNaming.idl file into the IFR,
  - start the Name Service, and
  - start CorbaScript.

General changes:
----------------

- Add on Windows OS a wrapper for the sleep function in the posix module.

  >>> import posix
  >>> posix.sleep(1) # sleep one second.

  Thanks to Aubert Guillaume <AUBERTG@thmulti.com> for pointing this out.

- Generate an Unix shell script, called nssh, to easily start the Naming Service Shell.

  unix> source bin/envi.ORB.sh
  unix> nssh
  Naming Service Shell 1.3.2
  For instructions, type 'help'.
  NameService> 

- Correction of a major bug around implicite connections management.
  The Event Service demonstration isn't going to throw a CORBA::COMM_FAILURE exception.

  Thanks to Rudolf Weber <rfweber@bluewin.de> for pointing this out.

- Correction of minor bugs around the CORBA.ORB.disconnect function.

  Thanks to Jean-Francois Roos <Jean-Francois.Roos@lifl.fr> for pointing this out.

- Correction of a bug around aliased interfaces as defined in the
  CosTrading Service. e.g.

    // OMG IDL
    module M {
      typedef Object AliasedObject;
      interface I {
        AliasedObject get_objref();
      };
    };

  Thanks to Lubomír Markoviè <markovic@informatics.muni.cz>
  for pointing this out.

  On ORBacus 3.2.1, you must apply the following patch in the
  OB-3.2.1/ob/src/library/Any.cpp file:

  CORBA_Boolean
  CORBA_Any::operator>>=(to_object v) const
  {
  // OLD CODE
  //    if(type_ -> kind() == CORBA_tk_objref)
  // NEW CODE
      CORBA_TypeCode_var tc = OBGetOrigType(type_);
      if(tc -> kind() == CORBA_tk_objref)
  //
      {
	OBObjAny* objAny = (OBObjAny*)value_;
	assert(objAny);
	v.val = objAny -> b;
	return true;
      }
      else
	return false;
  }

- Correction of a bug around accessing to union's member labels.
  e.g.
    >>> E
    < OMG-IDL enum E { none, some, all }; >
    >>> UE
    < OMG-IDL union UE switch (E) {
         case E.some: string data;
    }; >
    >>> UE.member_label(0)
    E.some

- Handle union values with discriminator which denotes no field.
  e.g.

    >>> u = UE(E.some)
    Exception: < BadArgumentNumber: UE needed=2 given=1 >
      File "stdin", line 1 in ???
    >>> u = UE(E.some,"hello")
    >>> u
    UE(E.some,"hello")
    >>> u._d
    E.some
    >>> u.data
    CORBA::String("hello")
    >>> u.data = "other"
    >>> u
    UE(E.some,"other")
    >>> u._d
    E.some
    >>> u.data
    CORBA::String("other")
    >>> u = UE(E.all, "hello")
    Exception: < BadArgumentNumber: UE needed=1 given=2 >
      File "stdin", line 1 in ???
    >>> u = UE(E.all)
    >>> u
    UE(E.all)
    >>> u._d
    E.all
    >>> u.data
    Exception: < NotFound: Invalid discriminant `data' in UE(E.all) >
      File "stdin", line 1 in ???
    >>> u.data = "other"
    >>> u
    UE(E.some,"other")
    >>> u._d
    E.some
    >>> u.data
    CORBA::String("other")

  Tested on MICO 2.3.1, omniORB2.8.0, ORBacus 3.2.1, Orbix 2000 beta 2,
  and VisiBroker 3.3.
  Don't work on OAK, TAO because these ORB don't correctly implement
  the DynUnion API.

  Thanks to Lubomír Markoviè <markovic@informatics.muni.cz>
  for pointing this out.

- Correct the lexical parser and the virtual machine to indicate the
  exact line where exceptions are thrown.

- Throw a BadArgumentNumber exception when trying to create a bounded
  OMG IDL sequence with more items that are allowed.
  e.g.
    >>> LongSeq2
    < OMG-IDL typedef sequence<long, 2> LongSeq2; >
    >>> LongSeq2()
    LongSeq2()
    >>> LongSeq2(1)
    LongSeq2(1)
    >>> LongSeq2(1,2)
    LongSeq2(1,2)
    >>> LongSeq2(1,2,3)
    Exception: < BadArgumentNumber: LongSeq2 needed=2 given=3 >
      File "stdin", line 1 in ???

  Thanks to Jean-Francois Roos <Jean-Francois.Roos@lifl.fr>
  for pointing this out.

- Add the open_append method in the TextFile class of the IO module.

- Correction of minor bugs in the pwd and rmdir NSTools shell's commands.

  Thanks to Jean-Francois Roos <Jean-Francois.Roos@lifl.fr>
  for pointing this out.

- Correction of minor warnings when compiling with -O flag.

- Correction of a memory leak in CorbaScript instance invocations.

- Correction of the overflow limit about CORBA::UShort.

- Correction of a bug in the implementation of the test demonstration.
 
  Thanks to Oleg Lodygens <lodygens@lal.in2p3.fr> for pointing this out.

- Update all OMG IDL demonstration files (demo/*/*.idl) to be
  compliant with the lastest CORBA 2.3 IDL rules (checked with
  the Orbix 2000 IDL compiler).

  * demo/component/Component.idl
	module component -> ComponentExample

  * demo/hello/Hello.idl
	operation hello -> hello_world

  * demo/linked/Linked.idl
	module Linked -> LinkedExample

  * demo/worker/Worker.idl
	parameter job -> j

  * demo/remote_cssh/scripting.idl
	various changes.

  * demo/chat/Chat.idl => ChatService.idl
	various changes.

- Update server demonstration files (demo/*/*Server.idl) to rebind
  in a persistent Name Server.

  * demo/calc/CalcServer.cs
  * demo/computer/ComputerServer.cs
  * demo/grid/GridServer.cs
  * demo/hello/HelloServer.cs
  * demo/linked/LinkedServer.cs
  * demo/naming/CosNamingServer.cs
  * demo/test/TestServer.cs
  * demo/worker/WorkerServer.cs
  * demo/chat/ChatServer.cs

- Add better support for narrowing object reference IOR/URL formats.

  To narrow an stringified object reference, do:
    >>> ior = "IOR:..."
    # or ior = "iioploc://host:port/poa_name"
    # or ior = "iiopname://host:port/ns_name"
    >>> objref = CORBA.ORB.string_to_object(ior)
    >>> objref = AnInterface(objref) 
    # here tries to narrow an object reference with the AnInterface type.
  Or more simply:
    >>> objref = AnInterface(ior)
    # here tries to narrow an IOR/URL string with the AnInterface type.

  >>> ns = CosNaming.Name("iioploc://localhost:8000/NameService")
  This tries to bind to the object named by "NameService" running in
  the local host and port 8000. Moreover this tries to narrow to the
  CosNaming::NamingContext interface type.

  >>> o = MyInterface("iiopname://localhost:8000/id.kind")
  This tries to resolve the id.kind cosnaming name in the cosnaming server
  running in the local host and port 8000. Moreover this tries to narrow
  to the MyInterface interface type.

  Thanks to Martin Skold <Martin.Skold@uab.ericsson.se>,
  Christer Olsson <christer.e.olsson@era.ericsson.se>,
  Suresh Kannan <kannan@uav.ae.gatech.edu> and some others for pointing this out.

- Add new configuration platform files for compiling with shared libraries.
  * MICO_GENERIC_shared_libs: MICO, any supported OS and any supported C++ compiler.
  * OB3_LINUX_EGCS_shared_libs: ORBacus 3.x, Linux and egcs C++ compiler.
  * OB3_LINUX_GCC295_shared_libs: ORBacus 3.x, Linux and gnu C++ 2.95.x compiler.
  * OB3_SUN_GCC295_shared_libs: ORBacus 3.x, Solaris and gnu C++ 2.95.x compiler.
  This feature saves on code space when several cssh runs concurrently.

  Thanks to Rich Edwards <edwardr@codonics.com> for pointing this out.

- Use the ';' character to separate paths in the CSPATH environment variable
  on Windows systems (':' is still used on Unix systems).

  Thanks to Albert Zhou <zhou@qtera.com> for pointing this out.

- Add new features to the NSTools module:
  * Can set the used character between naming context's paths
    by the setPathChar procedure.
  * Can set the used character between naming context's ids and kinds
    by the setKindChar procedure.
  * Can set the used string to name the current context
    by the setCurrentContext procedure.
  * Can set the used string to name the previous context
    by the setPreviousContext procedure.

  By default, the NSTools name format is /path/another_path/id.kind
  For instance, to change it to the |path|another_path|id,kind
  do:
  >>> import NSTools
  >>> NSTools.setPathChar('|')
  >>> NSTools.setKindChar(',')
  >>> NSTools.shell()

  Thanks to Rich Edwards <edwardr@codonics.com> for pointing this out.

- Add better management of OMG IDL constants and aliased types, e.g.:

  // OMG IDL
  module M {
    typedef short T;
    typedef T TT;
    const T c = 10;
    const TT c1 = 10;
  };

  >>> M.c
  M::T(10)
  >>> M.T._is_a(CORBA.Short)
  true
  >>> M.TT._is_a(M.T)    
  true
  >>> M.c1._is_a(CORBA.Short)
  true

  Thanks to Suresh Kannan <kannan@uav.ae.gatech.edu> for pointing this out.

- Correction of internal Interface Repository cache for solving exception handling
  problems in modules/NSTools.cs and demo/remote_cssh/ScriptingShell.cs files.

- Correction of some compilation problems on MS Visual C++ 6.0.

  Thanks to Albert Zhou <zhou@qtera.com> for pointing this out.

- Change in CorbaWeb the ServletHandler.loadServlet method to manage servlets
  contained in subdirectories. See the CorbaWeb/servlet/test/Servlet example.

  Thanks to Oleg Lodygens <lodygens@lal.in2p3.fr> for pointing this out.

- Change in command line parameters of the CorbaWeb server.
  New usage is cssh cw.cs [-p port] [-h hostname]
            or start_cw.sh [-p port] [-h hostname]

  By default, the server waits HTTP connections on the port 8080.
  The -p option allows selecting a different TCP/IP port.
  The -h option allows selecting a host name address when the host
  supports multiple network addresses.

  e.g.
  unix> start_cw.sh -p 8888 -h corba.lifl.fr
  ==============================
  Start the CorbaWeb Http server.
  ==============================
  HttpServer: Waiting for HTTP connexions on http://corba.lifl.fr:8888

  Thanks to Oleg Lodygens <lodygens@lal.in2p3.fr> for pointing this out.

- Add the getURL method on the Server class in CorbaWeb/HttpServer.cs

- Correction for closing IO.TextFile twice or more.
  The internal buffer is allocated when opening files and
  deallocated when closing them.

  Thanks to Alexander Taranov <tay@jet.msk.su> for pointing this out.

- Update modules/IOR.cs and CorbaWeb/HttpServer.cs files
  to use the startsWith string method.

- Add startsWith and endsWith methods to strings, e.g.:
    >>> s = "Hello World!"
    >>> s.startsWith("Hello")
    true
    >>> s.startsWith("World!")
    false
    >>> s.endsWith("World!")
    true
    >>> s.endsWith("Hello")                         
    false

- Update the NSTools module:
   * Import the new 'shell' module.
   * The NSShell class inherits of the shell.Shell class.
   * Some minor simplifications in NSShell methods.
  As results, there are some command line parsing improvements.

- Add a new demonstration providing a general scripting engine OMG IDL API,
  remote CorbaScript engines and a shell to deal with them.
  See the demo/remote_cssh/ directory.

- Add a new module (see modules/shell.cs):
  It provides a base class to implement shell programs.

- Add a new argument to the predefined eval function to indicate the scope
  where the evaluation must be done.
  e.g.
  >>> eval("i=1")  # by default the evaluation is done in the current scope.
  >>> i
  1
  >>> class SCOPE { }
  >>> eval("i=2", SCOPE) # here is done in SCOPE.
  >>> SCOPE.i
  2

- Change the -f option in the osh and cssh interpreters.
  Don't execute default the initialization script.
  This option is the opposite of the -e option.

- Add the -n option to the osh and cssh interpreters.
  When this option is set, the interpret parses scripts (interactive or file),
  check lexical and syntaxical rules, but don't execute them.

  Thanks to Herve Le Pierres <Herve.Le-Pierres@alcatel.fr> for pointing this out.

- Improvement by 40% of string additions (s + s).

- Strings can now contain more than 64K characters.
  The length of strings is stored in a 32 bits integer (4M characters).

  Thanks to Brian Bray <brianbr@ibm.net> for pointing this out.

- Add CorbaScript Server Pages in CorbaWeb.
  See examples in CorbaWeb/cssp/ directory.

- Add the regex module for handling regular expressions.
  See modules/regex.cs for examples.

  MUST be completed and ported on Windows :-(

- Add null_pointer() function in the LIBC module.
  Returns a null C pointer.

- Add screen messages in demo/component and demo/worker demonstrations
  to indicate how to exit correctly.

  Thanks to Bob Gustafson <bobgus@mcs.com> for pointing this out.

- Changes in the generation of envi.ORB.* files.
  The config/base_envi.ORB.* files contain common part for all ORBs.
  The orb/*/envi.ORB.* files contain specific part for each ORB.
  Now, generated envi.ORB.sh files contain several tests to avoid
  to badly use the CorbaScript shell commands (i.e. avoid to
  execute two times cssh_install, and so on).
 
- The GNU Make tool location can be defined with the compilation script
  (config/compile.sh file).

- Add the CSSHRC environment variable to set the script file
  which is executed by the interpreter at initialization time.
  See doc/user_guide.html for more information.

- Modify the include/std_types.h file to compile on HP aCC

  Thanks to Bertrand Godet <Bertrand.Godet@alcatel.fr> for pointing this out.

-----------------------------
Changes since CorbaScript 1.3
-----------------------------

MICO changes:
-------------

- Port to the 2.2.7 release. To compile CorbaScript, it is needed to type
  227 as ORB release number.

  Needed to patch MICO as described into the doc/FAQ/MICO file.

ORBacus changes:
----------------

- Remove the thrown assertion (line 240 in SelectReactor.cpp) on Windows
  and HP platforms (for Bertrand Godet).

Visibroker changes:
-------------------

- Correction to handle OMG IDL operations/attributes which return an
  aliased OMG IDL string (from Robert Stephens).
  e.g.

  typedef string AliasedString;
  interface MyInterface {
    AliasedString an_operation();
    attribute AliasedString an_attribute;
  };

- Correction to browse the IFR with CorbaWeb.

- Correction in the generated envi.ORB.csh file.

General changes:
----------------

- Add the new Chat demonstration into the demo/chat/ directory.
  This directory contains the OMG IDL and server code.
  The client side is done through CorbaWeb.

- Manage the Netscape push model into CorbaWeb (for Oleg Lodygensky).
  Allows us to create CORBA objects into the CorbaWeb server to
  push Web documents according to CORBA callbacks.

  See the CorbaWeb/actions/CosNaming_ExtNamingContext example which
  notifies changes into ORBacus NamingContexts to a Netscape Navigator.

  See also the CorbaWeb/actions/chat_* examples.

- Correction of the implicit CORBA Object connection.

- Add start() and stop() methods in the HttpServer.Server class.
  This allows a script to wait HTTP and CORBA requests simultaneously
  (for Oleg Lodygensky).

- Add the new socket.SocketHandler class for waiting socket requests
  asynchronously.

- Check if the host name is known when create sockets.
 
- Add a new parameter to set the hostname in the constructor of the
  socket.SocketServer class (from Oleg Lodygensky).

- Minor change in HttpServer.cs to free the allocated TCP/IP port if
  CTRL-C (from Oleg Lodygensky).

- Correction of some bugs when CORBA nil object references are used.

- Add _is_nil() and _non_existent() operations on all CORBA
  object references (for Jean-Michel Paris).

- Into the modules/IOR.cs:
  * proc fromURL(url) handles the http:// URL format.
  * Add proc fromHTTP(url) to get an object reference from an HTTP server
  (for Jean-Michel Paris).

  e.g.
  >>> import IOR
  >>> anObjectRef = IOR.fromURL("http://www.at.home/a_path/a_file.IOR")

- Add to the interpreter the -e option to execute an initialization script
  before entering in the interactive mode or executing a file script
  (for Jean-Michel Paris).

  e.g.
    unix> cssh -e MyInitScript.cs
    CorbaScript 1.3.1 (May 20 1999) for ORBacus 3.1.3 for C++
    Copyright 1996-99 LIFL, France
    < here is the execution of the MyInitScript.cs file >
    >>>

  By default, the initialization script is the $HOME/.csshrc file on Unix
  systems and /.csshrc on Windows.

  e.g.
    unix> cssh
    CorbaScript 1.3.1 (May 20 1999) for ORBacus 3.1.3 for C++
    Copyright 1996-99 LIFL, France
    < here is the execution of the $HOME/.csshrc file if exists >
    >>>

  This feature allows one to execute common code, initialize global
  variables, import common used modules and so on.

- Minor change in CorbaWeb to handle aliased structs and enums.

-----------------------------
Changes since CorbaScript 1.2
-----------------------------

Warning, files and directories are been reorganized: see the new
organization into the DISTRIB file.

The compilation scripts now are config/compile.sh, config/compileVC5.bat
and config/compileVC6.bat respectively to compile on Unix systems,
Visual C++ 5.0 or Visual C++ 6.0.

New ports:
----------

- Experiment port on omniORB2.7.1 on Linux/egcs
  (config/platforms/omniORB2_LINUX_EGCS).

  Current status:
    * Compilation OK
    * Linking     OK
    * Running     Problems!

MICO changes:
-------------

- Port to the 2.2.6 release. To compile CorbaScript, it is needed to type
  226 as ORB release number.

- Port to the 2.2.5 release. Add the NamingContextExt interface
  into the idl/CosNaming.idl file.
  To compile CorbaScript, it is needed to type 225 as ORB release number.

- Correction of the src/cs_Set_DynAny_with_CS_Object.cpp file
  to compile on Windows NT with Cygnus egcs 1.1.1 (from Dr. Volker Zell).

OAK changes:
------------

- Full port on the 5.2.7, 5.2.8 and 5.2.9 releases on:
  * Solaris with SparcWorks (file config/platforms/OAK_SUN_CC).
  * Linux with egcs (file config/platforms/OAK_LINUX_EGCS).

- Experimental port on 5.2.7, 5.2.8 and 5.2.9 releases for Windows NT.
  Use the platform file config/platforms/OAK_WIN_MSVC.

ORBacus changes:
----------------

- Experimental port on OB-4.0a2. 
  To compile CorbaScript, it is needed to type 400 as ORB release number.
  Don't apply the patch below: it is already done in OB-4.0a2.

- Full port on the 3.1.3 release on Unix and Windows.
  To compile CorbaScript, it is needed to type 313 as ORB release number.
  Don't apply the patch below: it is already done in OB-3.1.3.

- Full port on the 3.1.2 release on Unix and Windows (from Olivier Causse).
  To compile CorbaScript, it is needed to type 312 as ORB release number.

  Only need to change the following method on the file
  OB-3.1.2/ob/src/library/DynAny_impl.cpp:

  void
  CORBA_DynAny_impl::insert_string(const char* value)
  {
    CORBA_Any* any = current_any ();

    // Can't use CONTROL_INSERT, as it then wouldn't be possible to
    // insert bounded strings.
    //CONTROL_INSERT (any,CORBA__tc_string);
    if(any == 0)
        throw InvalidValue ();

    CORBA_TypeCode_var type = any -> type();
    CORBA_TypeCode_var tc = OBGetOrigType(type);

    if(tc -> kind() != CORBA_tk_string)
        throw InvalidValue ();

    // this allows to reuse the current TypeCode of the any.
    any->replace (type, CORBA_string_dup(value), CORBA_TRUE);

    next ();
  }

- Correction to compile CorbaScript with Visual C++ on an ORBacus/Windows
  release that uses the iostream of the std package.

- Correction of a bug in the CORBA.ORB.run() function: previously
  it creates an infinite loop (consuming all the CPU resources) when
  keyboard is used or when the Unix shell is exited before a CorbaScript
  shell is ended (from Serge Du).

General changes:
----------------

- The getline() function raises an ExecutionStopped exception if
  the standard input is closed during getting.

- Correction of the bug that doesn't allow the Interface Repository
  to contain the CORBA::ORB interface (from Laurent Gaillard).

- Correction of some memory leaks in CS_Scoped and CS_Scope classes.

- Correction of the eval function on Windows.

- Add convertion operators (for Michael Rumpf):
    > c = char._fromLong(l)
    > l = long._fromChar(c)

- Add the CorbaWeb environment. Works on Unix and Windows systems.
  See CorbaWeb/README.

- Add the new standard module socket that provides TCP/IP sockets.
  Only tested on Linux, Solaris and Windows systems.
  See modules/socket.cs.

- Warning, the GOODE_HOMEDIR shell variable declared into envi.ORB.* files
  has been replaced by CS_HOMEDIR.

- Modification of the COPYRIGHT header of all files.

- All CorbaTools.* files are been put together into two files.
  This may simplify future ports on other ORBs.

- Correction of compilation problems due to conversion between
  CORBA::Any_var and CORBA:Any& (from Serge Du and Eric Viara).

- Correction of the os_DynamicLibrary file (from Michael Rumpf and
  Olivier Causse).

- The config/compile.sh file asks for three new information:
  * ORB_IS_MULTITHREADED
  * EXTRA_CPP_FLAGS to add extra preprocessor flags
  * EXTRA_LD_FLAGS to add extra linker flags
  (from Jean-Michel Paris)

- Add the 'modules/README' file which lists standard modules.

- Add the new standard module LIBC that loads the standard C
  dynamic library according to the operating system.
  Work also on Linux with libc.so.6 (from Jean-Michel Paris).
  * add the calloc, malloc, free and realloc functions.
  * manages the global C errno variable.

- In the IO.cs module:
  * Use the standard LIBC module.
  * getc, putc, methods to get/put a long added (from Raphael Marvie).

- In the posix.cs module:
  * Use the standard LIBC module.
  * More functions on Windows systems.

- Add the new standard module IOR:
  * This module provides procedures to obtain and store IORs.
  e.g.

    >>> import IOR
    >>> anObjectRef = IOR.fromFile("foo.ref")
    >>> IOR.toFile(anObjectRef,"foo.ref")
    >>> anObjectRef = IOR.fromNS("foo.ref")
    >>> IOR.toNS(anObjectRef,"foo.ref")
    >>> anObjectRef = IOR.fromURL("file:foo.ref")
    >>> anObjectRef = IOR.fromURL("ns:foo.ref")
    >>> anObjectRef = IOR.fromURL("IOR:....")
    >>> IOR.toURL(anObjectRef,"file:foo.ref")
    >>> IOR.toURL(anObjectRef,"ns:foo.ref")

- Add the new standard module NSTools:
  * This module implements the CORBA Naming Service shell.
    This shell allows one to administrate, manage and discover graphes
    of CosNaming::NamingContext objects (see idl/CosNaming.idl).
  * Move the `demo/naming/NSTools.cs' file to the `modules/NSTools.cs' file.
  * Add the `apply' and 'actions' commands to the Naming Service Shell.
    * Use of the standard ActionRepository module.
    * Actions are stored into the 'modules/NSSH.AR/' directory.
    * Other directories can be set with the NSSH_PATH shell variable.
  * Add a new format for the 'ln' and 'rln' command:
      NameService> ln file:a_path_to_a_file path_in_the_NameService
      NameService> rln file:a_path_to_a_file path_in_the_NameService
    This new format allows to (re)bind to the Name Service an object
    reference stored into a file.
  * Add a parameter to the NSAdmin and NSShell classes.
  * Change comments.

- Add the new standard module CosNamingImpl:
  * This module implements the CORBA CosNaming service.
  * Move the `demo/naming/CosNamingImpl.cs' file to the
    `modules/CosNamingImpl.cs' file.
  * Use the standard AssociationTable module.
  * Correct a bug in the `list' operation.
  * Change comments.

- Add the new standard module Stack:
  * This module provides a small generic data structure to push
    and pop any kind of values into Stack instances.
  * Move the `demo/naming/Stack.cs' file to the `modules/Stack.cs' file.
  * Add the `apply' method.
  * Add the `EmptyStack' exception class.
  * Correct the `length' method.
  * Change comments.

- Add the new standard module AssociationTable:
  * This module provides a small generic data structure to store
    and retreive key/value associations.
  * Move the `demo/naming/AssociateTable.cs' file to the
    `modules/AssociationTable.cs' file.
  * Add the `KeyNotFound' exception class.
  * Change comments.


-----------------------------
Changes since CorbaScript 1.1
-----------------------------

MICO changes:
-------------

- Port on the 2.2.1, 2.2.3 and 2.2.4 releases.

- Full port on Windows/Cygnus/egcs 1.1.
  Currently need to patch MICO 2.2.0, see MICO mailing list.

- Remove warnings when starting CorbaScript.

OAK changes:
------------

- Full port on the release 5.2.7 RC8.

ORBacus changes:
----------------

- Changes into the start_process.sh file to support additional arguments
  and AFS mounting (From Serge Du).

- Initial references (eg "NameService") set by an ORBacus configuration file
  are available.

- Port to ORBacus 3.1.1.
  To compile CorbaScript, it is needed to type 311 as ORB release number.

- Port to ORBacus 3.1.
  To compile CorbaScript, it is needed to type 310 as ORB release number.
  Generated environment files have been updated to new ORBacus command 
  line options.

- Experimental port on DEC/OSF (config/platforms/OB3_OSF_cxx)
  Compile but does not work due to C++ exception handling.

- Correction of the OB3_SUN_CC makefile to compile MT-safe with JTC.

- Port on HP-UX (config/platforms/OB3_HP_aCC)

- Port on AIX (config/platforms/OB3_AIX_xlC)

- Full port on Windows/VC 5.0 (config/platforms/OB3_WIN_VC).

- To start demonstrations on Windows, use 'bash win.bash'
  instead of 'bash run.bash'.

- Correction of a bug in the demo/test/Test.idl.
  ORBacus has recently changed :-). We must use 'CORBA::TypeCode'
  instead of 'TypeCode' in OMG IDL specifications.

Visibroker changes:
-------------------

- Full port on Visibroker 3.3 on Solaris and Windows.
  All demonstrations work well on Visibroker 3.3!

- Compilation problems with Visibroker 3.2 / Visual C++ have
  been solved. Some demontrations still fails due to Visibroker 3.2!

- To start demonstrations on Windows, use 'bash win.bash'
  instead of 'bash run.bash'.

General changes:
----------------

- Statement Of Compliance for Year 2000 is provided in the README file.

- New licence agreements into the 'COPYRIGHT' file.

- New documentations:
       doc/98-12-09.pdf      last revised submission at OMG
       doc/slides.pdf        presentation of features

- Correction of the display feature: now object references contained
  into structures, arrays, sequences are displayed with their IDL
  type + their IOR. Before, CorbaScript just displayed the IOR.

- Dictionaries have now:
  * attributes: size, keys, values
  * methods: contains, containsKey, remove

- Added the scope IDL which contains already loaded IDL definitions.
 
- The 'eval' procedure can now evaluate CORBA.String objects.
  eg.
    >>> a = CORBA.String("1+2")
    >>> eval(a)
    3

- Modification of make files for future CorbaWeb and CorbaScript with Java.
  Make files are now in config/.
  Platform files are now in config/platforms/.

- Added a new demonstration about Event Service (demo/event/).
  Provides a multiple consumer/supplier example.
  Provides an implementation of the Event Service.

- Added a new CorbaScript module to handle input/output
  from/to standard files (look at modules/IO.cs).
  for instance, type into a CorbaScript shell:
    >>> import IO
    >>> IO.example()
    >>> IO.cat("a file name")
  Work also on Windows systems.

- Removed the 'demo/various_examples/FILE.cs' file.

- Adapted modules/posix.cs and modules/math.cs to HP-UX.

- Generalization of the ! operator.
  e.g.
    !10 , !3.14 , !"hello"  are  false
    !0  , !0.0  , !""       are  true

  (A small change in class CS_Object)

- Minor changes into generated envi.ORB.sh and envi.ORB.csh files.
  The 'orb_config' command has been removed and has been added
  to the 'cssh_config' command.
  The 'orb_deconfig' command has been renamed 'cssh_deconfig'.
  The 'ir_load' command defines a macro allowing IDL files to know
  what is the used ORB.

-----------------------------
Changes since CorbaScript 1.0
-----------------------------

- CorbaScript is under submission to the "OMG CORBA Scripting Language RFP".

New ports:
----------

- Experimental port on Visibroker C++ 3.2 / Solaris.

- Experimental port on the OAK product.

ORBacus/OmniBroker changes:
---------------------------

- Port to OmniBroker 2.0.4 and ORBacus 3.0.1.

- Can compile CorbaScript with a binary ORBacus/OmniBroker release.

- Minor correction in CORBA.ORB.run() on ORBacus/OmniBroker. 

MICO changes:
-------------

- Port to MICO 2.0.5, 2.0.6, 2.0.8, 2.1.0 and 2.2.0 releases.

General changes:
----------------

- Change instructions to compile CorbaScript on Unix and Windows.

- Added a CorbaScript User's Guide.
  Look at doc/user_guide.html.

- Added oneway calls.
  If an IDL operation is declared as oneway then all calls to this
  operation are done asynchronously.

- Added a new syntactical construction for deferred calls.
  e.g.:
    futureReply = object!method(arguments)
    ... do computations ...
    println(futureReply.value)

  Future reply objects support the following interface:
    futureReply.value     -> waits the end of the invocation and
                             returns the result.
    futureReply.poll()    -> polls the end of the invocation and
                             returns a boolean.
    futureReply.wait()    -> waits the end of the invocation.

- Added a new demo (demo/worker/) illustrating deferred operation calls.

- Added a new demo (demo/component/) showing implicit connections
  of client callback objects.

- Correction of a bug in the display of struct and exception IDL types. 

- Correction of a bug in the CorbaScript CosNaming implementation.
  The resolve operation returns an exception if it doesn't find a name. 

- Can invoke local CORBA objects as they are distant : Parameters are
  automatically converted to IDL values.

- Add equality test between object references.
  e.g.
	>>> o1 = CORBA.Object("IOR:...")
	>>> o2 = CORBA.Object("IOR:...")
	>>> o1 == o2
	>>> # this is equivalent to:
	>>> o1._is_equivalent(o2)

  These last lines return true if o1 and o2 refers to the same CORBA object.

- Add a dictionary object type handling key-value associations.
  e.g.
	>>> d = {"key1" : "value1", "key2" : "value2"}
	>>> d["key3"] = "value3"
	>>> d["key2"]
	"value2"
	>>> d
	{ "key1": "value1", "key2": "value2", "key3": "value3" }

  Moreover, any key and value object type can be used. 

- Add an OS and ORB variables in the 'sys' scope.
  e.g.
	>>> println ("CorbaScript runs on the ", sys.ORB, " product.")
	>>> println ("CorbaScript runs on the ", sys.OS, " operating system.")

- Add automatic coercions for CORBA::Any:
  When a CORBA operation waits for a 'any' value, we could provide
  - a long L    that is converted to a CORBA::Any(CORBA::Long(L))
  - a double D  that is converted to a CORBA::Any(CORBA::Double(D))
  - a char C    that is converted to a CORBA::Any(CORBA::Char(C))
  - a boolean B that is converted to a CORBA::Any(CORBA::Boolean(B))
  - a string S  that is converted to a CORBA::Any(CORBA::String(S))
  This feature simplifies the use of IDL specifications using 'any'.

- Many internal changes.

---------------------------
Changes since first release
---------------------------

- A Naming Service shell, see demo/naming/nssh.cs.

- CorbaScript is now ported on new OmniBroker supported architectures:

    * on AIX 4.2 with AIX C Set ++ (xlC 3.1.4.6) compiler
    * on Solaris with SUN C++ Compiler 4.1 and 4.2
    * on SGI with SGI C++ Compiler 7.0.1 and 7.1
    * on HP-UX with aC++ A.01.00 and A.01.03

- CorbaScript is now ported on the MICO ORB:

    * on AIX with GNU 2.7.2 C++ Compiler
    * on Linux with GNU 2.7.2 C++ Compiler
    * on Solaris with GNU 2.7.2 C++ Compiler

- Some syntactical changes:

    * the 'print' instruction is now a function.
      i.e. print "hello world!" - becomes -> print ("hello world!")
      There is also a `println' function.

    * CSOA scope does not exist any more:
        CSOA.create	- becomes -> CORBA.ORB.connect
        CSOA.dispose	- becomes -> CORBA.ORB.disconnect
        CSOA.run	- becomes -> CORBA.ORB.run
        CSOA.stop	- becomes -> CORBA.ORB.shutdown

- A first documentation is in 'doc/omg-rfp.ps'. This document is our
  reply to the current OMG CORBA Scripting Language RFP.
  Warning, this documentation doesn't into take account the previous
  mentionned syntactical changes and it is not fully correct regarding
  the current CorbaScript implementation.
  A new document is under work :-)

- The dynamic C library management changed completly. See the
  modules/posix.cs, modules/math.cs and demo/Clibrary for examples.
  Currently, it just works fine on Solaris and Linux OS.

- Reorganisation of Make, source and include files.

- Many bug fixes.
