diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/boot/ast.boot | 1 | ||||
-rw-r--r-- | src/boot/strap/ast.clisp | 1 | ||||
-rw-r--r-- | src/boot/strap/includer.clisp | 2 | ||||
-rw-r--r-- | src/boot/strap/translator.clisp | 4 | ||||
-rw-r--r-- | src/interp/i-output.boot | 2 |
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 |