diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 8 | ||||
-rw-r--r-- | src/interp/trace.boot | 9 | ||||
-rw-r--r-- | src/interp/vmlisp.lisp | 5 |
3 files changed, 15 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 63568972..de0dddcc 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,13 @@ 2008-08-04 Gabriel Dos Reis <gdr@cs.tamu.edu> + Fix SF/2037811 + * interp/vmlisp.lisp (EMBED): Evaluate lambda forms to FUNCTIOn type. + * interp/trace.boot (transTraceItem): Fix thinko. + (spadTrace): Use assoc, not ASSOC. + (addTraceItem): Test for domain objects before constructors. + +2008-08-04 Gabriel Dos Reis <gdr@cs.tamu.edu> + Fix SF/2037804 * interp/i-syscmd.boot (cd): Convert new directory name to PATHNAME type before setting as default. diff --git a/src/interp/trace.boot b/src/interp/trace.boot index f52892bb..fe6d00ae 100644 --- a/src/interp/trace.boot +++ b/src/interp/trace.boot @@ -304,9 +304,8 @@ transTraceItem x == (y:= domainToGenvar x) => y x UPPER_-CASE_-P (STRINGIMAGE x).(0) => - y := unabbrev x - constructor?(y) => y - PAIRP(y) and constructor?(CAR y) => CAR y + y := opOf unabbrev x + constructor? y => y (y:= domainToGenvar x) => y x x @@ -438,7 +437,7 @@ spadTrace(domain,options) == options := removeOption("VARBREAK",options) anyifTrue:= null listOfOperations domainId:= opOf domain.(0) - currentEntry:= ASSOC(domain,_/TRACENAMES) + currentEntry:= assoc(domain,_/TRACENAMES) currentAlist:= KDR currentEntry opStructureList:= flattenOperationAlist getOperationAlistFromLisplib domainId sigSlotNumberAlist:= @@ -760,9 +759,9 @@ traceReply() == sayBrightly flowSegmentedMsg(displayList,$LINELENGTH,6) addTraceItem d == - constructor? d => $constructors:=[d,:$constructors] isDomain d => $domains:= [devaluate d,:$domains] isDomainOrPackage d => $packages:= [devaluate d,:$packages] + constructor? d => $constructors:=[d,:$constructors] _?t() == null _/TRACENAMES => sayMSG bright '"nothing is traced" diff --git a/src/interp/vmlisp.lisp b/src/interp/vmlisp.lisp index 25e848f2..76b52318 100644 --- a/src/interp/vmlisp.lisp +++ b/src/interp/vmlisp.lisp @@ -1601,10 +1601,11 @@ (OR (EQ OP 'LAMBDA) (EQ OP 'MLAMBDA))) (COND ( (NOT (MEMQ CURRENT-BINDING (FLAT-BV-LIST BV))) - `(,OP ,BV ((LAMBDA (,CURRENT-BINDING) . ,BODY) ',OLD-DEF)) + (eval `(,OP ,BV ((LAMBDA (,CURRENT-BINDING) . ,BODY) + ',OLD-DEF))) ) ( 'T - NEW-DEFINITION ) ) ) + (eval NEW-DEFINITION) ) ) ) ( 'T `((LAMBDA (,CURRENT-BINDING) ,NEW-DEFINITION) ',OLD-DEF))) ) ) |