aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interp/ChangeLog5
-rw-r--r--src/interp/compiler.boot8
2 files changed, 12 insertions, 1 deletions
diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog
index cda2ccd5..610b45c3 100644
--- a/src/interp/ChangeLog
+++ b/src/interp/ChangeLog
@@ -1,5 +1,10 @@
2007-11-16 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * compiler.boot ($coreDiagnosticFunctions): New.
+ (compForm1): Use it in checking for error functions.
+
+2007-11-16 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* daase.lisp (getdatabase): Fix path to source file and object file.
2007-11-15 Gabriel Dos Reis <gdr@cs.tamu.edu>
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index c420dfe2..7347fb26 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -38,6 +38,12 @@ import '"category"
import '"modemap"
)package "BOOT"
+++ A list of routines for diagnostic reports. These functions, in an
+++ abstract sense, have type: forall T: Type . String -> T, so they
+++ can be used in T-returning functions, for any T.
+$coreDiagnosticFunctions ==
+ '(error userError systemError)
+
compTopLevel(x,m,e) ==
--+ signals that target is derived from lhs-- see NRTmakeSlot1Info
$NRTderivedTargetIfTrue: local := false
@@ -356,7 +362,7 @@ outputComp(x,e) ==
compForm1(form is [op,:argl],m,e) ==
$NumberOfArgsIfInteger: local:= #argl --see compElt
- op="error" =>
+ op in $coreDiagnosticFunctions =>
[[op,:[([.,.,e]:=outputComp(x,e)).expr
for x in argl]],m,e]
op is ["elt",domain,op'] =>