diff options
-rw-r--r-- | src/ChangeLog | 12 | ||||
-rw-r--r-- | src/interp/i-special.boot | 2 | ||||
-rw-r--r-- | src/interp/int-top.boot | 4 | ||||
-rw-r--r-- | src/interp/sys-macros.lisp | 33 |
4 files changed, 15 insertions, 36 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 6a1fff0b..bade6e90 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,15 @@ +2012-05-01 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * interp/i-special.boot (interpREPEAT): Use CATCH directly. + * interp/int-top.boot (intloopSpadProcess): Likewise. + * interp/sys-macros.lisp (funcall): Remove. + (Catch): Likewise. + (Throw): Likewise. + (UnwindProtect): Likewise. + (SPADCATCH): Likewise. + (SPADTHROW): Likewise. + (YIELD): Likewise. + 2012-04-30 Gabriel Dos Reis <gdr@cs.tamu.edu> * algebra/integer.spad.pamphlet (Integer): Use %iaddmod, %isubmod, diff --git a/src/interp/i-special.boot b/src/interp/i-special.boot index 4be81980..d8c1abe4 100644 --- a/src/interp/i-special.boot +++ b/src/interp/i-special.boot @@ -2251,7 +2251,7 @@ interpREPEAT(op,itrl,body,repeatMode) == ['%repeat,:[interpIter itr for itr in itrl], ["CATCH",$repeatBodyLabel,interpLoop(body,$indexVars, $indexTypes,nil)],voidValue()] - SPADCATCH(eval $repeatLabel,timedEVALFUN code) + CATCH(eval $repeatLabel,timedEVALFUN code) val:= objNewWrap(voidValue(),repeatMode) putValue(op,val) putModeSet(op,[repeatMode]) diff --git a/src/interp/int-top.boot b/src/interp/int-top.boot index a4927b31..407e26b1 100644 --- a/src/interp/int-top.boot +++ b/src/interp/int-top.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 @@ -236,7 +236,7 @@ intloopSpadProcess(stepNo,lines,ptree,interactive?)== ncPutQ(cc, 'messages, $ncMsgList) ncPutQ(cc, 'lines, lines) $ncMsgList := nil - result := CatchAsCan(flung, Catch("SpadCompileItem", + result := CatchAsCan(flung, CATCH("SpadCompileItem", CATCH($intCoerceFailure, CATCH($SpadReaderTag, interp(cc, ptree, interactive?))))) where diff --git a/src/interp/sys-macros.lisp b/src/interp/sys-macros.lisp index 39d0385e..307a5d7d 100644 --- a/src/interp/sys-macros.lisp +++ b/src/interp/sys-macros.lisp @@ -1050,23 +1050,6 @@ (defmacro SPADREDUCE (OP AXIS BOD) (REDUCE-1 OP AXIS BOD)) -;; -;; -*- Control -*- -;; - - -(defmacro |funcall| (&rest args) - (cons 'funcall args) ) - -(defmacro |Catch| (tag expr) - `(catch ,tag ,expr) ) - -(defmacro |Throw| (tag expr) - `(Throw ,tag ,expr) ) - -(defmacro |UnwindProtect| (a b) - `(unwind-protect ,a ,b) ) - ;; ;; -*- List Comprehension -*- ;; @@ -1076,22 +1059,6 @@ (CONS 'THETA (CONS '\, (|append!| (CAR U) (LIST (CDR U))))))) ;; -;; -*- Non-Local Gotos -*- -;; - -(defmacro SPADCATCH (&rest form) - (CONS 'CATCH form)) - -(defmacro SPADTHROW (&rest form) - (CONS 'THROW form)) - -(defmacro YIELD (L) - (let ((g (gensym))) - `(let ((,g (state))) - (if (STATEP ,g) - (throw 'YIELD (list 'pair ,L) ,g))))) - -;; ;; -*- Input/Output -*- ;; |