From 1a1c1feabce36a91bedbb21eee4019e5977833ab Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sat, 29 Jun 2013 00:48:15 -0500 Subject: [PATCH] adjust htdp so missing teachpacks just print error messages and continue, rather than raising exceptions --- pkgs/drracket/drracket/private/main.rkt | 11 ++--------- pkgs/htdp/lang/run-teaching-program.rkt | 16 ++++++++++------ 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/pkgs/drracket/drracket/private/main.rkt b/pkgs/drracket/drracket/private/main.rkt index 7b72b207c7..f4c1d04a36 100644 --- a/pkgs/drracket/drracket/private/main.rkt +++ b/pkgs/drracket/drracket/private/main.rkt @@ -109,15 +109,8 @@ (memq (cdr x) '(left top top-no-label right))))) (drr:set-default 'drracket:htdp:last-set-teachpacks - '() - (λ (x) - (and (list? x) - (andmap (λ (x) - (and (list? x) - (pair? x) - (eq? (car x) 'lib) - (andmap string? (cdr x)))) - x)))) + '() + (listof (cons/c 'lib (listof string?)))) (drr:set-default 'drracket:defs/ints-horizontal #f boolean?) (drr:set-default 'drracket:child-only-memory-limit (* 1024 1024 128) diff --git a/pkgs/htdp/lang/run-teaching-program.rkt b/pkgs/htdp/lang/run-teaching-program.rkt index 4f5983a3af..b33176a7ef 100644 --- a/pkgs/htdp/lang/run-teaching-program.rkt +++ b/pkgs/htdp/lang/run-teaching-program.rkt @@ -98,12 +98,16 @@ ;; syntax objects that require them (tagged ;; with stepper-skip-completely) (define (teachpacks->requires teachpacks) - (for/list ([tp (in-list teachpacks)]) - (unless (file-exists? (build-path (apply collection-path (cddr tp)) - (cadr tp))) - (error 'teachpack (missing-tp-message tp))) - (stepper-skip - (datum->syntax #f `(require ,tp))))) + (filter + values + (for/list ([tp (in-list teachpacks)]) + (cond + [(file-exists? (build-path (apply collection-path (cddr tp)) + (cadr tp))) + (stepper-skip + (datum->syntax #f `(require ,tp)))] + [else + (eprintf "~a\n" (missing-tp-message tp))])))) (define (missing-tp-message x) (let* ([m (regexp-match #rx"/([^/]*)$" (cadr x))]