CodeBoost NEWS (-*- Text -*-) ============== Version 0.2.2: (not released yet) * Improved C++ support: + Type comparison in overload resolution is more correct + Overload resolution support function pointer types and ellipsis + Function-style casts are supported + 'friend', 'delete' and 'new' are supported + Non-literal expressions and functions are supported as template arguments * Improved Sophus support: + Support for SGML function generation + Support for strange naming conventions * Mutification improvements: + Works with functions and operators in Root scope (stub generation doesn't work yet, however) + Will no longer generate useless temporaries in function mutification * User-defined rule improvements: + New module (apply-user-rules) for efficiently applying topdown and bottomup rules + Support for sublist matching (for functions with variable number of arguments) + Simple support for conditions/where-clauses: binding new meta-variables and finding the length of argument lists + Support for generic rules -- rules that are not tied to specific functions and operators (or even to specific function or operator names) + User-defined rules are now *much* faster * New compose extension for composition of functions with arbitrary arities * New map pattern extension (for Sophus) for automatically generating map-like functions with varying arities from a pattern (or template, in the non-C++ sense) * Performance improvement: CodeBoost runs much faster (especially when using load/save) * Better regression testing * New transformations + Sophus-specific matrix specialisation. Pointwise algebraic operators on matrix structures can be specialised according to a compile-time defined layout. + Symbolic program derivation. Initial implementation of a derivation operator on the for D(x,y,z) that derives the function f(x,y,z) on argument 1. + Tree dumping. To inspect the program at any point in the transformations, you can now insert the dump transformation that emits the tree to stderr. * Examples + examples/ is now populated by examples on which the different transformations can be applied. Some even have timing tests to show speedwise improvements. Version 0.2.1: * ASTs can be saved and reloaded * AST change FunDecl, ClsDecl and EnumDecl, when occurring as a declaration, are now wrapped in Decl(decl, sig), where sig is the canonical signature for that declaration -- all related declarations and definitions will have the same signature. This makes it easy to relate the definition of a function to its declaration (and to any application). VarDecls in argument lists within a Sig should now have NoName and NoExpr as name and initialiser. ``make-sig'' in sigs.r takes care of making a proper signature from a FunDecl. * New AST extensions: Map and Lambda Version 0.2.0: * This is the first release capable of doing anything useful...