From: Richard Kreckel Date: Tue, 5 Apr 2016 20:51:12 +0000 (+0200) Subject: Merge branch 'c++11' in preparation for version 1.7.0. X-Git-Tag: release_1-7-0~7 X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=commitdiff_plain;h=9413cd14faaf2980de3884915e22a5beda068ecc;p=ginac.git Merge branch 'c++11' in preparation for version 1.7.0. --- 9413cd14faaf2980de3884915e22a5beda068ecc diff --cc NEWS index 1f7f2efb,c8220f42..aa6d33c7 --- a/NEWS +++ b/NEWS @@@ -1,12 -1,5 +1,45 @@@ This file records noteworthy changes. ++1.7.0 (TDB) ++* Make use of C++11 features: ++ - Use new language features 'auto', 'nullptr', 'constexpr', range-based for ++ loops, the contextual keyword 'override', static 'noexcept' operator, etc. ++ - Add initializer list ctors for container<>, lst and nested initializer ++ lists ctor for class matrix. ++ - Add many rvalue reference overloads for ctors from std containers. (Note ++ that whether they really speed up things depends on whether evaluation ++ leaves the container unchanged or not.) ++ - Rvalue reference overloads for ctors from std containers made it possible ++ to remove the manual 'discardable' hack and std::auto_ptr for good. ++ - New dynallocate(args...) helper functions obsolete manual allocation ++ on the heap and setting the dynallocated status flag. ++ - Got rid of C++98ish algorithm features (bind2nd, etc.) and replaced them ++ with lambdas. ++* Make add::eval(), mul::eval() more careful so they return an evaluated, ++ canonical expression without compromise. ++* Remove 'level' argument of all .eval() methods. This has become possible by ++ ensuring that add::eval() and mul::eval() evaluate their own structure ++ without compromise (this was not guaranteed before). If all ex are evaluated, ++ any object which is an aggregate of such ex will only ever have to ++ evaluate itself, obsoleting the need for recursing. ++* Remove 'level' arguments of all .evalf() and .normal() methods. They were ++ modeled after the .eval() methods. ++* Make relational::rhs() and lhs() nonvirtual. ++* Add support for power::info(info_flags::real). ++* Remove broken info_flags::algebraic. ++* Remove unmaintained support for Cint. ++* Remove unfinished andcode for hash table-based expairseq. ++* Remove deprecated ex::to_rational(lst) and ex::to_polynomial(lst). ++* ginac-excompiler installs in $LIBEXECDIR now, not in $BINDIR. ++* Many minor performance enhancements. ++ +1.6.7 (29 February 2016) +* Fix elusive bug in sqrfree(), normal(), numer(), and denom(). + +1.6.6 (20 December 2015) +* Fix elusive bug in add::eval(). +* Several minor performance enhancements. + 1.6.5 (27 July 2015) * Fix pow(+(...),2).expand() where the sum contained roots of expressions. * Speed-up pow(+(...),n).expand() where n > 3. diff --cc ginac/version.h index ffd77ce7,ba16c2ac..8a62970d --- a/ginac/version.h +++ b/ginac/version.h @@@ -27,10 -27,10 +27,10 @@@ #define GINACLIB_MAJOR_VERSION 1 /* Minor version of GiNaC */ --#define GINACLIB_MINOR_VERSION 6 ++#define GINACLIB_MINOR_VERSION 7 /* Micro version of GiNaC */ - #define GINACLIB_MICRO_VERSION 7 -#define GINACLIB_MICRO_VERSION 5 ++#define GINACLIB_MICRO_VERSION 0 // GiNaC library version information. It has very little to do with GiNaC // version number. In particular, library version is OS dependent. @@@ -49,8 -49,8 +49,8 @@@ // increasing. This doesn't matter, though: there is not incurred cost // for numbers that are omitted, except for shrinking the available space // of leftover numbers. Not something we need to worry about yet. ;-) --#define GINAC_LT_CURRENT 5 - #define GINAC_LT_REVISION 3 -#define GINAC_LT_REVISION 1 ++#define GINAC_LT_CURRENT 6 ++#define GINAC_LT_REVISION 0 #define GINAC_LT_AGE 0 /*