aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog8
-rw-r--r--src/interp/trace.boot9
-rw-r--r--src/interp/vmlisp.lisp5
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)))
) )