Skip to content

Commit ca28704

Browse files
authored
Merge pull request #903 from herbie-fp/fix-save-session
Fix the `--save-session` code by allowing generate-page to be called once
2 parents 148bb2b + ece5f33 commit ca28704

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

src/web/demo.rkt

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@
2626

2727
(define-coercion-match-expander hash-arg/m
2828
(λ (x)
29-
(and (not (*demo-output*))
30-
(let ([m (regexp-match #rx"^([0-9a-f]+)\\.[0-9a-f.]+" x)])
31-
(and m (completed-job? (second m))))))
29+
(cond
30+
[(*demo-output*)
31+
(not (directory-exists? (build-path (*demo-output*) x)))]
32+
[else
33+
(let ([m (regexp-match #rx"^([0-9a-f]+)\\.[0-9a-f.]+" x)])
34+
(and m (completed-job? (second m))))]))
3235
(λ (x)
3336
(let ([m (regexp-match #rx"^([0-9a-f]+)\\.[0-9a-f.]+" x)])
3437
(get-results-for (if m (second m) x)))))
@@ -55,9 +58,8 @@
5558
[((hash-arg) (string-arg)) generate-page]
5659
[("results.json") generate-report]))
5760

58-
(define (generate-page req results page)
59-
(match-define result results)
60-
(define path (string-split (url->string (request-uri req)) "/"))
61+
(define (generate-page req result page)
62+
(define path (first (string-split (url->string (request-uri req)) "/")))
6163
(cond
6264
[(set-member? (all-pages result) page)
6365
;; Write page contents to disk
@@ -80,10 +82,14 @@
8082
(next-dispatcher)]))
8183

8284
(define (generate-report req)
83-
(define info (make-report-info (get-improve-job-data) #:seed (get-seed) #:note (if (*demo?*) "Web demo results" "Herbie results")))
84-
(response 200 #"OK" (current-seconds) #"text"
85-
(list (header #"X-Job-Count" (string->bytes/utf-8 (~a (job-count)))))
86-
(λ (out) (write-datafile out info))))
85+
(cond
86+
[(and (*demo-output*) (file-exists? (build-path (*demo-output*) "results.json")))
87+
(next-dispatcher)]
88+
[else
89+
(define info (make-report-info (get-improve-job-data) #:seed (get-seed) #:note (if (*demo?*) "Web demo results" "Herbie results")))
90+
(response 200 #"OK" (current-seconds) #"text"
91+
(list (header #"X-Job-Count" (string->bytes/utf-8 (~a (job-count)))))
92+
(λ (out) (write-datafile out info)))]))
8793

8894
(define url (compose add-prefix url*))
8995

0 commit comments

Comments
 (0)