[GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-101-gb815027

Jens Vollinga git at ginac.de
Tue Sep 9 22:41:28 CEST 2008


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GiNaC -- a C++ library for symbolic computations".

The branch, master has been updated
       via  b8150271ff497c2ef0c2a8748f5f53b4f1bab7c8 (commit)
       via  7d23da3e0ee0d03f90f47585ea27f86ecbfe866b (commit)
       via  416f530b032f2861bb3cb96d23f14097237a87ea (commit)
       via  c647bf0942d660691272a8a2f4d7e5a3c0f6eb0f (commit)
       via  93eb93a10a2f29360baa4ab45d5b34b982c7fa5c (commit)
       via  a32a30d8ccdd0eb945b8180c8fe82d154e9280de (commit)
       via  e677a783b3c986ceb873a580a18f2214ad6de52c (commit)
       via  a3009dfc5402f6253e9219201f48d972dd46984b (commit)
       via  4a9f6c276daf54acbb2f5951f0435bfb6f014809 (commit)
       via  b21923803208edf7ec3b0bfaa51f813cb25a0d86 (commit)
       via  66633e0aca7656c2826e2fd06dc638eac8900660 (commit)
       via  0f26d08929532724d24a60e9fa5e5e98c4b2fa55 (commit)
       via  db751462877f91d8b76a0fd80d48330eddcb7095 (commit)
       via  192ed7390b7b2b705ad100e3db0a92eedd2b20ad (commit)
       via  aff357309f6611a59efb10d06d3dcfd3812a9ec5 (commit)
       via  1776cd33da528c878ef1fb5530f8ac788e445ee5 (commit)
       via  eaa0370ac188561e02195a377b252b4caf5ab57a (commit)
       via  dae52def8dd15914d32c94c2c21e2bd8419b65bb (commit)
       via  773570d668a8a86d4c646dfe9d8572746329652c (commit)
       via  85dbe3f2049dce7d43a1bd956d622f4ff5c0c156 (commit)
       via  581244b7b8fc9b5f81291e1a3f5731939e3f3d8e (commit)
      from  bb6b3d82cdf9e7ff4ecac89c47e63024e39ec96b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b8150271ff497c2ef0c2a8748f5f53b4f1bab7c8
Merge: 7d23da3e0ee0d03f90f47585ea27f86ecbfe866b c647bf0942d660691272a8a2f4d7e5a3c0f6eb0f
Author: Jens Vollinga <jensv at nikhef.nl>
Date:   Tue Sep 9 22:42:50 2008 +0200

    Merge branch 'master' of git://ffmssmsc.jinr.ru:443/varg/ginac

commit 7d23da3e0ee0d03f90f47585ea27f86ecbfe866b
Author: Jens Vollinga <jensv at nikhef.nl>
Date:   Tue Sep 9 22:41:39 2008 +0200

    Bug fix related to the usage of int instead of cl_I.

commit 416f530b032f2861bb3cb96d23f14097237a87ea
Author: Jens Vollinga <jensv at nikhef.nl>
Date:   Tue Sep 9 22:41:24 2008 +0200

    Updated NEWS.

commit c647bf0942d660691272a8a2f4d7e5a3c0f6eb0f
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Tue Sep 9 14:44:25 2008 +0400

    build: shut up automake warnings, don't use GNU make extensions.
    
    Not that I really care about non-GNU makes, but those warnings are a bit
    annoying and can hide useful ones.

commit 93eb93a10a2f29360baa4ab45d5b34b982c7fa5c
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Mon Sep 8 11:53:30 2008 +0400

    build: put (almost) all auto* tools scripts into the config directory.
    
    So I can just rm -rf it to clean up the repository.

commit a32a30d8ccdd0eb945b8180c8fe82d154e9280de
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Mon Sep 8 11:09:20 2008 +0400

    Allow user to disable GiNaC::compile_ex (e.g. for security reasons).
    
    configure takes --{disable,enable}-excompiler argument now. It can be
    used to disable GiNaC::compile_ex (default is to enable it).
    
    acinclude.m4:
    GINAC_EXCOMPILER: new macro. Checks for libdl, allows user to disable
    GiNaC::compile_ex. Also it doesn't bother to check for libdl on MinGW.
    
    configure.ac: use GINAC_EXCOMPILER to check for libdl.

commit e677a783b3c986ceb873a580a18f2214ad6de52c
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Sun Sep 7 22:53:07 2008 +0400

    configure: run important checks first (and bail out if something is missing).
    
    Don't bother to check for optional stuff if CLN and/or standard C++ headers
    are missing.

commit a3009dfc5402f6253e9219201f48d972dd46984b
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Sun Sep 7 22:47:01 2008 +0400

    configure: don't bother to run checks which can be done at the compile time.
    
    Don't check for sizeof of various types, this can be done at the compile time.
    GCC optimizes away these checks, so the actual code is the same.

commit 4a9f6c276daf54acbb2f5951f0435bfb6f014809
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Sun Sep 7 22:17:55 2008 +0400

    utils.h: use <stdint.h> (if available) instead of reinventing it.
    
    The argument of golden_ratio_hash() is as an integer of the same size as
    a void* pointer. Unfortunately ISO C++ 98 does not provide suitable typedef.
    Hence
    
    * use <stdint.h> if available and define p_int to uintptr_t. Note: AC_PROG_CC
      already checks for this header, so no extra checks are necessary.
    * as a fallback define p_int to be unsigned long, this works on most systems
      I know of (the only exception is woe64).
    
    While at it, stop including "config.h" unconditionally.

commit b21923803208edf7ec3b0bfaa51f813cb25a0d86
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Sat Sep 6 09:21:18 2008 +0400

    configure: don't check for sizeof(long double), we don't use it.

commit 66633e0aca7656c2826e2fd06dc638eac8900660
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Sat Sep 6 08:51:19 2008 +0400

    build: faster check for standard C++ headers.
    
    Include them all into a test program and check if it compiles (in order to reduce
    the run time of the `configure' script).

commit 0f26d08929532724d24a60e9fa5e5e98c4b2fa55
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Mon Jun 9 16:21:30 2008 +0400

    build: don't run any ${host} binaries while checking for readline.
    
    Now GiNaC (to be more precise, ginsh) can be easily cross compiled.
    However, ancient versions of readline (<= 4.2) are not supported any more.

commit db751462877f91d8b76a0fd80d48330eddcb7095
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Mon Sep 8 11:50:12 2008 +0400

    don't mention CVS any more, describe how to install from git.

commit 192ed7390b7b2b705ad100e3db0a92eedd2b20ad
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Tue Jul 15 21:08:22 2008 +0400

    match: don't modify subexpression list if expression doesn't match the pattern.
    
    As of now the match() method modifies the list of matched subexpressions
    (its second argument) even if the expression in question does not match
    the pattern. Thus, this simple program
    
     #include <ginac/ginac.h>
     #include <iostream>
    using namespace GiNaC;
    
    int main(int argc, char** argv)
    {
    	symbol x;
    	ex e = pow(x, 5);
    	ex pattern = pow(wild(), -1);
    	lst repl;
    	bool test = e.match(pattern, repl);
    	std::cout << "repl = " << repl << std::endl;
    }
    
    prints
    
    repl = {x}
    
    Such behaviour is a bit unexpected. Sometimes it confuses even GiNaC
    developers, see e.g.
    http://www.ginac.de/pipermail/ginac-devel/2006-April/000942.html
    
    Hence this patch. Now the above program prints
    
    repl = {}
    
    as expected.

commit aff357309f6611a59efb10d06d3dcfd3812a9ec5
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Tue Aug 19 15:39:46 2008 +0400

    [BUGFIX] Reclaiming the memory allocated for static objects *is* necessary.
    
    GiNaC allocates memory for static objects (i.e. flyweights, remember tables,
    etc), but doesn't free it. This is OK if the program lifetime matches libginac
    lifetime, since the OS will reclaim that memory anyway.
    However, if the program lifetime is different from that of libginac, this
    turns into a memory leak. This happens if someone dlopen's libginac.so, and
    dlclose's it later on (read: if someone uses GiNaC via scripting language
    bindings).
    
    symbol::autoname_prefix(): there's no need for dynamical memory allocation.
    remember_table::remember_tables(): likewise.
    function::registered_functions(): likewise.
    lib_init::~lib_init(): if library usage count drops to 0, reclaim the memory
                           allocated for flyweights.

commit 1776cd33da528c878ef1fb5530f8ac788e445ee5
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Tue Sep 9 11:14:57 2008 +0400

    symbol: get rid of assign/unassign (for performance and other reasons).
    
    * symbol::eval() is trivial now, so compiler can inline it in some cases.
    * symbol takes less memory.
    * no functionality is lost (as C++ has associative arrays).

commit eaa0370ac188561e02195a377b252b4caf5ab57a
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Tue Sep 9 10:39:26 2008 +0400

    ginsh: use exmap for storing assigned symbols.
    
    C++ already have associative arrays, there's no need to re-invent them.

commit dae52def8dd15914d32c94c2c21e2bd8419b65bb
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Fri Aug 29 23:44:51 2008 +0400

    multiple zeta values: make crandall_Y_loop helper function reentrant.
    
    * Move crB and crG variables into initcX function (the only user of these
      variables).
    * Pass crX coefficients to crandall_Y_loop instead of using a global variable.
    * While at it make crandall_Y_loop and initcX functions static.

commit 773570d668a8a86d4c646dfe9d8572746329652c
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Fri Aug 29 23:44:51 2008 +0400

    multiple zeta values: make crandall_Z helper function reentrant.
    
    Pass the f_kj coefficients as an arguments to crandall_Z and calc_f
    functions instead of using global variables.

commit 85dbe3f2049dce7d43a1bd956d622f4ff5c0c156
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Mon Aug 25 19:08:36 2008 +0400

    parser: improve error reporting a little bit.
    
    Introduce class 'parse_error' (which contain some info about location of
    the error) and throw it on parse errors.
    
    N.B.: the actual info is a bit inaccurate because lexer doesn't track
    the location properly yet.

commit 581244b7b8fc9b5f81291e1a3f5731939e3f3d8e
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Mon Aug 25 17:49:58 2008 +0400

    lexer: when switching to another output stream, clean last read character.
    
    Otherwise we prepend to the current stream the last character read from
    the previous stream, which is obviously incorrect.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                  |    9 ++-
 INSTALL                    |   11 +--
 NEWS                       |   38 ++++++++++++
 acinclude.m4               |  139 +++++++++++++++++++++++++++++++++-----------
 check/exam_factor.cpp      |   24 ++++++++
 configure.ac               |   67 +++++----------------
 doc/examples/Makefile.am   |    4 +-
 doc/tutorial/Makefile.am   |    6 +-
 doc/tutorial/ginac.texi    |    7 +--
 ginac/basic.cpp            |    8 ++-
 ginac/factor.cpp           |   21 +++++--
 ginac/function.pl          |    4 +-
 ginac/inifcns_nstdsums.cpp |   76 +++++++++++-------------
 ginac/parser/debug.hpp     |   13 ++++
 ginac/parser/lexer.cpp     |   15 +++++
 ginac/parser/lexer.hpp     |    3 +
 ginac/parser/parser.cpp    |   20 ++-----
 ginac/parser/parser.hpp    |   12 ++++
 ginac/remember.cpp         |    4 +-
 ginac/symbol.cpp           |   61 +++----------------
 ginac/symbol.h             |   25 +-------
 ginac/utils.cpp            |   55 ++++++++++++++++-
 ginac/utils.h              |   23 ++++---
 ginsh/ginsh.1.in           |    4 +-
 ginsh/ginsh_parser.yy      |   62 ++++++++++----------
 25 files changed, 415 insertions(+), 296 deletions(-)


hooks/post-receive
--
GiNaC -- a C++ library for symbolic computations


More information about the GiNaC-devel mailing list