Hello! On Wed, Sep 10, 2008 at 09:31:52AM +0200, Jens Vollinga wrote:
Alexei Sheplyakov schrieb:
could you please pull from git://ffmssmsc.jinr.ru:443/varg/ginac.git master
done!
Thank you very much!
Merge: 7d23da3... c647bf0... Author: Jens Vollinga <jensv@nikhef.nl> Date: Tue Sep 9 22:42:50 2008 +0200
It would be nice to avoid merge commits in the official repository. It looks like you've got some commits in your working copy which were not pushed into the official repository: commit 7d23da3e0ee0d03f90f47585ea27f86ecbfe866b Author: Jens Vollinga <jensv@nikhef.nl> Date: Tue Sep 9 22:41:39 2008 +0200 commit 416f530b032f2861bb3cb96d23f14097237a87ea Author: Jens Vollinga <jensv@nikhef.nl> Date: Tue Sep 9 22:41:24 2008 +0200 Thus, the merge was non fast-forward, so there was a merge commit which end up in the official repository. Assuming that 1. Your 'origin' remote is the official repository (i.e. git://www.ginac.de/ginac.git), 2. Your commits are not pushed yet (otherwise merge is unavoidable, and there's no need to bother) the following incantations can be used to avoid such a spurious merge: [ commit changes if necessary ] $ git checkout -b tmp-master origin/master # merge my patches, this should be a fast forward (see condition 2) $ git pull git://ffmssmsc.jinr.ru:443/varg/ginac master # rebase your work on top of that $ git checkout master $ git rebase tmp-master # erase the temporary branch $ git branch -d tmp-master # publish your and my patches $ git push origin
BTW, your changes in inifcns_nstdsums.cpp made me remember that a long time ago I wanted to make ginac functions into their own full classes (even had a cvs branch for that already).
My purpose is a bit different. I'm trying to 1. Make GiNaC reentrant (and thread-safe). 2. Make numerical evaluation of multiple polylogarithms faster. Quite a number of helper functions use ex for number crunching (instead of cl_{N,I,RA}). Typically this results in substantial performance hit (see e.g. http://www.ginac.de/pipermail/ginac-devel/2007-March/001155.html), so that code needs to be fixed. 3. Shut up numerous warnings G++ emits while compiling inifcns_nstdsums.cpp. I think G++ is quite right: it's a bad idea to use int and std::size_t interchangeably (at least for two reasons: a) int is signed, size_t is unsigned, b) sizeof(int) != sizeof(std::size_t)), so this needs to be fixed too.
One of the reasons was exactly to get the code in inifcns_nstdsums.cpp into a clean, oo, and of course reentrant form.
I don't quite understand how converting G{2,3}, Li and friends into full-blown GiNaC classes can help. Could you elaborate, please?
While I gave up on forcing this class idea into the main code base I still have not given up the idea completely. Is it maybe time to reactivate this idea? What do you think?
AFAIR the new RTTI is a prerequisite for converting functions into classes. Is this correct? Best regards, Alexei -- All science is either physics or stamp collecting.