Fnorb 1.1
-----------
1) added extensive type checking to TypeCode.py which should stop fnorb
   core dumping - will throw exceptions instead. This was done mostly
   by Derek Thompson the outgoing Fnorb guy. Thanks for this and for
   all your help.
2) changed example/threaded/{server,client}.py to override the default
   reactive mode ORB to use threaded mode (as suggested by Jeff Rush).
3) Deal better with attempt to import new - added more useful error mesg.
4) fixed --OAhost option to correctly restrict the hostname in the
   produced IORs (patch from Jeff Rush).
5) incorporated Keith Dart's patch to better deal with forwarded references
6) incorporated Stephen J Turner's patch to CORBA.py for optimisation and
   better interoperability
7) fixed problem in IIOPAcceptor.py & Nudger.py with the use of socket.gethostbyaddr()
   instead of socket.gethostname() [Thanks to Bertram Neubauer & Matthew Vranicar for
   reporting this] {patch previously released}
8) added support for a command line option to fnaming to allow specification
   of a file to write the naming service ior to. {patch previously released}
9) added README files to the examples, particularly to alleviate the common
   problems encounted when using the naming and threaded examples.


Fnorb 1.01
----------

1) corrected IOR unmarshalling. 
2) added handling of memory allocation errors during unmarshalling.

Fnorb 1.0
---------

1) The Windows NT/95 installation has been changed to make the setting of the
FNORB_HOME, PATH and PYTHONPATH environment variables up to the user (ie. the
installation no longer updates the registry or autoexec.bat).

For convenience, an additional batch file ('...\Fnorb\script\fnvars.bat') is
created which can be run from a command prompt to set the variables
appropriately. To repeat, this is for convenience only - it works on NT with
Python 1.5.2c1 - but there are no guarantees beyond that! Win 95 users need to
edit the file, remove any spaces in directory names, and wish they had a
decent shell ;^)

2) The CORBA type 'unsigned long' is now mapped (as per the draft) to the
Python *long* integer type. This has some effect as Python sequences cannot be
indexed with these values without an explicit conversion (int(x)).

3) Added support for the CORBA 'long long' and 'unsigned long long' (64-bit
integer) types - they are also mapped to Python long integers.

4) The stubs and skeletons generated by 'fnidl' now reference all Fnorb
modules explicitly, hence removing possible name clashes with user IDL files.

5) Ugly bug in the parsing/marshalling of recursive types fixed.

6) Locking bug in '_narrow' fixed.

7) Bug in interface repository fixed so that 'fnfeed' now works as expected!

8) A few other minor bug fixes from 1.0b1!

Fnorb 1.0b1
-----------

1) Fnorb now (OPTIONALLY) supports multi-threaded applications, with a thread
pool servicing operation requests on the server-side (for details on how to
configure the ORB to use threads, see the user guide).

2) Fnorb UOL's can now be:-

	- a standard CORBA IOR: ('IOR:...')
	- the name of a file containing a UOL ('file:...')
	- the URL of a document containing a UOL (http://...) **** New ****
        - a naming service name ('name:...')

3) ORB configuration options can now be specified via:-

	- a configuration file **** New ****
	- environment variables
	- the command line

   See the user guide for more details.

4) CORBA 'nil' object references are now represented in Python as 'None'.

5) Addition of '_narrow' method on CORBA.Object to allow you to
convert an object reference into a reference to a derived type.

6) 'CloseConnection' messages are now handled a little more sensibly ;^)

7) Implementation of '_is_a' changed to allow implementations to inherit from
classes that are not Fnorb skeletons.

8) Added '_non_existent' to the Object interface.

9) Types that are generated automagically by Fnorb for structs, exceptions and
unions are now added to the type manager and therefore available to the
programmer (this only occurs if an 'any' type is unmarshalled and no stub has
been loaded for the struct, exception or union).

10) When sequences and arrays are unmarshalled, a Python list of the
appropriate size is now created and filled in.  In previous versions of Fnorb,
an empty list was created, and then appended to!

11) Bug in Object_skel re: the __initialised attribute fixed.

12) Bug in 'create_union_tc' fixed.

13) Bug in the interface repository 'lookup_id' method fixed.

14) New Fnorb logo ;^)

Fnorb 0.8
---------

1) Format of stubs and skeletons changed, so you will need to recompile 8^(

2) Recursive structures/unions now fully supported.

3) Additional options for 'fnidl' to control the location of generated files
   (see the user guide for more details).

4) Stubs and skeletons for IDL definitions at the global scope are now placed
   by default in the packages '_GlobalIDL' and '_GlobalIDL_skel' instead of
   in packages with the same base name as the IDL file.  This can be overridden
   however, using the new '--globals=' option on fnidl.

5) Typecode factory methods added to the ORB interface as per the spec. e.g.
   create_enum_tc, create_sequence_tc etc.
 
6) Functions 'octet_to_ASCII' and 'ASCII_to_octet' moved from Util.py and
   re-implemented in 'C' in the 'cdr' module. Faster compilation and faster
   runtime performance!

7) All GIOP types now available to the programmer.

8) Serious bug in the marshalling of arrays fixed (many thanks to Martin von
   Loewis for spotting this one).

