aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/boot/ast.boot1
-rw-r--r--src/boot/strap/ast.clisp1
-rw-r--r--src/boot/strap/includer.clisp2
-rw-r--r--src/boot/strap/translator.clisp4
-rw-r--r--src/interp/i-output.boot2
6 files changed, 11 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9dba7e32..a909d9f5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2010-12-14 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * boot/ast.boot (bfQ): Emit STRING= for string comparison.
+ * interp/i-output.boot: Fix type violation in equality comparison.
+
2010-12-12 Gabriel Dos Reis <gdr@cs.tamu.edu>
* boot/ast.boot (bfIS1): Tidy.
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index d703475b..04933187 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -751,6 +751,7 @@ bfQ(l,r)==
l = nil => ["NULL",r]
r = nil => ["NULL",l]
l = true or r = true => ["EQ",l,r]
+ string? l or string? r => ["STRING=",l,r]
["EQUAL",l,r]
bfLessp(l,r)==
diff --git a/src/boot/strap/ast.clisp b/src/boot/strap/ast.clisp
index a022f053..ba658ba5 100644
--- a/src/boot/strap/ast.clisp
+++ b/src/boot/strap/ast.clisp
@@ -1209,6 +1209,7 @@
((NULL |l|) (LIST 'NULL |r|))
((NULL |r|) (LIST 'NULL |l|))
((OR (EQ |l| T) (EQ |r| T)) (LIST 'EQ |l| |r|))
+ ((OR (STRINGP |l|) (STRINGP |r|)) (LIST 'STRING= |l| |r|))
(T (LIST 'EQUAL |l| |r|))))
(DEFUN |bfLessp| (|l| |r|)
diff --git a/src/boot/strap/includer.clisp b/src/boot/strap/includer.clisp
index 4d4cd438..154e1cd4 100644
--- a/src/boot/strap/includer.clisp
+++ b/src/boot/strap/includer.clisp
@@ -92,7 +92,7 @@
(T (SETQ |a| (CAAR |stream|))
(COND
((AND (NOT (< (LENGTH |a|) 8))
- (EQUAL (SUBSTRING |a| 0 8) ")package"))
+ (STRING= (SUBSTRING |a| 0 8) ")package"))
(|shoePackageStartsAt| (CONS (CAAR |stream|) |lines|)
|sz| |name| (CDR |stream|)))
((< (LENGTH |a|) |sz|)
diff --git a/src/boot/strap/translator.clisp b/src/boot/strap/translator.clisp
index 2171c415..c9b972c4 100644
--- a/src/boot/strap/translator.clisp
+++ b/src/boot/strap/translator.clisp
@@ -623,8 +623,8 @@
(LET ((|m| (CADR |b|)))
(PROGN
(COND
- ((NOT (EQUAL (|getOptionValue| '|import|)
- "skip"))
+ ((NOT (STRING= (|getOptionValue| '|import|)
+ "skip"))
(|bootImport| (STRING |m|))))
(LIST (LIST 'IMPORT-MODULE (STRING |m|))))))
(|%ImportSignature|
diff --git a/src/interp/i-output.boot b/src/interp/i-output.boot
index cff0e227..bc847e3e 100644
--- a/src/interp/i-output.boot
+++ b/src/interp/i-output.boot
@@ -2424,7 +2424,7 @@ superSubApp(u, x, y, di) ==
stringer x ==
string? x => x
- EQ('_|, FETCHCHAR(s:= STRINGIMAGE x, 0)) =>
+ '_| = FETCHCHAR(s:= STRINGIMAGE x, 0) =>
RPLACSTR(s, 0, 1, "", nil, nil)
s