[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