Skip to content

ENH: About the "hard coded" options in IntelVisualFCompiler of Numpy's distutils #21484

Closed

Description

@dongkeun-oh

Proposed new feature or change:

I just found that the compiler options are written in the getflags function in each of the fortran compiler classes.
As a moderate approach to specify such a "hard coded" flags for each of compiler, it looks reasonable to force lowercase naming with underscore postfix in consistent with the GNU compiler's default condition.
So, the Intel fortran class of IntelVisualFCompiler has /nologo, /MD, /nbs, /names:lowercase, and /assume:underscore flags by default.
However, this will lead a trouble, whenever you attempt to generate a f2py python class out of the established source codes, particularly including C subroutines, where they are supposed to be built on the standard options of uppercase (without underscore) naming convention.
Actually, I solved such a matter by my own brute force modification for numpy/distutils/fcompiler/intel.py to remove those options.
So, would you make it plain by default without /names:lowercase, and /assume:underscore, and to enable
any user defined configuration for the distutils or f2py projects?

Activity

  1. mattip commented on May 10, 2022

    @mattip
    Member

    If things are working as expected, you should be able to override these defaults by setting environment variables.

  2. dongkeun-oh commented on May 11, 2022

    @dongkeun-oh
    ContributorAuthor

    Neither setting F77, F90, FFLAGS, F77FLAGS, F90FLAGS nor FOPT doesn't work, as I tried according to the advice.
    They never override the default setting; f2py is tested on windows 10, python 3.9.7 (intelpython) and numpy 1.21.2.
    Is there any other spell which I missed, or any misunderstanding of mine?

  3. HaoZeke commented on May 18, 2022

    @HaoZeke
    Member

    Updating distutils at this stage might not be a good idea (it is EOL), but documenting existing "forced" options would be welcome.

    Additionally, the Intel Fortran toolchain itself has been rehauled into ifx (the LLVM set) so this might not be a good thing to patch now.

  4. self-assigned this
    on May 20, 2022
  5. HaoZeke commented on May 20, 2022

    @HaoZeke
    Member

    The fix here would be checking the environment variables, if any of them are set, the defaults will not be applied.

    Also the documentation can be clearer on our defaults.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions