 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
+USING: arrays assocs math ;
+
+: passing-benchmarks ( table -- table )
+  [ second first2 number? swap number? and ] subset ;
+
+: simplify-table ( table -- table ) [ first2 second 2array ] map ;
+
+: benchmark-difference ( old-table benchmark-result -- result-diff )
+  first2 >r
+  tuck swap at
+  r>
+  swap -
+  2array ;
+
+: compare-tables ( old new -- table )
+  [ passing-benchmarks simplify-table ] 2apply
+  [ benchmark-difference ] with map ;
+
+: show-benchmark-deltas ( -- )
+  "Benchmark deltas: " print
+
+  [
+    "../../benchmarks" eval-file
+    "../benchmarks"    eval-file
+    compare-tables .
+  ]
+    [ drop "Error generating benchmark deltas" . ]
+  recover ;
+  
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
 SYMBOL: build-status
 
 : (build) ( -- )


    "Benchmarks: " print
    "../benchmarks" [ stdio get contents eval ] with-file-reader benchmarks.

  ] with-file-writer


  case ;

: bootstrap-cmd ( -- cmd )
  { factor-binary { "-i=" my-boot-image-name } "-no-user-init" } to-strings ;

: bootstrap ( -- desc )
  <process*>
