I did a few performance tests, and so far 2.0.9 performs much worse than 1.8.8.
I do not know why, but one simple first test I did was
(define foo (fac 10000))
which for guile-1.8.8 has as average around 60 ms but for guile-2.0.9 has as
average around 212 ms (almost no time in gc in average). I also checked
by removing libgmp that libgmp was really used. Then I tried to run the benchmark-suite which was also quite tedious, as they are not directly
compatible between 1.8.8 2.0.9, but those tests I succeded to run indicated
much worse performance, around 10 times slower for 2.0.9. I also checked
the results 35660 digits, and they were identical.
I suspect something strange to be hidden there, which I'll check with some
standard benchmark tests. I found a set at
http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/scheme/code/benc
h/gabriel/gabriel.tgz
that I will try with later.
However, as guile-1.8.8 goes very very fast to build compared to guile-2.0.9,
mostly due to compilation of ice-9 and my programs certainly need quite a
lot of adaptation for 2.0.9 I'll start with guile-1.8.8 (there was a lot of work to
adapt them from guile-1.7 to guile-1.8 earlier).
The fac I used above was defined as:
(define (fac n)
(define (iter n res)
(if (> n 1)
(iter (1- n) (* n res))
res))
(iter n 1))
/Roland