Kick-off for fpm leadership team

It doesn’t actually solve the problem. The fundamental issue is that modules with the same name are not distinguishable. I.e.

module utils
  ! package A's utils
...
end module
module utils
  ! package B's utils
...
end module
module A_utils
  ! attempt to "namespace"
  use utils ... ! There are still two different utils modules
end module

There should be a rule that, for a package to be fpm-compliant, all modules from other fpm packages it calls are called from the “namespaced” module only, in other words, the “namespaced” module should be the only public interface to other packages when building an fpm package I think.

Or at least the programmer would know that in case of “ambiguous module reference” they have to revert to the namespaced interface

It is not enough if the public interface module is unique. Every module that is ever compiled into your application must have a unique name.

2 Likes