* Status as of 4/24/99

Version 0.6.8 Released

*** Important Changes in 0.6.8 from 0.6.4 which may affect code ***

- Inhibited nodes are no longer recursively removed, to retain
substructure.  Once a node is removed, subnodes are not touched (the
previous behavior I consider a bug, since if you pragma inhibit
everything inside gets messed up, making traversal there impossible).

** New Features for libIDL 0.6.8 from 0.6.4

- New parse flag: IDLF_INHIBIT_INCLUDES: this causes libIDL to
implicitly assume the following #pragma inhibits around every included
file:

#pragma inhibit push
#include "file.idl"
#pragma inhibit pop

With this parse flag enabled, the same inhibit effect is achieved
without needing #pragmas:

#include "file.idl"

- New parse flag: IDLF_INHIBIT_TAG_ONLY: you can opt not to have
inhibited nodes removed during parse time.  They can be removed later
by calling IDL_tree_remove_inhibits, which is now a public function.

** Bug Fixes for libIDL 0.6.8 from 0.6.4

- Multiple calls to IDL_parse_filename are now fixed when one of them
fails.  As a result, we now require flex as a side effect to generate
the scanner.  You can compile without having flex however, since the
pre-generated scanner is included in the source distribution.


* Status as of 3/23/99

Version 0.6.4 Released

*** Important Changes in 0.6.4 from 0.6.0 which may affect code ***

- Some fields were added to the end of the IDL node structure, and
IDL_tree_func_data.  Most code shouldn't be affected if you use
pointers, unless you've hardcoded the struct.  A recompile may be
necessary if you have hardcoded structs like this.

** New Features for libIDL 0.6.4 from 0.6.0

- Unresolved forward declarations generate warnings now, not errors
(unless IDLF_PEDANTIC is specified).  These warnings can be turned off
altogether if the IDLF_IGNORE_FORWARDS parse flag is specified.

- IDL_tree_to_IDL improvements and fixes.

- New function IDL_tree_to_IDL_string works exactly like
IDL_tree_to_IDL but returns a GString instead.

- More error and warning message improvements.

- XPIDL support is more complete, and is nearing usefulness.

- IDLF_CODEFRAGS and IDLF_PROPERTIES parse flags added to support
individual enabling without full XPIDL syntax.  If you want the native
extension, you might as well just enable XPIDL support since you're
probably going to lose portability anyway.

- Compatibility with standard lex. Although standard lex can be used,
flex seems to create better and less buggy scanners.

- Miscellaneous fixes the the build process from various people.  If
you run into problems with undefined symbols in the parser or lexer,
you might try rm -f stamp-parser and rebuild (hopefully this will be
fixed in the future sometime, but it's low priority).


* Status as of 2/22/99

Version 0.6.0 Released

*** Important Changes in 0.6.0 from 0.5.0 which may affect code ***

- All memory allocated which is received from libIDL must be freed
with glib free routines, i.e. g_free.  For instance the value from
IDL_ns_ident_to_qstring should be freed with g_free.

- IDL_tree_func now passes an IDL_tree_func_data struct pointer
instead of the just the tree node. This gives you the current node,
the up path of the traversal, and the real up path (from the node's up
pointer), which is useful since the paths can be different in the case
of a predefined identifier referenced in a different place. Be sure to
update your callbacks for 0.6.

- Do not rely on IDLN_* enumeration ordering.  An alternative method
for using jumptables is mentioned in the IDL header file.

** New Features for libIDL 0.6.0

- Overhauled versioning system, with support for libIDL-config, an
AM_PATH_LIBIDL Automake macro, and C version defines.

- New functions, including node properties and namespace functions.
IDL_parse_filename_with_input was added to facilitate porting to
platforms which don't have a readily available CPP (e.g. Win32).

- XPIDL support is now in place (optionally activated with a parse
flag).

- Additional support for node suppression with #pragma inhibit.

- Support for Win32.

- Many bug fixes.


* Status as of 8/17/98

** Just about everything is working now, except for a few small
ambiguity cases which may not get detected, but should be easily
avoidable anyway.  The changeover to using glib is there, and hash
tables are used extensively now so that the O order has been reduced.

Repository IDs are also generate properly now, along with the three
pragams, and there is also a declaration spec which can tag certain
interfaces to not generate tree data.  Error messages have also been
improved significantly.

The docs are out of date and need revamping.


* Status as of 7/18/98

** Most needed features are working to read CORBA v2.2 IDL.  See the
file BUGS to see what else needs to be done; at this point things like
speed are low priority, however a changeover to using glib and more
efficient data structures like sorted heaps or hashes might be in
order down the line.  I'm not sure how useful libIDL might be apart
from its use in an IDL compiler, but the docs still need work.

Andrew Veliath