9) Memory leak client-side fixed (thanks to Chris Wright).

10) Numerous more minor bug fixes (thanks to Timothy Docker and everybody else
    who submitted bug reports!).

Fnorb 0.7.1
-----------

1) Finished the renaming of 'id.py' to 'uuid.py' (ie. fixed the import
   statements that I missed last time ;^)

2) Memory-leak in the 'cdr' extension module fixed.

3) Import bug in DII.py fixed (thanks to Timothy Docker!).

4) Bug in reactor fixed so that recursive calls now work properly!

5) Some tweaks to the Win95/NT distribution to make it work a bit easier!

6) Two new utilities 'fnmkior' to construct IORs, and 'fnfeed' to parse IDL and
   store the definitions in a remote interface repository.

Fnorb 0.7
---------

1) Fnorb now has its own IDL parser (written using flex, and bison but with all
semantic actions implemented in Python!).  This means that you are no longer
required to download and install OmniBroker.

2) Installation on Win95/NT is now done via a WISE double-clicky installation
program.

3) Unfortunately, the powers that be have decided that since Fnorb is
now a standalone piece of software, the licencing has to be changed to
being free for *non commercial* use only. Please see the LICENCE.HTML file
on the download page (and in the distribution) for more details.

4) A couple of bug fixes in the Interface Repository.

Fnorb 0.6
---------

1) The distribution has been packagised to help stop module name clashes with
   other applications (e.g ILU).
2) Interface Repository (fnifr) implemented and used in IDL compilation.
3) Naming service (fnaming) implemented.
4) DII/DSI implemented.
5) Large (up to 33%!) reduction in stub and skeleton sizes! Stubs and
   skeletons now use the DII/DSI.
6) The name of the base class for CORBA exceptions changed from 'Exception'
   (which could cause confusion with the standard base class of Python 1.5
   exceptions) to 'CORBAException'.
7) The building of the extension module has been made cleaner thanks to
   Guido's generic Makefile.
8) Fixed some (relatively obscure) bugs in the TypeCode module!

Fnorb 0.5
---------

1) First draft of the user guide
	- .../Fnorb-0.5/doc/Fnorb-Guide.ps  (postscript)
	- .../Fnorb-0.5/doc/Fnorb-Guide.doc (Word 97)
1) Fixed a bug in raising exceptions with multiple attributes.
2) Fixed a bug in code generated for string constants.

Fnorb 0.4
---------

There are quite a few changes in this release - hopefully all for the better!

1) Quite a few bug fixes - thanks to everybody that sent them in!
2) Fnorb no longer requires the 'thread' module.
3) The built-in module 'new' *is* now required (and IMHO is so useful it should
   be included at Python build-time by default!).
4) Fnorb now uses the Reactor pattern (from Douglas Schmidt) to dispatch
   events.  Amongst other things this means that:-

   - Fnorb now supports nested invocations!

   - Using the TkReactor (see the 'examples/tkinter' directory) Fnorb can
     now co-exist with Tkinter!!!!!

   - All Fnorb programs must call the '_fnorb_mainloop()' method on the BOA
     to start dispatching events (see any of the examples).

5) The IDL/Python language mapping is now up to date with the current draft
   of the document that is to be presented to the OMG.  This means that:-

   - IDL modules are now mapped to Python *packages* (previously top
     level modules were mapped to Python modules, and nested modules mapped
     to Python classes).

   - IDL unions are now mapped to a Python class with two member variables;
     'd' for the discriminator, and 'v' for the value (previously unions
     were mapped to tuples in the form (discriminator, value)).	

Fnorb 0.3
---------

1) The CDR extension module is now provided pre-built for Windows 95/NT!!!!!
2) The IDL 'compiler' fnidl now works on Win 95/NT (although it leaves an IR
   process around after each compilation - Windows gurus might like to tell me
   how to fix this!!!!)

   **** IMPORTANT NOTICE ****

   It is worth noting that you only need to install the Fnorb IDL compiler on
   one platform.  The generated stubs and skeletons will work on ANY other
   platform that has the 'cdr' module installed!  Cool huh?!?!?!?

   **** END OF IMPORTANT NOTICE ****

2) IDL prefixes now supported.
3) IDL chars now mapped to Python strings of length 1 (instead of Python
   integers).
4) Embarassing bugs in CDR marshalling code fixed ;^)
5) 'bin' directory renamed 'script' (there are no binaries - just Python
   scripts so it seemed to make sense!!!!!
6) Skeleton modules that contain derived interfaces now import the correct
   modules!
7) An extra set of examples has been added (for IDL unions).
8) Socket module renamed to FnorbSocket to prevent a name clash with the
   built-in module on Win95/NT! Duh!
9) The '_is_a' and '_interface' operations are now implemented server-side.
10) On Unix platforms, the 'fnidl' script's method of closing down the IR
    process has been somewhat refined (ie. 'fnidl' can now work within
    Makefiles properly!)
11) Missing file LICENSE.DOC now present! This gives you explicit right to
    freely use, and distribute Fnorb (I just plain forgot to include it in
    0.2).

Fnorb 0.2
---------
This was the initial release made publicly available!
