Thanks Boris and Hans for all this, I have just started to look at the new patches and it looks very impressive. I have pushed all pathes to the darcs repo, and added a tag "Pre-0.4-bundle" before and a tag "0.4-bundle" after.
One thing you might want to know before upgrading, when comparing the performance testcases the new version seems a bit slower on my sbcl (see below).
I'll look more into this.
Best wishes, Henrik Hjelte
SBCL 1.0.21.34
Encoder:
Pre-0.4-bundle: CL-USER> (5am:run! 'json-test::encoder-performance) Encoding 652 varying chars from memory 2000 times. Evaluation took: 0.160 seconds of real time 0.152009 seconds of total run time (0.144009 user, 0.008000 system) [ Run times consist of 0.008 seconds GC time, and 0.145 seconds non-GC time. ] 95.00% CPU 346,830,716 processor cycles 14,245,920 bytes consed
0.4-bundle:
CL-USER> (5am:run! 'json-test::encoder-performance) Encoding 652 varying chars from memory 2000 times. Evaluation took: 0.143 seconds of real time 0.144009 seconds of total run time (0.136008 user, 0.008001 system) [ Run times consist of 0.020 seconds GC time, and 0.125 seconds non-GC time. ] 100.70% CPU 309,824,182 processor cycles 26,578,824 bytes consed
Decoder:
Pre-0.4-bundle: CL-USER> (5am:run! 'json-test::decoder-performance) Decoding 1387 varying chars from memory 1000 times. Evaluation took: 0.667 seconds of real time 0.652041 seconds of total run time (0.632039 user, 0.020002 system) [ Run times consist of 0.024 seconds GC time, and 0.629 seconds non-GC time. ] 97.75% CPU 1,440,436,365 processor cycles 80,807,408 bytes consed
0.4-bundle: CL-USER> (5am:run! 'json-test::decoder-performance) Decoding 1387 varying chars from memory 1000 times. Evaluation took: 2.139 seconds of real time 2.108132 seconds of total run time (1.628102 user, 0.480030 system) [ Run times consist of 0.032 seconds GC time, and 2.077 seconds non-GC time. ] 98.55% CPU 4,624,819,100 processor cycles 105,295,912 bytes consed