~ chicken-core (chicken-5) 38cb8621ab91483f9da33ff53e694da8d08184d2
commit 38cb8621ab91483f9da33ff53e694da8d08184d2
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Thu Apr 16 18:52:04 2015 +1200
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Thu Apr 16 18:52:04 2015 +1200
Use eq? as default comparator for mini-srfi-1's delete
diff --git a/mini-srfi-1.scm b/mini-srfi-1.scm
index 9ddef125..e7ae2040 100644
--- a/mini-srfi-1.scm
+++ b/mini-srfi-1.scm
@@ -100,7 +100,7 @@
'()
(append (car lst) (loop (cdr lst))))))
-(define (delete x lst #!optional (test eq?))
+(define (delete x lst #!optional (test equal?))
(let loop ((lst lst))
(cond ((null? lst) lst)
((test x (car lst)) (cdr lst))
diff --git a/modules.scm b/modules.scm
index 0322c6d3..102fddc8 100644
--- a/modules.scm
+++ b/modules.scm
@@ -190,7 +190,7 @@
(##sys#module-rename sym (module-name mod))
mod exp #f)
(and-let* ((a (assq sym ulist)))
- (set-module-undefined-list! mod (delete a ulist)))
+ (set-module-undefined-list! mod (delete a ulist eq?)))
(check-for-redef sym (##sys#current-environment) (##sys#macro-environment))
(set-module-exist-list! mod (cons sym (module-exist-list mod)))
(when exp
@@ -644,14 +644,14 @@
(loop impv (cdr imps)
v
(cons (cons (cadr a) (cdar imps)) s)
- (delete a ids))))
+ (delete a ids eq?))))
(else (loop impv (cdr imps) v (cons (car imps) s) ids))))
((assq (caar impv) ids) =>
(lambda (a)
(loop (cdr impv) imps
(cons (cons (cadr a) (cdar impv)) v)
s
- (delete a ids))))
+ (delete a ids eq?))))
(else (loop (cdr impv) imps
(cons (car impv) v)
s ids)))))
diff --git a/optimizer.scm b/optimizer.scm
index 6f36b051..b5ba6134 100644
--- a/optimizer.scm
+++ b/optimizer.scm
@@ -1463,7 +1463,7 @@
(set! hoistable '())
(set! allocated 0)
(and (rec n #f #f env)
- (lset=/eq? closures (delete kvar inner-ks)))))
+ (lset=/eq? closures (delete kvar inner-ks eq?)))))
(define (transform n fnvar ks hoistable destn allocated)
(if (pair? hoistable)
Trap