aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog6
-rw-r--r--src/algebra/Makefile.in4
-rw-r--r--src/algebra/syntax.spad.pamphlet6
-rw-r--r--src/interp/nruncomp.boot3
4 files changed, 11 insertions, 8 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 2e239d79..9f696166 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2012-02-04 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/nruncomp.boot (getLocalIndex): Fast track niladic
+ constructors.
+ * algebra/syntax.spad.pamphlet: Miscellaneous cleanup.
+
2012-02-03 Gabriel Dos Reis <gdr@cs.tamu.edu>
* utils/vm.H: Add more VM data structures.
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index bae8ea9f..979bd007 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -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
@@ -2110,6 +2110,8 @@ $(OUT)/COMMAAST.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
$(OUT)/QQUTAST.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT)
$(OUT)/DEFAST.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) $(OUT)/SPADAST.$(FASLEXT)
$(OUT)/MACROAST.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT)
+$(OUT)/SPADAST.$(FASLEXT): $(OUT)/SIGAST.$(FASLEXT) \
+ $(OUT)/RSTRCAST.$(FASLEXT) $(OUT)/SEQAST.$(FASLEXT)
$(OUT)/INBFILE.$(FASLEXT): $(OUT)/FNAME.$(FASLEXT) \
$(OUT)/INBCON.$(FASLEXT) $(OUT)/STRING.$(FASLEXT)
diff --git a/src/algebra/syntax.spad.pamphlet b/src/algebra/syntax.spad.pamphlet
index 3bbb7145..b83ed076 100644
--- a/src/algebra/syntax.spad.pamphlet
+++ b/src/algebra/syntax.spad.pamphlet
@@ -722,7 +722,6 @@ ImportAst(): Public == Private where
imports: % -> List TypeAst
++ imports(x) returns the list of imported types.
Private == add
- import Pair
Rep == Pair(Identifier, List TypeAst)
coerce(ts: List TypeAst): % == per pair('_import,ts)
imports x == second rep x
@@ -753,7 +752,6 @@ MappingAst(): Public == Private where
target: % -> TypeAst
++ target(s) returns the result type AST for `s'.
Private == add
- import Pair
Rep == Pair(Identifier,Signature)
coerce(sig: Signature): % == per pair('Mapping,sig)
mappingAst(s,t) ==
@@ -787,7 +785,6 @@ SignatureAst(): Public == Private where
signature: % -> Signature
++ signature(s) returns AST of the declared signature for `s'.
Private == add
- import List
Rep == Pair(Identifier, Pair(Identifier,List Signature))
signatureAst(n,sig) ==
per pair('SIGNATURE,pair(n,[sig]))
@@ -1083,7 +1080,6 @@ ConstructAst(): Public == Private where
++ elements(e) returns the list of expressions in the
++ `literal' list `e'.
Private == add
- import Pair
Rep == Pair(Identifier, List SpadAst)
elements x == second rep x
coerce(x: %): OutputForm ==
@@ -1135,7 +1131,6 @@ ReturnAst(): Public == Private where
expression: % -> SpadAst
++ expression(e) returns the expression returned by `e'.
Private == add
- import Pair
Rep == Pair(Identifier,SpadAst)
expression x == second rep x
coerce(x: %): OutputForm ==
@@ -1162,7 +1157,6 @@ SequenceAst(): Public == Private where
last: % -> SpadAst
++ last(e) returns the last instruction in `e'.
Private == add
- import Pair
Rep == Pair(Identifier,List SpadAst)
body x == second rep x
last x == last(second rep x)$List(SpadAst)
diff --git a/src/interp/nruncomp.boot b/src/interp/nruncomp.boot
index 58a7531f..cd90fe1b 100644
--- a/src/interp/nruncomp.boot
+++ b/src/interp/nruncomp.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
@@ -282,6 +282,7 @@ NRTaddInner(db,x) ==
builtinConstructor? x.op or x.op is "[||]" =>
for y in x.args repeat
NRTinnerGetLocalIndex(db,y)
+ niladicConstructor? x.op => nil
cosig := getDualSignature x.op =>
for y in x.args for t in cosig.source | y isnt '$ and t repeat
NRTinnerGetLocalIndex(db,y)