If I understand correctly, the way to silence the warning would be to change the require to use only-in or except-in?
So in a sense, the new behavior is a sort of implicit transformation of (require x) => (require (except-in x (all-defined-here))) [where "(all-defined-here)" is something I just made up. :)] And the way to silence the warning is to replace the "all-defined-here" by the specific unwanted new identifier. Or, change the require to use only-in. Which reminds me: In discussions about the package system, and major version changes, and what it means to be backward compatible, I recall we've observed that new versions of a package shouldn't provide any new things. Strictly speaking. But in practice, systems _that_ strict, like COM interfaces, end up with a lot of ISomeInterface2 gunk. So probably that's too strict. The alternative is to handle it on the import end, which means you should always use "only-in" if you want to be sure a package update won't break you by providing something new. That's probably the least-worst of the two. TL;DR Always use only-in and brush thrice daily. But if you're not 100% diligent, at least you'll get some protection plus a warning from this latest change. Is that about right? -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/CAGspUn2KsjUxvF4Z_YrRREaoO_dhO9K8L4F-g35eD7FbmVRkDw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
