aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/interp/database.boot6
-rw-r--r--src/interp/define.boot8
3 files changed, 13 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 04e6c425..070189e8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-09 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/database.boot (categoryConstructor?): New.
+ * interp/define.boot (mkEvalableCategoryForm): Use it. Tidy.
+
2012-02-08 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/g-opt.boot (optCall): Simplify SPADCALL of atomic
diff --git a/src/interp/database.boot b/src/interp/database.boot
index 867c40c0..278630d9 100644
--- a/src/interp/database.boot
+++ b/src/interp/database.boot
@@ -1,6 +1,6 @@
-- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd.
-- All rights reserved.
--- Copyright (C) 2007-2011, Gabriel Dos Reis.
+-- Copyright (C) 2007-2012, Gabriel Dos Reis.
-- All rights reserved.
--
-- Redistribution and use in source and binary forms, with or without
@@ -173,6 +173,10 @@ getConstructorKind ctor ==
builtinCategoryName? ctor => "category"
nil
+categoryConstructor? ctor ==
+ getConstructorKindFromDB ctor is "category"
+ or builtinCategoryName? ctor
+
--% Functions for manipulating MODEMAP DATABASE
++ We are about to finish the elaboration of the category `form' with
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 66d8c458..608f34bd 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -1,6 +1,6 @@
-- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd.
-- All rights reserved.
--- Copyright (C) 2007-2011, Gabriel Dos Reis.
+-- Copyright (C) 2007-2012, Gabriel Dos Reis.
-- All rights reserved.
--
-- Redistribution and use in source and binary forms, with or without
@@ -915,12 +915,10 @@ mkEvalableCategoryForm c ==
op is "mkCategory" => c
builtinCategoryName? op =>
([x,m,$e]:= compOrCroak(c,$EmptyMode,$e); m=$Category => x)
- --loadIfNecessary op
- getConstructorKindFromDB op = 'category or
- get(op,"isCategory",$CategoryFrame) =>
- [op,:[MKQ x for x in argl]]
+ categoryConstructor? op => [op,:[MKQ x for x in argl]]
[x,m,$e]:= compOrCroak(c,$EmptyMode,$e)
m=$Category => x
+ MKQ c
MKQ c
evalCategoryForm(x,e) ==