values bench added by megane on Thu Aug 9 12:20:58 2012
(define (foo a) (values (+ 1 a) a)) (define (bar a) (cons (+ 1 a) a)) (define nloops 1e7) (time (let lp [(i 0)] (if (< i nloops) (lp (car (bar i))) (print i)))) (time (let lp [(i 0)] (if (< i nloops) (receive (a b) (foo i) (lp a)) (print i)))) ;; $ csc -O3 simpl.scm && ./simpl ;; 10000000 ;; 0.588s CPU time, 0/1948 GCs (major/minor) ;; 10000000 ;; 5.768s CPU time, 1.772s GC time (major), 2816/3330517 GCs (major/minor)