diff --git a/collects/swindle/tiny-clos.ss b/collects/swindle/tiny-clos.ss index e2147182e6..adf075d1d9 100644 --- a/collects/swindle/tiny-clos.ss +++ b/collects/swindle/tiny-clos.ss @@ -1962,8 +1962,8 @@ ;;>> ;;>> ;;>> -;;>> -;;>> +;;>> +;;>> ;;>> ;;>> ;;>> @@ -2054,8 +2054,22 @@ (defprimclass ) (defprimclass ) (defprimclass ) -(defprimclass ) -(defprimclass ) +(defprimclass ) +(defprimclass ) +;; make these classes used when we see exn structs +(let ([set-exn-class + (lambda (class make-exn . xs) + (hash-table-put! struct-to-class-table + (let-values ([(e _) + (struct-info + (apply make-exn "foo" + (current-continuation-marks) + xs))]) + e) + class))]) + (set-exn-class make-exn) + (set-exn-class make-exn:fail) + (set-exn-class make-exn:break (let/ec e e))) (defprimclass ) (defprimclass ) (defprimclass ) @@ -2140,8 +2154,6 @@ [(regexp? x) ] [(byte-regexp? x) ] [(promise? x) ] - [(exn? x) - (if (exn:break? x) )] [(real-keyword? x) ] [(semaphore? x) ] [(hash-table? x) ] @@ -2276,8 +2288,8 @@ ;;> : ;;> : ;;> : -;;> : -;;> : +;;> : +;;> : ;;> : ;;> : ;;> :