From 272d5208e715c32ac3e514e248d2e523e3e0a8fc Mon Sep 17 00:00:00 2001 From: dos-reis Date: Fri, 16 Nov 2007 22:27:25 +0000 Subject: * compiler.boot ($coreDiagnosticFunctions): New. (compForm1): Use it in checking for error functions. --- src/interp/ChangeLog | 5 +++++ src/interp/compiler.boot | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src/interp') diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog index cda2ccd5..610b45c3 100644 --- a/src/interp/ChangeLog +++ b/src/interp/ChangeLog @@ -1,3 +1,8 @@ +2007-11-16 Gabriel Dos Reis + + * compiler.boot ($coreDiagnosticFunctions): New. + (compForm1): Use it in checking for error functions. + 2007-11-16 Gabriel Dos Reis * daase.lisp (getdatabase): Fix path to source file and object file. 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'] => -- cgit v1.2.3