Hi,
I suspect a bug in snow (maybe I am wrong) but let's say I have 3 snowballs (dummies for my explanation):
===== moda.scm ====== (package* moda/v1.0.0 (provide: (define (square x)) (define-macro (add x y) `(+ ,x ,y))))
(define (square x) (* x x))
===== modb.scm ====== (package* modb/v1.0.0 (provide: (define (power4 x))) (require: moda/v1))
(define (power4 x) (* (square x) (square x)))
(write (add 1 2)) (newline)
===== modc.scm ====== (package* modc/v1.0.0 (provide: (define (power6 x))) (require: modb/v1))
(define (power6 x) (* (square x) (square x) (square x)))
(write (power6 12)) (newline)
(write (add 1 2)) (newline)
==========================================
Then I type:
snow -- modb/v1.0.0/snow/modb.scm 3
which is what I expected. And then I type:
snow -- modc/v1.0.0/snow/modc.scm 3 2985984 *** ERROR IN "modc/v1.0.0/snow/modc.scm"@10.9 -- Unbound variable: moda/v1#add
which is NOT what I expected. It seems that macros are not transitively transported through dependencies. Normal functions are. Is this a bug?
In other words... Is transitivity for the "require:" property part of the snow specification?
Thank you, Francois Magnan