diff --git a/collects/meta/drdr/graph.rkt b/collects/meta/drdr/graph.rkt
deleted file mode 100644
index 333ee37fa2..0000000000
--- a/collects/meta/drdr/graph.rkt
+++ /dev/null
@@ -1,26 +0,0 @@
-#lang racket
-(require racket/system
- "config.rkt"
- "path-utils.rkt"
- "dirstruct.rkt")
-
-(define rebaser
- (rebase-path (plt-data-directory) "/data"))
-
-(define (main filename)
- (define prefix
- (path-timing-png-prefix filename))
- (system*/exit-code
- (path->string
- (build-path (plt-directory) "plt" "bin" "gracket-text"))
- "-t"
- (path->string (build-path (drdr-directory) "graphs" "build-graph.rkt"))
- "--"
- "-l" (string-append "http://drdr.racket-lang.org/~a/" (path->string* filename)) ; XXX
- "--image-loc" "/graph-images/"
- (path->string (path-timing-log filename))
- (path->string prefix)
- (path->string (rebaser prefix))
- (path->string (path-timing-html filename))))
-
-(provide main)
diff --git a/collects/meta/drdr/graphs/README b/collects/meta/drdr/graphs/README
deleted file mode 100644
index 4ff5b4648f..0000000000
--- a/collects/meta/drdr/graphs/README
+++ /dev/null
@@ -1,22 +0,0 @@
-- build the global .png files with a recent svn build:
-
- gracket-text mk-img.rkt
-
- This will dump some png files in the current directory. Put them in
- some global place on the server
-
-- to build a script for a particular page, do this:
-
- gracket-text build-graph.rkt -l http://drdr.racket-lang.org/~a/collects/path/to/file.scm \
- --image-loc /static/data/graph-images/ \
- file_scm.timing \
- file_scm_png_file_prefix \
- output.html
-
- The -l flag is optional, without it clicking on the images won't go
- anywhere; with it, clicking will go to the corresponding revision.
- The --image-loc flag gives a url path to the directory containing
- the images from the mk-img.rkt setp. The other three args are the
- timing data file, a prefix for the png files that generated for the
- graphs, and the output html (which is a
...
).
-
diff --git a/collects/meta/drdr/graphs/build-graph.rkt b/collects/meta/drdr/graphs/build-graph.rkt
deleted file mode 100644
index 8b44ec7d63..0000000000
--- a/collects/meta/drdr/graphs/build-graph.rkt
+++ /dev/null
@@ -1,690 +0,0 @@
-#lang racket/gui
-(require xml)
-
-(require "constants.rkt")
-
-;; example data:
-;; http://drdr.racket-lang.org/data/collects/tests/mzscheme/benchmarks/common/earley_ss.timing
-
-;;; ========================================
-
-;; a raw-line is
-;; (list number number (listof (list number number number)))
-
-;; a graph is
-;; (make-graph revision-number revision-number (listof line))
-(define-struct graph (start end lines) #:transparent)
-
-;; a line is
-;; (make-line number number (listof point) string symbol)
-;; style = (or/c 'overall 'cpu 'real 'gc)
-(define-struct line (min max points color style) #:transparent)
-
-;; value : number between [0,1] indicating the percentage
-;; of the time of the slowest run
-;; revision : revision number
-(define-struct point (value revision) #:transparent)
-
-
-;; revision : nat
-;; x-pixel : nat
-(define-struct coordinate (revision x-pixel) #:transparent)
-
-(define graph-gap 4)
-(define max-revisions-per-graph (make-parameter 400))
-
-(define max-graphs-per-image (floor (/ graphs-width (+ graph-gap 4))))
-(define max-samples-per-image (floor (/ graphs-width 3)))
-
-(define link-format-string #f)
-
-(define image-loc "./")
-
-(define full? #f)
-
-(define-values (input-file image-filename-prefix image-url-prefix html-file)
- (command-line
-#|
- #:argv
- #("-l"
- "http://drdr.racket-lang.org/~a/collects/tests/mzscheme/benchmarks/mz/expand-class.scm"
- "expand-class_scm.timing" "out" "out.html" )
-|#
- #:once-each
- [("-f" "--full")
- "indicates that a complete html file should be produced; otherwise, a single div is all you get"
- (set! full? #t)]
- [("-l" "--link")
- link-format
- "specifies where revisions link to; expected to be a url with a ~a in the middle"
- (set! link-format-string link-format)]
- [("--image-loc")
- url-path
- "specify the path to the image files for html generation (not just to the dir; to the file itself)"
- (unless (regexp-match #rx"/$" url-path)
- (error 'build-graph.rkt "expected the image-loc to end with a /, got ~a" url-path))
- (set! image-loc url-path)]
- #:args (input-file image-filename-prefix image-url-prefix html-file)
- (values input-file image-filename-prefix image-url-prefix html-file)))
-
-(define dot-image-file (string-append image-loc "dot.png"))
-(define before-image-file (string-append image-loc "before.png"))
-(define after-image-file (string-append image-loc "after.png"))
-
-
-
-
-;
-;
-;
-;
-; ;;
-; ;
-; ;;;;; ;;;;; ;;;; ;;;; ;; ;;;;; ;;;;;
-; ;;;;; ;; ;; ;;; ;; ;; ;; ;;;;; ;;;;;
-; ;; ;; ;;;; ;; ;;;; ;; ;; ;;;;;; ;;
-; ;; ;; ;;;;;; ;; ;;;; ;; ;; ;;;;;; ;;
-; ;;;;;;;;; ;;; ;; ;;; ;; ;; ;; ;;; ;;;;;
-; ;;;;; ;;;;;; ;; ;;;; ;; ;; ;;; ;;;;;
-; ;; ;; ;;
-; ;; ;;;;;
-;
-;
-
-;; orig-data : hash[revision-number -o> sexp]
-;; the original lines from the files, indexed by revision number
-(define orig-data (make-hash))
-
-(define (revision->duration revision)
- (let ([info (hash-ref orig-data revision)])
- (floor (inexact->exact (list-ref info 1)))))
-
-(define (revision->timings-array revision)
- (let ([info (hash-ref orig-data revision)])
- (apply
- string-append
- (append (list "[")
- (add-between (map (λ (line)
- (format "'cpu time: ~a real time: ~a gc time: ~a'"
- (list-ref line 0)
- (list-ref line 1)
- (list-ref line 2)))
- (list-ref info 2))
- ",")
- (list "]")))))
-
-;; this build ex2.rkt out of ex.rkt
-;; adjust : raw-line -> raw-line
-(define adjust
- (let ([seen-time #f])
- (lambda (l)
- (match l
- [`(,rev ,time ,times)
- (cond
- [(empty? times)
- l]
- [(not seen-time)
- (set! seen-time 1)
- l]
- [(< seen-time 30)
- (set! seen-time (+ seen-time 1))
- l]
- [else
- (list (list-ref l 0)
- (list-ref l 1)
- (list (car (list-ref l 2))
- (map (λ (x) (* x 10)) (car (list-ref l 2)))))])]))))
-
-;; fetch-data : string -> (listof raw-line)[uniq revision-numbers]
-(define (fetch-data file)
- (call-with-input-file file
- (λ (port)
- (let loop ()
- (let ([l (read port)])
- (cond
- [(eof-object? l) '()]
- [(hash-ref orig-data (car l) #f)
- ;; skip duplicate revisions
- (loop)]
- [else
- (hash-set! orig-data (car l) l)
- (cons l (loop))]))))))
-
-;; build-graphss : (listof raw-line) -> (listof (listof graph))
-(define (build-graphss data)
- (let ([large-graphs
- (filter
- (λ (x) (<= 2 (length (line-points (car (graph-lines x))))))
- (build-large-graphs data))])
- (let loop ([graphs (reverse large-graphs)])
- (let-values ([(first rest) (split-out-graph graphs)])
- (cond
- [(null? rest)
- (list first)]
- [else
- (cons first (loop rest))])))))
-
-;; split-out-graphs : (listof graph) -> (values (listof graph) (listof graph))
-;; first result is a set of graphs to go into a single image
-;; limits the number of graphs and the number of total samples
-;; expects the graphs to be in order from the right to the left
-;; returns the first result in the opposite order and the second result in the same order.
-(define (split-out-graph graphs)
- (let loop ([graphs graphs]
- [sample-count 0]
- [graph-count 0]
- [current '()])
- (cond
- [(null? graphs)
- (values current graphs)]
- [(< max-graphs-per-image graph-count)
- (values current graphs)]
- [else
- (let* ([graph (car graphs)]
- [this-graph-samples (graph-sample-count graph)])
- (cond
- [(<= (+ sample-count this-graph-samples) max-samples-per-image)
- ;; if this graph fits, take it.
- (loop (cdr graphs)
- (+ sample-count this-graph-samples)
- (+ graph-count 1)
- (cons graph current))]
- [(<= sample-count (/ max-samples-per-image 2))
- ;; if the graph doesn't fit, and we have less than 1/2 of the samples that fill
- ;; the page, break this graph into two graphs, taking the first part of the split
- (let-values ([(before after) (split-graph
- graph
- (- max-samples-per-image sample-count))])
- (values (cons before current)
- (cons after (cdr graphs))))]
- [else
- ;; otherwise, just stop with what we have now
- (values current
- graphs)]))])))
-
-;; split-graph : graph number -> (values graph graph)
-;; break graph into two pieces where the first piece has 'max-samples' samples
-;; split-point <= number of samples in graph
-(define (split-graph graph split-point)
- (let* ([this-graph-samples (graph-sample-count graph)]
- [orig-lines (graph-lines graph)]
- [lines-before (pull-out orig-lines (λ (x) (take x split-point)))]
- [lines-after (pull-out orig-lines (λ (x) (drop x split-point)))]
- [lines-before-last-revision
- (apply max (map point-revision (line-points (car lines-before))))]
- [lines-after-first-revision
- (apply min (map point-revision (line-points (car lines-after))))])
- (values (make-graph (graph-start graph)
- lines-before-last-revision
- lines-before)
- (make-graph lines-after-first-revision
- (graph-end graph)
- lines-after))))
-
-;; pull-out : (listof line) (-> (listof point) (listof point)) -> (listof line)
-;; makes lines like 'lines', but using puller to select the relevant points
-(define/contract (pull-out lines puller)
- (-> (listof line?) (-> (listof point?) (listof point?)) (listof line?))
- (map (λ (line)
- (let* ([new-points (puller (line-points line))]
- [max-v (apply max (map point-value new-points))]
- [min-v (apply min (map point-value new-points))])
- (make-line min-v
- max-v
- new-points
- (line-color line)
- (line-style line))))
- lines))
-
-(define (graph-sample-count graph)
- (length (line-points (car (graph-lines graph)))))
-
-;; build-large-graphs : (listof raw-line) -> (listof graph)
-(define (build-large-graphs data)
- (let loop ([data data]
- [working-graph '()])
- (cond
- [(null? data)
- (if (null? working-graph)
- '()
- (list (finalize-graph (reverse working-graph))))]
- [else
- (let ([this (car data)])
- (cond
- [(matching-line? this working-graph)
- (loop (cdr data)
- (cons this working-graph))]
- [else
- (cons (finalize-graph (reverse working-graph))
- (loop data '()))]))])))
-
-;; matching-line? : raw-line (listof raw-line) -> boolean
-;; #t if the line fits into this graph
-(define (matching-line? line working-graph)
- (or (null? working-graph)
- (match line
- [`(,rev ,time ,line-seqs)
- (match (car working-graph)
- [`(,rev ,time ,working-line-seq)
- (= (length line-seqs)
- (length working-line-seq))])])))
-
-;; split-up : (listof X) -> (listof (listof X))
-;; splits up the working graph into at chunks of size at most
-;; max-revisions-per-graph.
-(define (split-up working-graph)
- (reverse
- (let loop ([working-graph (reverse working-graph)]
- [i 0]
- [pending '()])
- (cond
- [(null? working-graph)
- (if (null? pending)
- '()
- (list pending))]
- [else
- (if (< i (max-revisions-per-graph))
- (loop (cdr working-graph)
- (+ i 1)
- (cons (car working-graph) pending))
- (cons pending
- (loop working-graph 0 '())))]))))
-
-;; poor man testing ....
-(parameterize ([max-revisions-per-graph 3])
- (unless (and (equal? (split-up '()) '())
- (equal? (split-up '(1)) '((1)))
- (equal? (split-up '(1 2)) '((1 2)))
- (equal? (split-up '(1 2 3)) '((1 2 3)))
- (equal? (split-up '(1 2 3 4)) '((1) (2 3 4)))
- (equal? (split-up '(1 2 3 4 5)) '((1 2) (3 4 5)))
- (equal? (split-up '(1 2 3 4 5 6)) '((1 2 3) (4 5 6)))
- (equal? (split-up '(1 2 3 4 5 6 7)) '((1) (2 3 4) (5 6 7))))
- (error 'tests-failed)))
-
-;; finalize-graph : (non-empty-listof raw-line) -> graph
-(define (finalize-graph working-graph)
- (restart-colors)
- (let ([revisions (map first working-graph)])
- (make-graph
- (car (car working-graph))
- (car (last working-graph))
- (cons
- (build-line 'overall
- (map second working-graph)
- revisions
- "black")
- (apply
- append
- (let ([cpu-real-gcss (map third working-graph)])
- (for/list ([ele (car cpu-real-gcss)]
- [i (in-naturals)])
- (let ([color (next-color)])
- (list (build-line 'cpu
- (map (λ (x) (first (list-ref x i)))
- cpu-real-gcss)
- revisions
- color)
- (build-line 'real
- (map (λ (x) (second (list-ref x i)))
- cpu-real-gcss)
- revisions
- color)
- (build-line 'gc
- (map (λ (x) (third (list-ref x i)))
- cpu-real-gcss)
- revisions
- color))))))))))
-
-(define (build-line which points revisions color)
- (let ([min-v (apply max points)]
- [max-v (apply max points)])
- (make-line min-v
- max-v
- (map make-point points revisions)
- color which)))
-
-(define-values (next-color restart-colors)
- (let ([colors '("darkred"
- "mediumvioletred"
- "brown"
- "midnightblue")]
- [i 0])
- (values (λ ()
- (begin0
- (list-ref colors i)
- (set! i (modulo (+ i 1) (length colors)))))
- (λ ()
- (set! i 0)))))
-
-
-;
-;
-;
-;
-; ;; ;;
-; ;; ;
-; ;;;;; ;;;; ;;;;; ;; ;; ;; ;; ;;;;; ;;;;;
-; ;;;;; ;;; ;; ;; ; ;; ;; ;; ;;;;; ;;;;;
-; ;;; ;; ;; ;;;; ;;;;;;;; ;; ;; ;;;;;; ;;
-; ;;; ;; ;; ;;;;;; ;;;;;;;; ;; ;; ;;;;;; ;;
-; ;;;;; ;; ;;; ;;; ;; ;;; ;; ;; ;;; ;;;;;
-; ;;;;; ;; ;;;;;; ;; ;; ;; ;; ;;; ;;;;;
-; ;; ;;
-; ;;;;;
-;
-;
-
-
-;; record-points : (parameter (or/c #f (-> number[x-coordinate] number[revision] -> void)))
-(define record-points (make-parameter #f))
-
-(define (graphs->coordinates graphs)
- (let ([dc (make-object bitmap-dc% (make-object bitmap% 1 1))]
- [points (make-hash)])
- (define (rp x-coord revision)
- (let ([pixel (inexact->exact (floor x-coord))]
- [prev (hash-ref points revision #f)])
- (cond
- [prev
- (unless (equal? prev pixel)
- (error
- 'graphs->coordinates
- "revision ~s maps to two different pixel values! ~s and ~s"
- revision
- prev
- pixel))]
- [else
- (hash-set! points revision pixel)])))
- (parameterize ([record-points rp])
- (draw-graphs dc graphs))
- (sort (hash-map points (λ (revision pixel) (make-coordinate revision pixel)))
- <
- #:key coordinate-revision)))
-
-(define (draw-graphs dc graphs)
- (let ([tot-points (apply + (map graph-point-count graphs))]
- [tot-space (- graphs-width (* graph-gap (- (length graphs) 1)))])
- (let loop ([sx 0]
- [graphs graphs])
- (unless (null? graphs)
- (let* ([graph (car graphs)]
- [points (graph-point-count graph)]
- [this-w (* (/ points tot-points) tot-space)]
- [next-sx (+ sx this-w graph-gap)])
- (draw-graph dc graph sx this-w)
- (unless (null? (cdr graphs))
- (send dc set-pen "black" 1 'transparent)
- (send dc set-brush "gray" 'solid)
- (send dc set-alpha 1)
- (send dc draw-rectangle
- (- next-sx graph-gap)
- 0
- graph-gap
- graph-height))
- (loop next-sx
- (cdr graphs)))))))
-
-(define (graph-point-count graph)
- (length (line-points (car (graph-lines graph)))))
-
-(define (draw-graph dc graph sx w)
- (draw-legend dc sx w)
- (for ([line (in-list (graph-lines graph))])
- (let* ([num-points (length (line-points line))]
- [i->x (λ (i) (+ sx (* (/ i (- num-points 1)) w)))]
- [point->y (λ (point)
- (let ([lm (line-max line)])
- (if (zero? lm) ;; everything must be zero in this case
- graph-height
- (* (- 1 (/ (point-value point) lm))
- graph-height))))])
- (send dc set-pen (line->pen line))
- (send dc set-alpha (line->alpha line))
-
- (for ([start (in-list (line-points line))]
- [end (in-list (cdr (line-points line)))]
- [i (in-naturals)])
- (let* ([x-start (i->x i)]
- [x-end (i->x (+ i 1))]
- [y-start (point->y start)]
- [y-end (point->y end)])
- (let ([rp (record-points)])
- (when rp
- (when (= i 0) (rp x-start (point-revision start)))
- (rp x-end (point-revision end))))
- (send dc draw-line
- x-start y-start
- x-end y-end))))))
-
-(define (draw-legend dc sx w)
- (send dc set-pen "gray" 3 'solid)
- (send dc set-alpha 1)
- (let ([hline (λ (p [dy 0])
- (send dc draw-line
- sx
- (+ dy (* p graph-height))
- (+ sx w)
- (+ dy (* p graph-height))))])
- (hline 0 1)
- (hline 1/4)
- (hline 1/2)
- (hline 3/4)
- (hline 1 -2)))
-
-(define (line->alpha line)
- (case (line-style line)
- [(overall) 1]
- [(cpu) 1/2]
- [(gc) 1/4]
- [(real) 1]))
-
-(define (line->pen line)
- (send the-pen-list find-or-create-pen
- (line-color line)
- 1
- 'solid))
-
-(define (draw fgs dc)
- (send dc set-smoothing 'aligned)
- (draw-graphs dc fgs))
-
-
-;
-;
-;
-; ;; ; ;;
-; ;; ;; ;;
-; ;; ;; ;;
-; ;;;;;; ;;;; ;;;;;;;;; ;;
-; ;; ;; ;; ;; ;;; ;;; ;;
-; ;; ;; ;; ;; ;;; ;;; ;;
-; ;; ;; ;; ;; ;;; ;;; ;;
-; ;; ;; ;; ;; ;;; ;;; ;;
-; ;; ;;; ;;;;;; ;;; ;;; ;;
-;
-;
-;
-
-(define (write-html graphss)
- (let ([xml (xexpr->xml (graphs->complete-xexpr graphss))])
- (call-with-output-file html-file
- (λ (port) (display-xml/content xml port))
- #:exists 'truncate)))
-
-(define (graphs->complete-xexpr graphss)
- (let ([xexpr (graphs->xexpr graphss)])
- (if full?
- `(html (head)
- (body ,xexpr))
- xexpr)))
-
-
-(define (graphs->xexpr graphss)
- (let ([last-one (- (length graphss) 1)])
- `(div
- (script ((type "text/javascript"))
- ,(format "var current_pane=~a;\n" last-one)
- "function move_bar(rev,x,w,duration,timing_strings) {\n"
- " var suffix = ' msec'\n"
- " if (duration > 1000) {\n"
- " duration = duration/1000;"
- " suffix = ' sec'"
- " }\n"
- " document.getElementById(\"rev_and_duration\").innerHTML='revision '+rev+' duration '+duration+suffix;\n"
- ,(make-cdata
- 'here
- 'there
- " document.getElementById(\"timings\").innerHTML=timing_strings.join('
');\n")
- " var barimg = document.getElementById(\"barimg\");\n"
- " barimg.width=w;\n"
- " barimg.height=200;\n"
- " document.getElementById(\"bar\").style.left=x;\n"
- ,@(if link-format-string
- (list (format
- " document.getElementById(\"bara\").href='~a'+'?pane='+(current_pane+1)\n"
- (format link-format-string "'+rev+'")))
- '())
- " return true;\n"
- "}\n"
- "function do_before(){\n"
- " current_pane = current_pane-1;\n"
- ,(format " if (current_pane == -1) { current_pane=~a; }\n" last-one)
- " update_pane();\n"
- "}\n"
- "function do_after(){\n"
- " current_pane = current_pane+1;\n"
- ,(format " if (current_pane == ~a) { current_pane=0; }\n" (+ 1 last-one))
- " update_pane();\n"
- "}\n"
- "function update_pane(){\n"
- " var img = document.getElementById(\"img\");\n"
- " img.useMap='#revmap'+current_pane;\n"
- ,(format " img.src='~a'+current_pane+'.png';\n" image-url-prefix)
- " var p = current_pane+1;\n"
- ,(format " document.getElementById(\"paneid\").innerHTML=('Pane '+p+' of ~a');\n"
- (+ last-one 1))
- "}\n"
- "// this function from http://www.netlobo.com/url_query_string_javascript.html\n"
- "function gup (name) {\n"
- " name = name.replace(/[\\[]/,\"\\\\\\[\").replace(/[\\]]/,\"\\\\\\]\");\n"
- ,(make-cdata 'here 'there " var regexS = \"[\\\\?&]\"+name+\"=([^]*)\";\n")
- " var regex = new RegExp( regexS );\n"
- " var results = regex.exec( window.location.href );\n"
- " if( results == null )\n"
- " return \"\";\n"
- " else\n"
- " return results[1];\n"
- "}\n"
- "function startup() {\n"
- " current_pane = parseInt(gup('pane'));\n"
- " if (isNaN(current_pane))\n"
- ,(format " current_pane = ~a;\n" last-one)
- " else\n"
- ,(format " current_pane = Math.min(Math.max(current_pane,1),~a)-1\n" (+ last-one 1))
- " update_pane();"
- "}\n"
- )
- (table
- ((cellpadding "0")
- (cellspacing "0"))
- (tr
- (td (a ((href "#") (onclick "javascript:do_before(); return false;"))
- (img ((border "0")
- (src ,before-image-file)))))
- (td
- (div ((style "position: relative;"))
- (img ((src ,dot-image-file)
- (border "0")
- (id "img")
- (height ,(format "~a" graph-height))
- (width ,(format "~a" graphs-width))))
- (div ((id "bar")
- (style "position: absolute; top: 0px; left: 20px"))
- (a ((id "bara"))
- (img ((style "border:none")
- (id "barimg")
- (width "0")
- (height ,(format "~a" graph-height))
- (src ,dot-image-file)))))))
- (td (a ((href "#") (onclick "javascript:do_after(); return false;"))
- (img ((border "0")
- (src ,after-image-file)))))))
- (div (span ((id "paneid")) "")
- (span ((id "rev_and_duration")) ""))
- (tt (span ((id "timings")) ""))
-
- ,@(for/list ((graphs (in-list (reverse graphss)))
- (i (in-naturals)))
- `(map ((name ,(format "revmap~a" i)))
- ,@(graphs->areas graphs i)))
-
- (script ((type "text/javascript"))
- "startup()"))))
-
-(define (graphs->areas graphs i)
- (let ([coordinates (graphs->coordinates graphs)])
- (for/list ([c-1 (cons #f coordinates)]
- [c coordinates]
- [c+1 (append (cdr coordinates) (list #f))])
- (let ([left (if c-1
- (floor (average (coordinate-x-pixel c-1)
- (coordinate-x-pixel c)))
- (coordinate-x-pixel c))]
- [right (if c+1
- (floor (average (coordinate-x-pixel c)
- (coordinate-x-pixel c+1)))
- (coordinate-x-pixel c))])
- `(area ((shape "rect")
- (coords ,(format "~a,~a,~a,~a" left 0 right graph-height))
- (onmouseover ,(format "move_bar('~a','~apx',~a,'~a',~a)"
- (coordinate-revision c)
- left
- (- right left)
- (revision->duration (coordinate-revision c))
- (revision->timings-array
- (coordinate-revision c))))))))))
-
-(define (timing-strings c) (format "~s" c))
-
-(define (average . l) (/ (apply + l) (length l)))
-
-
-;; note: there is javascript code doing this same computation.
-(define (i->image-file i) (format "~a~a.png" image-filename-prefix i))
-
-
-;
-;
-;
-;
-; ;;
-; ;
-; ;;;;; ;; ;;;;; ;; ;;;;;
-; ;;;;;;;;; ;; ;; ;; ;;;;;
-; ;; ;; ;; ;;;; ;; ;; ;;;
-; ;; ;; ;; ;;;;;; ;; ;; ;;;
-; ;; ;; ;; ;;; ;;; ;; ;; ;;;
-; ;; ;; ;; ;;;;;; ;; ;; ;;;
-;
-;
-;
-;
-
-(define (save fgs i)
- (let* ([bm (make-object bitmap% graphs-width graph-height)]
- [bdc (make-object bitmap-dc% bm)])
- (send bdc clear)
- (draw fgs bdc)
- (send bdc set-bitmap #f)
- (send bm save-file (i->image-file i) 'png)
- (void)))
-
-(let ()
- (define the-data (fetch-data input-file))
- (define the-graphss (build-graphss the-data))
-
- (write-html the-graphss)
- (for ((the-graphs (in-list the-graphss))
- (i (in-naturals)))
- (save the-graphs i)))
diff --git a/collects/meta/drdr/graphs/constants.rkt b/collects/meta/drdr/graphs/constants.rkt
deleted file mode 100644
index ecb4d4aa5e..0000000000
--- a/collects/meta/drdr/graphs/constants.rkt
+++ /dev/null
@@ -1,7 +0,0 @@
-#lang racket/base
-(provide (all-defined-out))
-(define total-width 800)
-(define before-and-after-image-width 18)
-(define graph-height 200)
-(define graphs-width (- 800 (* 2 before-and-after-image-width)))
-
diff --git a/collects/meta/drdr/graphs/mk-img.rkt b/collects/meta/drdr/graphs/mk-img.rkt
deleted file mode 100644
index d5b212a807..0000000000
--- a/collects/meta/drdr/graphs/mk-img.rkt
+++ /dev/null
@@ -1,62 +0,0 @@
-#lang racket/gui
-
-(require 2htdp/image
- "constants.rkt")
-
-;; make dot.png
-(let* ([bm (make-object bitmap% 1 1)]
- [mask (make-object bitmap% 1 1)]
- [bdc (make-object bitmap-dc% bm)])
- (send bm set-loaded-mask mask)
- (send bdc set-brush (make-object color% 50 100 20) 'solid)
- (send bdc set-pen "black" 1 'transparent)
- (send bdc draw-rectangle 0 0 1 1)
- (send bdc set-bitmap mask)
- (send bdc set-brush (make-object color% 100 100 100) 'solid)
- (send bdc draw-rectangle 0 0 1 1)
- (send bdc set-bitmap #f)
- (send bm save-file "dot.png" 'png)
- (void))
-
-(define (save-bitmap mask-image color filename)
- (let* ([w (image-width mask-image)]
- [h (image-height mask-image)]
- [bm (make-object bitmap% w h)]
- [mask (make-object bitmap% w h)]
- [bdc (make-object bitmap-dc% bm)])
-
- (unless (= w before-and-after-image-width)
- (error 'mk-img.rkt "expected ~a image's width to be ~a, got ~a"
- filename
- before-and-after-image-width
- w))
-
- (send bm set-loaded-mask mask)
- (send bdc set-brush color 'solid)
- (send bdc set-pen "black" 1 'transparent)
- (send bdc draw-rectangle 0 0 w h)
- (send bdc set-bitmap mask)
- (send bdc clear)
- (send mask-image draw bdc 0 0 0 0 w h 0 0 'show-caret)
- (send bdc set-bitmap #f)
- (send bm save-file filename 'png)
- (void)))
-
-
-(define (space-out img x-place)
- (overlay/align
- x-place
- 'center
- img
- (rectangle (+ (image-width img) 4)
- graph-height
- 'solid
- 'white)))
-
-(save-bitmap (space-out (rotate 90 (triangle 16 'solid 'black)) 'left)
- "forestgreen"
- "before.png")
-
-(save-bitmap (space-out (rotate -90 (triangle 16 'solid 'black)) 'right)
- "forestgreen"
- "after.png")
diff --git a/collects/meta/drdr/render.rkt b/collects/meta/drdr/render.rkt
index 15dbd4a813..d306832264 100644
--- a/collects/meta/drdr/render.rkt
+++ b/collects/meta/drdr/render.rkt
@@ -340,9 +340,9 @@
(define output (map render-event output-log))
(response/xexpr
`(html (head (title ,title)
- (script ([language "javascript"] [type "text/javascript"] [src "jquery-1.6.2.min.js"]))
- (script ([language "javascript"] [type "text/javascript"] [src "jquery.flot.js"]))
- (script ([language "javascript"] [type "text/javascript"] [src "jquery.flot.selection.js"]))
+ (script ([language "javascript"] [type "text/javascript"] [src "/jquery-1.6.2.min.js"]) "")
+ (script ([language "javascript"] [type "text/javascript"] [src "/jquery.flot.js"]) "")
+ (script ([language "javascript"] [type "text/javascript"] [src "/jquery.flot.selection.js"]) "")
(link ([rel "stylesheet"] [type "text/css"] [href "/render.css"])))
(body
(div ([class "log, content"])
@@ -373,31 +373,17 @@
'()
`((div ([class "output"]) " "
,@output)))
- (div ([id "_chart"] [style "width:800px;height:300px;"]))
- (script ([language "javascript"] [type "text/javascript"] [src "chart.js"]))
+
+ (p)
+
+ (div ([id "_chart"] [style "width:800px;height:300px;"]) "")
+ (script ([language "javascript"] [type "text/javascript"] [src "/chart.js"]) "")
(script ([language "javascript"] [type "text/javascript"])
- ,(format "get_data('/json/timing/~a');" the-base-path))
+ ,(format "get_data('/json/timing~a');" the-base-path))
(button ([onclick "reset_chart()"]) "Reset")
(button ([id "setlegend"] [onclick "set_legend(!cur_options.legend.show)"])
"Hide Legend")
-
- ,(with-handlers ([exn:fail?
- ; XXX Remove this eventually
- (lambda (x)
- ; XXX use dirstruct functions
- (define png-path
- (format "/data~a" (path-add-suffix (path-add-suffix the-base-path #".timing") #".png")))
- `(div ([class "timing"])
- (a ([href ,png-path])
- (img ([src ,png-path])))))])
- (make-cdata
- #f #f
- (local [(define content
- (file->string
- (path-timing-html (substring (path->string* the-base-path) 1))))]
- #;(regexp-replace* #rx"&(?![a-z]+;)" content "\\&\\1")
- (regexp-replace* #rx">" content ">"))
- ))
+
,(footer)))))])]))
(define (number->string/zero v)
diff --git a/collects/meta/drdr/static/chart.js b/collects/meta/drdr/static/chart.js
index ff3ad5f48b..f194e0bce1 100644
--- a/collects/meta/drdr/static/chart.js
+++ b/collects/meta/drdr/static/chart.js
@@ -13,7 +13,7 @@ function moving_avg(arr, i, _acc, _m) {
var data = null;
var sub_times = [];
var overall_times = [];
-var overall_avg = [];
+//var overall_avg = [];
var chart_data = [];
var options = { selection: { mode: "xy" },
legend: { backgroundOpacity: 0, position: "sw", show: true },
@@ -63,7 +63,7 @@ placeholder.bind("plothover", function (event, pos, item) {
function load_data(d) {
chart_data = [];
overall_times = [];
- overall_avg = [];
+ //overall_avg = [];
sub_times = [];
pdata = []
reset_chart();
@@ -77,9 +77,9 @@ function load_data(d) {
// build the timing data arrays
for (var i = 0; i < pdata.length; i++) {
overall_times.push([pdata[i][0], pdata[i][1]]);
- overall_avg.push([pdata[i][0],
- moving_avg(pdata, i,
- function(j) { return pdata[j][1]; })]);
+ // overall_avg.push([pdata[i][0],
+ // moving_avg(pdata, i,
+ // function(j) { return pdata[j][1]; })]);
max_overall = Math.max(max_overall, pdata[i][1]);
if (pdata[i][2].length != 0) {
for (var j = 0; j < pdata[i][2].length; j++) {
@@ -98,7 +98,7 @@ function load_data(d) {
// put the data into the chart format
chart_data.push({data: overall_times, label: "Overall Time"});
- chart_data.push({data: overall_avg, label: "Overall Moving Avg"});
+ //chart_data.push({data: overall_avg, label: "Overall Moving Avg"});
for(var i = 0; i < sub_times.length; i++) {
chart_data.push({data: sub_times[i], label: "Timer "+ (i+1), points: { show: true }, yaxis: ya});
}
diff --git a/collects/meta/drdr/time.rkt b/collects/meta/drdr/time.rkt
index 2a404f2f71..41f993b4e6 100644
--- a/collects/meta/drdr/time.rkt
+++ b/collects/meta/drdr/time.rkt
@@ -1,7 +1,6 @@
#lang racket
(require (planet jaymccarthy/job-queue)
racket/system
- (prefix-in graph-one: "graph.rkt")
"config.rkt"
"notify.rkt"
"dirstruct.rkt"
@@ -12,14 +11,11 @@
(define start-revision #f)
(define history? #f)
-(define just-graphs? #f)
(command-line #:program "time"
#:once-each
["-H" "Run on all revisions"
(set! history? #t)]
- ["-G" "Just graphs"
- (set! just-graphs? #t)]
["-r" rev
"Start with a particular revision"
(set! start-revision (string->number rev))])
@@ -34,23 +30,20 @@
(submit-job!
test-workers
(lambda ()
- (unless just-graphs?
- (notify! "Dropping timing for ~a" filename)
- (apply
- system*/exit-code
- (path->string
- (build-path (plt-directory) "plt" "bin" "racket"))
- "-t"
- (path->string (build-path (drdr-directory) "time-file.rkt"))
- "--"
- (append
- (if history?
- (list "-H")
- (list "-r" (number->string start-revision)))
- (list
- (path->string filename)))))
- (notify! "Generating graph for ~a" filename)
- (graph-one:main filename)
+ (notify! "Dropping timing for ~a" filename)
+ (apply
+ system*/exit-code
+ (path->string
+ (build-path (plt-directory) "plt" "bin" "racket"))
+ "-t"
+ (path->string (build-path (drdr-directory) "time-file.rkt"))
+ "--"
+ (append
+ (if history?
+ (list "-H")
+ (list "-r" (number->string start-revision)))
+ (list
+ (path->string filename))))
(notify! "Done with ~a" filename)
(semaphore-post count-sema))))