[erlang-patches] [PATCH 2/3] hipe: Do not auto-import min/2 and max/2
Mikael Pettersson
mikpe@REDACTED
Sun Sep 12 23:20:29 CEST 2010
Tuncer Ayaz writes:
> On Sun, Sep 12, 2010 at 7:37 PM, Mikael Pettersson wrote:
> > Tuncer Ayaz writes:
> > > Resolve name clash with auto-imported BIFs min/2 and max/2.
>
> [...]
>
> > What is the consequence of this name clash? Is it a recent problem?
> >
> > I've not heard anything about this causing build failures.
>
> This is a new warning generated since R14:
>
> ./hipe_icode_type.erl:81: Warning: import directive overrides
> auto-imported BIF max/2 - use "-compile({no_auto_import,[max/2]})." to
> resolve name clash
> ./hipe_icode_type.erl:81: Warning: import directive overrides
> auto-imported BIF min/2 - use "-compile({no_auto_import,[min/2]})." to
> resolve name clash
>
> lib/hipe/cerl/erl_types.erl exports [min/2,max/2] and has the same
> compiler directive already in place:
> -compile({no_auto_import,[min/2,max/2]}).
>
> > Personally I'd rather rename the local min/max functions or,
> > if they're compatible with the standard ones, just delete them.
> > no_auto_import seems like a kludge...
>
> Yes, a rename is better than telling the compiler what to ignore.
> What about a patch to replace the import with fully qualified calls?
> Or do you prefer a rename patch?
I initially thought that these min/max functions were local
function similar to the erlang ones (they didn't use to be
standard so we used to have to duplicate them), but the issue
in hipe_icode_type is that it explicitly imports min/max from
erl_types, and that explicit import triggers a warning due to
the newish auto-import from erlang.
Given that I think your initial no_auto_import patch is Ok.
Sorry about the confusion.
More information about the erlang-patches
mailing list