Right now, (require A B C) expands all of A, B, and C before requiring any of them. This means that if the `foo' collection provides the `foo-in' require transformer, this doesn't work:
(require foo (foo-in bar)) Instead, you have to write this: (require foo) (require (foo-in bar)) The following patch changes (require A ...) to be (begin (require A) ...), so that the first example should now work, which I would find significantly more convenient. If there aren't objections, I'll write some tests and commit this. -- sam th [email protected] Index: collects/scheme/private/reqprov.ss =================================================================== --- collects/scheme/private/reqprov.ss (revision 14026) +++ collects/scheme/private/reqprov.ss (working copy) @@ -317,12 +317,12 @@ (syntax->list #'(elem ...))))] [_ (transform-simple in 0 #| run phase |#)]))]) (syntax-case stx () + [(_ in) + (with-syntax ([(new-in ...) (transform-one #'in)]) + (syntax/loc stx + (#%require new-in ...)))] [(_ in ...) - (with-syntax ([(new-in ...) - (apply append - (map transform-one (syntax->list #'(in ...))))]) - (syntax/loc stx - (#%require new-in ...)))]))) + (syntax/loc stx (begin (require in) ...))]))) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; require transformers _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev
