From a005e678dbc9fbccc1acac234eaf0aa83bbecad8 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 1 Feb 2010 20:54:08 +1300 Subject: [PATCH] classes.tuple: make error slots read only for small space savings --- core/classes/tuple/tuple.factor | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/classes/tuple/tuple.factor b/core/classes/tuple/tuple.factor index e3b5126713..ee49980f4d 100644 --- a/core/classes/tuple/tuple.factor +++ b/core/classes/tuple/tuple.factor @@ -250,6 +250,13 @@ GENERIC# (define-tuple-class) 2 ( class superclass slots -- ) : thrower-effect ( slots -- effect ) [ name>> ] map { "*" } ; +: error-slots ( slots -- slots' ) + [ + dup string? [ 1array ] when + read-only swap remove + read-only suffix + ] map ; + PRIVATE> : define-tuple-class ( class superclass slots -- ) @@ -265,6 +272,7 @@ M: tuple-class (define-tuple-class) [ 2drop ?define-symbol ] [ redefine-tuple-class ] if ; : define-error-class ( class superclass slots -- ) + error-slots [ define-tuple-class ] [ 2drop reset-generic ] [