~ chicken-core (chicken-5) 4008cf8211c810ae42e59db824c785769640c0ec


commit 4008cf8211c810ae42e59db824c785769640c0ec
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Jan 24 12:51:08 2015 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sat Jan 24 12:51:08 2015 +0100

    Removed use of lset-adjoin in eval.scm

diff --git a/eval.scm b/eval.scm
index c350522d..7b86c4d6 100644
--- a/eval.scm
+++ b/eval.scm
@@ -1284,13 +1284,17 @@
 (define ##sys#do-the-right-thing
   (let ((vector->list vector->list))
     (lambda (id comp? imp?)
+      (define (adjoin lst)
+	(if (memq id lst)
+	    lst
+	    (cons id lst)))
       (define (add-req id syntax?)
 	(when comp?
 	  (##sys#hash-table-update!
 	   ;; XXX FIXME: This is a bit of a hack.  Why is it needed at all?
 	   chicken.compiler.core#file-requirements
 	   (if syntax? 'dynamic/syntax 'dynamic)
-	   (cut lset-adjoin eq? <> id) ;XXX assumes compiler has srfi-1 loaded
+	   adjoin
 	   (lambda () (list id)))))
       (define (impform x id builtin?)
 	`(##core#begin
Trap