diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/interp/ChangeLog | 5 | ||||
-rw-r--r-- | src/interp/compiler.boot | 8 |
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'] => |