~ 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#beginTrap