From aac256324fad3c63b06fbf8b912d5449b0365af2 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 6 Nov 2008 00:02:10 -0600 Subject: [PATCH] lo-tag-dispatch-engine now sorts tags, this ensures that >fixnum compiles more efficiently --- core/generic/standard/engines/tag/tag.factor | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/generic/standard/engines/tag/tag.factor b/core/generic/standard/engines/tag/tag.factor index 2043c99741..c65726260c 100644 --- a/core/generic/standard/engines/tag/tag.factor +++ b/core/generic/standard/engines/tag/tag.factor @@ -3,7 +3,7 @@ USING: classes.private generic.standard.engines namespaces make arrays assocs sequences.private quotations kernel.private math slots.private math.private kernel accessors words -layouts ; +layouts sorting sequences ; IN: generic.standard.engines.tag TUPLE: lo-tag-dispatch-engine methods ; @@ -23,9 +23,11 @@ C: lo-tag-dispatch-engine ] if ; M: lo-tag-dispatch-engine engine>quot - methods>> engines>quots* [ >r lo-tag-number r> ] assoc-map + methods>> engines>quots* + [ >r lo-tag-number r> ] assoc-map [ picker % [ tag ] % [ + ! >alist sort-keys reverse linear-dispatch-quot ] [ num-tags get direct-dispatch-quot