xref is that it is good at proposing things that "could be better", it doesn't provide a guarantee, it is just a suggestion, but that's fine.
However, I would say here we need stronger guarantees, and there just too many ways to bypass xref for it to be worth it. *José Valim* www.plataformatec.com.br Skype: jv.ptec Founder and Director of R&D On Wed, Aug 1, 2018 at 7:03 PM, Andrea Leopardi <[email protected]> wrote: > It is impossible to do at compile-time, but we have a history of doing > checks that only catch stuff at compile-time. For example, xref checks for > undefined functions in modules at compile-time (so it will catch > Foo.undefined_function(...)), but it won't catch apply(Foo, > :undefined_function, [...]). Not saying I am in favour or opposed to this > feature, but I think it would be fine to implement from a consistency > standpoint. > > Andrea Leopardi > [email protected] > > > On Wed, Aug 1, 2018 at 6:25 PM 'Justin Wood' via elixir-lang-core < > [email protected]> wrote: > >> Would this be in addition to using @moduledoc false? Or would this be >> replacing that? I think the main problem with trying to give warnings to >> people about using an internal module is that functions like apply/3 >> exist. I think it would be impossible to do it all at compile time. >> >> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ >> On 1 August 2018 11:39 AM, Booker Bense <[email protected]> wrote: >> >> The recent thread on the Elixir forum about the use of "private" modules >> (i.e. @moduledoc false) being unsafe to minor upgrades has started me >> thinking about a general solution to this problem. >> >> Given the dynamic nature of the BEAM it would be overly onerous to >> attempt to do any kind of runtime "blocking" of modules, but I think a >> reasonable compromise would be to have a compile time warning when you call >> a function from an "unsafe" module. To enable this private modules would >> explicitly list the modules for which the module is safe to be used from. >> >> For example: >> >> In ExUnit.CLIFormatter you would add this attribute >> >> @safe_in [ ExUnit] >> >> >> Note: this may not be a particularly good example, since the formatter is >> stored as a config variable. >> >> The compiler would generate warnings if any functions from the module >> were used in any modules not listed in >> the @safe_in attribute. This would work for both the core Elixir >> libraries and also provide a tool for 3rd party >> libraries to be more explicit to their users. >> >> - Booker C. Bense >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit https://groups.google.com/d/ >> msgid/elixir-lang-core/76bfebad-2fda-4ec8-b5ee- >> e12d64053fd2%40googlegroups.com >> <https://groups.google.com/d/msgid/elixir-lang-core/76bfebad-2fda-4ec8-b5ee-e12d64053fd2%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit https://groups.google.com/d/ >> msgid/elixir-lang-core/umsvU3dJ4f4O2MFldHksLgeP_ >> vk9LuxL5p5Cnf9YDtN8vyD6X0Uwaip0GtIKIFsuMR4D1KqxKAqI4UwCK722r >> CT4SWnmfLhA1lX2N4wbO9Y%3D%40protonmail.com >> <https://groups.google.com/d/msgid/elixir-lang-core/umsvU3dJ4f4O2MFldHksLgeP_vk9LuxL5p5Cnf9YDtN8vyD6X0Uwaip0GtIKIFsuMR4D1KqxKAqI4UwCK722rCT4SWnmfLhA1lX2N4wbO9Y%3D%40protonmail.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/elixir-lang-core/CAM9Rf%2B%2BM0EPN8X9BoJ27o1ZEh_ > 9fvVfbR-7ONpB3VeitWtM6EA%40mail.gmail.com > <https://groups.google.com/d/msgid/elixir-lang-core/CAM9Rf%2B%2BM0EPN8X9BoJ27o1ZEh_9fvVfbR-7ONpB3VeitWtM6EA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KvGsYRB4ZoJ829fPFg%3DUxcCF%3DJzMPNyf87v61E2mq9pA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
