diff --git a/examples/small-coalton-programs/small-coalton-programs.asd b/examples/small-coalton-programs/small-coalton-programs.asd index 79359f68c..d9d9a0aa6 100644 --- a/examples/small-coalton-programs/small-coalton-programs.asd +++ b/examples/small-coalton-programs/small-coalton-programs.asd @@ -1,5 +1,5 @@ (asdf:defsystem #:small-coalton-programs - :depends-on (#:coalton) + :depends-on (#:coalton #:coalton/benchmarking) :pathname "src/" :serial t :components ((:file "package") diff --git a/examples/small-coalton-programs/src/brainfold.lisp b/examples/small-coalton-programs/src/brainfold.lisp index 11d0c18b3..46bc5db5f 100644 --- a/examples/small-coalton-programs/src/brainfold.lisp +++ b/examples/small-coalton-programs/src/brainfold.lisp @@ -17,7 +17,8 @@ (cl:defpackage #:brainfold (:use #:coalton - #:coalton-prelude) + #:coalton-prelude + #:coalton-benchmarking) (:local-nicknames (#:vec #:coalton-library/vector) (#:iter #:coalton-library/iterator) @@ -31,12 +32,14 @@ (:export #:eval #:run-program - #:run-file - + #:run-file) + (:export ;; Examples #:hello-world #:gnarly-hello-world - #:squares)) + #:squares) + (:export + #:run-brainfold-benchmarks)) (in-package #:brainfold) @@ -305,3 +308,36 @@ (define (squares) (run-program "++++[>+++++<-]>[<+++++>-]+<+[>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]"))) + +(define-benchmark bf-hello 1 + (fn () + (hello-world) + Unit)) + +(define-benchmark bf-hello10 10 + (fn () + (hello-world) + Unit)) + +(define-benchmark bf-gnarly 1 + (fn () + (gnarly-hello-world) + Unit)) + +(define-benchmark bf-gnarly10 10 + (fn () + (gnarly-hello-world) + Unit)) + +(define-benchmark squares 1 + (fn () + (squares) + Unit)) + +(define-benchmark squares10 10 + (fn () + (squares) + Unit)) + +(cl:defun run-brainfold-benchmarks () + (run-package-benchmarks "brainfold"))