Hi! Andy Wingo <wi...@pobox.com> skribis:
> On Fri 03 Jan 2020 19:30, Ludovic Courtès <l...@gnu.org> writes: [...] >> Should the #:re-export clause propagate the replace bit, or should >> it not? :-) > > It is a good question :) Before, if you re-exported a #:replace > binding, it wasn't possible to have it be exported without the "replace" > bit set. After the change it is possible to do either, and the default > changes to not replacing. From NEWS: > > Note to make this change, we had to change the way replacement flags > are stored, to being associated with modules instead of individual > variable objects. This means that users who #:re-export an imported > binding that was already marked as #:replace by another module will > now see warnings, as they need to use #:re-export-and-replace instead. > > The 3.0 behavior differs from 2.2 in this regard, although it's just > warnings and not run-time behavior. I am sympathetic to the concern > that it can be difficult to make a system that warns/doesn't warn in the > same way on 2.2 vs 3.0 but I think the change is the right thing, as the > new behavior is more expressive. Because it's a user-visible change it > is in NEWS. LMK if you think we need a change here! I agree that the new mechanism is more expressive, I guess I just hadn’t realized how it affects re-exports of already-exported bindings. It’s easily addressed anyway. Thank you! Ludo’.