I changed eqv? in dynamic.scm to be macro-expanded the way I suggested in the previous e-mail. It didn't make a whole lot of difference (note the compile time on my 2.something GHz opteron server; this is getting obscene).
Old way:
euler-83% ./bench gambit dynamic
Testing dynamic under Gambit-C-r5rs Compiling... 144.25user 5.18system 2:30.64elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+1214690minor)pagefaults 0swaps Running...
(time (run-bench name count ok? run)) 1315 ms real time 1265 ms cpu time (1231 user, 34 system) 33 collections accounting for 288 ms real time (265 user, 7 system) 245641224 bytes allocated 8696 minor faults no major faults
New way:
euler-81% ./bench gambit dynamic
Testing dynamic under Gambit-C-r5rs Compiling... 146.31user 5.43system 2:35.02elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+1220725minor)pagefaults 0swaps Running...
(time (run-bench name count ok? run)) 1231 ms real time 1190 ms cpu time (1160 user, 30 system) 33 collections accounting for 289 ms real time (270 user, 6 system) 245641224 bytes allocated 8696 minor faults no major faults
Under r6rs it doesn't seem to help at all; I don't know what's going on here:
old way:
euler-90% ./bench -c no -s r6rs gambit dynamic
Testing dynamic under Gambit-C-r6rs Compiling... 39.17user 1.81system 0:41.40elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+405124minor)pagefaults 0swaps Running...
(time (run-bench name count ok? run)) 1083 ms real time 1079 ms cpu time (1039 user, 40 system) 34 collections accounting for 279 ms real time (268 user, 7 system) 244653128 bytes allocated 7686 minor faults no major faults
new way:
euler-88% ./bench -c no -s r6rs gambit dynamic
Testing dynamic under Gambit-C-r6rs Compiling... 40.13user 1.65system 0:42.21elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+410675minor)pagefaults 0swaps Running...
(time (run-bench name count ok? run)) 1090 ms real time 1086 ms cpu time (1046 user, 40 system) 34 collections accounting for 281 ms real time (275 user, 4 system) 244653128 bytes allocated 7686 minor faults no major faults
Brad
(PS: You should really copy dynamic.scm to dynamic-data.scm and apply the program to that file; it would make it a lot easier to hack dynamic.scm without worrying about crashing the program or getting different results.)