blob: 58c40dbae5e2a1e14a87ff1ee6f31d2f08a6b391 [file] [log] [blame]
This is the list of user-visible changes in kimwitu++. Please see
src/ChangeLog for a more detailed list.
* Changes in kimwitu++ 2.3.7
** new option --operator-cast to have an operator_cast<>() just like
phylum_cast<>() or dynamic_cast<>()
** support for named subphyla for greater type safety
* Changes in kimwitu++ 2.3.6
** new option -W allows greater control of warning levels
** new option --rw-loop generates iterative rewrite algorithm (instead of
recursive) and greater control (or hacking)
* Changes in kimwitu++ 2.3.5
** New options for error reporting format
** Allow {con,de}structors for any class (but give warning)
** Add options to morph line directives into comments
* Changes in kimwitu++ 2.3.1
** Version number of generating Kimwitu++ goes into the generated code as
a number of #define's (KIMWITUVERSIONMAJOR, *MINOR, *MICRO)
** Rename kc_.views to .views (should have happened before).
** Added a virtual default_unparse method to have replaceable default
unparse behaviour. There is not yet a Kimwitu++ syntax extension for it.
* Changes in kimwitu++ 2.3.0
** Change back the semantic of append to return the element for the list
where we insert the value.
** This warrants a version number bump 3.0: Give warnings for overlapping
patterns in unparse, rewrite and with.
** Support for g++ 3.2
** --no-linedirec does not emit any line directives now.
* Changes in kimwitu++ 2.2.0
** Removed the kc_ prefix in many places. There are some macros you can use
to get the old names, you just have to define DEPRECATED.
** Renamed kc_tag_ to impl_; macros as above.
** Changed language macros to is_language and set_language.
* Changes in kimwitu++ 2.1.4
** Allow conversion operators in phyla.
* Changes in kimwitu++ 2.1.3
** Lines can have arbitrary lengths now.
* Changes in kimwitu++ 2.1.2
** User-defined member functions now possible for primitive phyla. This
is actually a bug fix, but since it never worked before it can be
considered a new feature.
* Changes in kimwitu++ 2.1.0
** Some care is taken to allow unparsing of lists to be done iteratively
instead of recursively by default. Faster and leaner on stack space.
** Some more lists in kimwitu++ itself unparsing iteratively even though not
using default unparsing. Now very large files can be processed.
** If available, kimwitu++ now uses hash sets for storing casestrings. This can
speed up things dramatically. Use -DUSE_HASHSET while compiling k.cc
* Changes in kimwitu++ 2.0.3
** Using getopt_long now, this make option parsing more robust
* Changes in kimwitu++ 2.0.2
** Added terminator statement to attributeOf
** Fixed some namespace-related bugs
* Changes in kimwitu++ 2.0.0
** Brought Kimwitu++ in sync with Kimwitu 4.6
** Added option --overwrite to always overwrite generated files, even if they
did not change
** Renamed the fprintdotheader and fprintdotfooter functions into ...prologue
and ...epilogue, because these names better reflect their use
* Changes in kimwitu++ 1.3.12
** Note: This really is not a step from 1.3.5, but rather one from 2.0; I just
missed the chance to change to 1.9999 earlier
** Added option --yystype (generates YYSTYPE in yystype.h)
** Changed CSGIO functions (read takes reference, both throw exceptions)
** Keywords `%member' and `%attr';
the latter generates attributes which are handled by CSGIO
** Keywords `%ctor' and `%dtor' (not really, they appeared in some
earlier version, but I forget which)
** All in namespace kc
** Keyword `%option' to specify fixed options in file instead of
on command line
* Changes in kimwitu++ 1.3.5
** Added options --smart-pointer and --weak-pointer
** Made rviews and uviews work the same way once more
* Changes in kimwitu++ 1.3.4
** Changed a whole lot of type names for printer functions
** Added real old-style printer function support
* Changes in kimwitu++ 1.3.3
** Fixed old nullary operators bug
* Changes in kimwitu++ 1.3.2
** Added keyword `provided'
** made option `--verbose' work
* Changes in kimwitu++ 1.2.3
** Prettied up print method
* Changes in kimwitu++ 1.2.1
** Change kc_uviews::view to be a pointer type.
* Changes in kimwitu++ 1.2
** Rename KC_UView and uview to uview_class and uview_enum;
introduce uview as uview_class &.
** Change option names to use dashes instead of underscores.
** Remove support for non-sharing CSGIO
(This was a feature to make kimwitu 4 compatible with earlier versions)
** Add is_nil method to lists.
* Changes in kimwitu++ 1.1.1
** Rename kc_view_count to kc_last_uview; add kc_last_rview.
** Fix old kimwitu double-rewrite bug.
* Changes in kimwitu++ 1.1
** Rename kc_view_names to kc_uviews
To access view objects, you can use the kc_uviews array.
** The subphyla union has been removed;
the subphyla are now called <phylum>_<number>.
** The KC_SUBPHYLUM data structurs have been removed;
access to subphyla is now possible via the subphylum method.
** Lists now produce a single class only;
the Nillist is represented with two null subphyla.
** Syntax for C++ operators and overloading is now recognized.