On Sat 18 Dec 2010 10:45, Stefan Israelsson Tampe <[email protected]> writes:
> Consider macro m1 in module a) is a macro writer macro > In module b) m1 is used to create m2 > > Now loading module b) and using fails in some circumstances. ...the circumstance being, the interface that m2 was expanded against changed. In theory this should render the compiled module b) too-old, with respect to its dependencies -- which is to say, not just b.scm, but also a.scm (or more generally, the module a). Guile doesn't handle this properly. It assumes that if b.go is newer than b.scm, b.go is usable. That is not the case, generally. A proper solution would have b.go encode the modules that it depends on, and check against those modules. Andy -- http://wingolog.org/
