adjust htdp so missing teachpacks just print error messages

and continue, rather than raising exceptions
This commit is contained in:
Robby Findler 2013-06-29 00:48:15 -05:00
parent b93cd5288b
commit 1a1c1feabc
2 changed files with 12 additions and 15 deletions

View File

@ -109,15 +109,8 @@
(memq (cdr x) '(left top top-no-label right))))) (memq (cdr x) '(left top top-no-label right)))))
(drr:set-default 'drracket:htdp:last-set-teachpacks (drr:set-default 'drracket:htdp:last-set-teachpacks
'() '()
(λ (x) (listof (cons/c 'lib (listof string?))))
(and (list? x)
(andmap (λ (x)
(and (list? x)
(pair? x)
(eq? (car x) 'lib)
(andmap string? (cdr x))))
x))))
(drr:set-default 'drracket:defs/ints-horizontal #f boolean?) (drr:set-default 'drracket:defs/ints-horizontal #f boolean?)
(drr:set-default 'drracket:child-only-memory-limit (* 1024 1024 128) (drr:set-default 'drracket:child-only-memory-limit (* 1024 1024 128)

View File

@ -98,12 +98,16 @@
;; syntax objects that require them (tagged ;; syntax objects that require them (tagged
;; with stepper-skip-completely) ;; with stepper-skip-completely)
(define (teachpacks->requires teachpacks) (define (teachpacks->requires teachpacks)
(for/list ([tp (in-list teachpacks)]) (filter
(unless (file-exists? (build-path (apply collection-path (cddr tp)) values
(cadr tp))) (for/list ([tp (in-list teachpacks)])
(error 'teachpack (missing-tp-message tp))) (cond
(stepper-skip [(file-exists? (build-path (apply collection-path (cddr tp))
(datum->syntax #f `(require ,tp))))) (cadr tp)))
(stepper-skip
(datum->syntax #f `(require ,tp)))]
[else
(eprintf "~a\n" (missing-tp-message tp))]))))
(define (missing-tp-message x) (define (missing-tp-message x)
(let* ([m (regexp-match #rx"/([^/]*)$" (cadr x))] (let* ([m (regexp-match #rx"/([^/]*)$" (cadr x))]